This is the mail archive of the gcc-patches@gcc.gnu.org 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] |
In debugging the problems associated with Bug c++/19797, I found that
we fail to create an identifier node for the real, unstarred, name of
a user-specified assembler name. As a result, a call to assemble_name
doesn't mark the real name as referenced. The HP linker is very picky
in requiring that all external functions be imported (typed). We need
all external references marked when used to fix the above PR correctly.
I'm not quite sure if this is the best place to create the identifier node but it's where the node for the starred name is created.
Tested on i686-pc-linux-gnu, hppa2.0w-hp-hpux11.11, hppa64-hp-hpux11.11
and hppa-unknown-linux-gnu with no regressions.
Ok for 4.0 and 4.1 branches?
It would be better if you could instead avoid relying on this kind of use of identifiers. These uses are a significant performance impact on GCC and the ability to do them will go away in the future.
Are you suggesting that it would be better to do any necessary tracking of referenced symbols in the backend? In the PA case, we only need to do this for externals and the number usually isn't that large.
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |