1. 19 Apr, 2017 2 commits
    • Robert Griesemer's avatar
      cmd/compile: check labels and branches during parse time · 912a638b
      Robert Griesemer authored
      Instead of a separate check control flow pass (checkcfg.go)
      operating on nodes, perform this check at parse time on the
      new syntax tree. Permits this check to be done concurrently,
      and doesn't depend on the specifics of the symbol's dclstack
      implementation anymore. The remaining dclstack uses will be
      removed in a follow-up change.
      
      - added CheckBranches Mode flag (so we can turn off the check
        if we only care about syntactic correctness, e.g. for tests)
      
      - adjusted test/goto.go error messages: the new branches
        checker only reports if a goto jumps into a block, but not
        which block (we may want to improve this again, eventually)
      
      - also, the new branches checker reports one variable that
        is being jumped over by a goto, but it may not be the first
        one declared (this is fine either way)
      
      - the new branches checker reports additional errors for
        fixedbugs/issue14006.go (not crucial to avoid those errors)
      
      - the new branches checker now correctly reports only
        variable declarations being jumped over, rather than
        all declarations (issue 8042). Added respective tests.
      
      Fixes #8042.
      
      Change-Id: I53b6e1bda189748e1e1fb5b765a8a64337c27d40
      Reviewed-on: https://go-review.googlesource.com/39998Reviewed-by: default avatarMatthew Dempsky <mdempsky@google.com>
      912a638b
    • Matthew Dempsky's avatar
      cmd/internal/objabi: extract shared functionality from obj · 1e3570ac
      Matthew Dempsky authored
      Now only cmd/asm and cmd/compile depend on cmd/internal/obj. Changing
      the assembler backends no longer requires reinstalling cmd/link or
      cmd/addr2line.
      
      There's also now one canonical definition of the object file format in
      cmd/internal/objabi/doc.go, with a warning to update all three
      implementations.
      
      objabi is still something of a grab bag of unrelated code (e.g., flag
      and environment variable handling probably belong in a separate "tool"
      package), but this is still progress.
      
      Fixes #15165.
      Fixes #20026.
      
      Change-Id: Ic4b92fac7d0d35438e0d20c9579aad4085c5534c
      Reviewed-on: https://go-review.googlesource.com/40972
      Run-TryBot: Matthew Dempsky <mdempsky@google.com>
      TryBot-Result: Gobot Gobot <gobot@golang.org>
      Reviewed-by: default avatarJosh Bleecher Snyder <josharian@gmail.com>
      1e3570ac
  2. 18 Apr, 2017 21 commits
  3. 17 Apr, 2017 17 commits