• Shenghou Ma's avatar
    cmd/ld: don't generate DW_AT_type attr for unsafe.Pointer to match gcc behavior · a891b916
    Shenghou Ma authored
    gcc generates only attr DW_AT_byte_size for DW_TAG_pointer_type of "void *",
    but we used to also generate DW_AT_type pointing to imaginary unspecified
    type "void", which confuses some gdb.
    This change makes old Apple gdb 6.x (specifically, Apple version gdb-1515)
    accepts our binary without issue like this:
    (gdb) b 'main.main'
    Die: DW_TAG_unspecified_type (abbrev = 10, offset = 47079)
        has children: FALSE
        attributes:
            DW_AT_name (DW_FORM_string) string: "void"
    Dwarf Error: Cannot find type of die [in module /Users/minux/go/go2.hg/bin/go]
    
    Special thanks to Russ Cox for pointing out the problem in comment #6 of
    CL 7891044.
    
    R=golang-dev, rsc
    CC=golang-dev
    https://golang.org/cl/7744051
    a891b916
dwarf.c 53.4 KB