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