This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gfortran] Make all labels DECL_ARTIFICIAL

 --- Steven Bosscher <> 的正文:
> On Wednesday 02 February 2005 04:44, Feng Wang wrote:
> > When fixing PR18827, I found this was wrong. Making USER labels artificial
> > will make it removed incorrectly under some circumstances. i.e. if we
> > assign a label to a globle variable and don't use the label and variable
> > elsewhere in the module, the optimization will remove the label but leave
> > the assignment. This will cause linking error.
> Sounds like the middle-end removes artificial labels even if they
> are addressable, or the front end not marking the label as such.
> Can you see in the dumps where the label disappears?
I tried to set TREE_ADDRESSABLE or FORCED_LABEL flags to the label, but they 
were useless. From the dumps (used -da option), it is correct in *.00.expand
with one uses. But the number of uses is set to zero in *.01.sibling, at lease
the label exists. In the *.03.jump the label is removed.
I tried to debug and found that it seemed to be removed in cfgrtl.c by
delete_insn(). Hope this can help.

Best Regards,
Feng Wang

Do You Yahoo!?

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]