]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: output DWARF lexical blocks for local variables
authorAlessandro Arzilli <alessandro.arzilli@gmail.com>
Tue, 2 May 2017 14:46:01 +0000 (16:46 +0200)
committerMatthew Dempsky <mdempsky@google.com>
Thu, 18 May 2017 23:10:50 +0000 (23:10 +0000)
commit2ad41a30906ca1d0736f7efc40da60cb519a9f89
tree6b9c06e71157988d6c324ec005fb2fb87e9a5b6b
parent0f0a51f1d12bb009034a38c69aa786ba62ca41e2
cmd/compile: output DWARF lexical blocks for local variables

Change compiler and linker to emit DWARF lexical blocks in .debug_info
section when compiling with -N -l.

Version of debug_info is updated from DWARF v2 to DWARF v3 since
version 2 does not allow lexical blocks with discontinuous PC ranges.

Remaining open problems:
- scope information is removed from inlined functions
- variables records do not have DW_AT_start_scope attributes so a
variable will shadow other variables with the same name as soon as its
containing scope begins, even before its declaration.

Updates #6913.
Updates #12899.

Change-Id: Idc6808788512ea20e7e45bcf782453acb416fb49
Reviewed-on: https://go-review.googlesource.com/40095
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
22 files changed:
src/cmd/compile/internal/gc/closure.go
src/cmd/compile/internal/gc/go.go
src/cmd/compile/internal/gc/main.go
src/cmd/compile/internal/gc/noder.go
src/cmd/compile/internal/gc/pgen.go
src/cmd/compile/internal/gc/scope.go [new file with mode: 0644]
src/cmd/compile/internal/gc/scope_test.go [new file with mode: 0644]
src/cmd/compile/internal/gc/sizeof_test.go
src/cmd/compile/internal/gc/syntax.go
src/cmd/internal/dwarf/dwarf.go
src/cmd/internal/obj/data.go
src/cmd/internal/obj/link.go
src/cmd/internal/obj/objfile.go
src/cmd/internal/obj/plist.go
src/cmd/internal/objabi/symkind.go
src/cmd/internal/objabi/symkind_string.go
src/cmd/link/internal/ld/data.go
src/cmd/link/internal/ld/dwarf.go
src/cmd/link/internal/ld/link.go
src/cmd/link/internal/ld/nooptcgolink_test.go [new file with mode: 0644]
src/cmd/link/internal/ld/symkind.go
src/cmd/link/internal/ld/symkind_string.go