Disappearing labels fix

John David Anglin dave@hiauly1.hia.nrc.ca
Sat May 5 15:53:00 GMT 2001


I thought that I would try g++ version 3.0 20010503 (prerelease) on a
real world application and ran immediately into the disappearing label
problem building groff-1.16.1:  

g++ -I. -I/xxx/gnu/groff-1.16.1/src/preproc/pic -I/xxx/gnu/groff-1.16.1/objdir/src/include -I/xxx/gnu/groff-1.16.1/src/include -DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DIRENT_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_STRING_H=1 -DHAVE_STRINGS_H=1 -DHAVE_MATH_H=1 -DRET_TYPE_SRAND_IS_VOID=1 -DHAVE_SYS_NERR=1 -DHAVE_SYS_ERRLIST=1 -DHAVE_CC_LIMITS_H=1 -DRETSIGTYPE=void -DHAVE_STRUCT_EXCEPTION=1 -DHAVE_UNISTD_H=1 -DHAVE_GETPAGESIZE=1 -DHAVE_FMOD=1 -DHAVE_STRTOL=1 -DHAVE_GETCWD=1 -DHAVE_STRERROR=1 -DHAVE_PUTENV=1 -DHAVE_RENAME=1 -DHAVE_MKSTEMP=1 -DHAVE_STRCASECMP=1 -DHAVE_STRNCASECMP=1 -DHAVE_STRDUP=1 -DWCOREFLAG=0200  -O3  -c /xxx/gnu/groff-1.16.1/src/preproc/pic/object.cc
[...]
g++ -O3 -s -o pic pic.o lex.o main.o object.o common.o troff.o tex.o /xxx/gnu/groff-1.16.1/objdir/src/libs/libgroff/libgroff.a  -lm
/usr/ccs/bin/ld: Unsatisfied symbols:
   L$0431 (data)
collect2: ld returned 1 exit status

The disappering label is in the model object.o.  The label is deleted
in the rtl dumped in object.cc.01.sibling.  Here is some of the initial
rtl:

;; Function linear_object* object_spec::make_line(position*, direction*)

(note 2 0 6 NOTE_INSN_DELETED 0)

[...]

(insn 546 545 547 (set (reg/f:SI 207)
        (high:SI (label_ref:SI 599))) -1 (nil)
    (nil))

(insn 547 546 549 (set (reg/f:SI 206)
        (lo_sum:SI (reg/f:SI 207)
            (label_ref:SI 599))) -1 (nil)
    (expr_list:REG_EQUAL (label_ref:SI 599)
        (nil)))

[...]

(jump_insn 596 594 597 (set (pc)
        (label_ref 605)) -1 (nil)
    (nil))

(barrier 597 596 598)

(barrier 598 597 599)

(code_label 599 598 600 1218 "" "" [0 uses])

(insn 600 599 601 (use (reg/f:SI 3 %r3)) -1 (nil)
    (nil))

(insn 601 600 603 (clobber (reg:SI 29 %r29)) -1 (nil)
    (nil))

(insn 603 601 604 (set (reg/f:SI 90 virtual-stack-vars)
        (reg/f:SI 3 %r3)) -1 (nil)
    (nil))

(insn 604 603 605 (asm_input ("")) -1 (nil)
    (nil))

This looks like a label for expand_builtin_setjmp_receiver.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6605)



More information about the Gcc-patches mailing list