• Robert Griesemer's avatar
    cmd/compile: correctly import labels, gotos, and fallthroughs · 30282b09
    Robert Griesemer authored
    The importer had several bugs with respect to labels and gotos:
    - it didn't create a new ONAME node for label names (label dcl,
      goto, continue, and break)
    - it overwrote the symbol for gotos with the dclstack
    - it didn't set the dclstack for labels
    
    In the process changed export format slightly to always assume
    a label name for labels and gotos, and never assume a label for
    fallthroughs.
    
    For fallthroughs and switch cases, now also set Xoffset like in
    the parser. (Not setting it, i.e., using 0 was ok since this is
    only used for verifying correct use of fallthroughs, which was
    checked already. But it's an extra level of verification of the
    import.)
    
    Fixes #15838.
    
    Change-Id: I3637f6314b8651c918df0c8cd70cd858c92bd483
    Reviewed-on: https://go-review.googlesource.com/23445
    Run-TryBot: Robert Griesemer <gri@golang.org>
    Reviewed-by: 's avatarMatthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    30282b09