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]

[Bug target/20717] [4.1 Regression] Many C++ testsuite failures on ia64-hpux

------- Additional Comments From wilson at specifixinc dot com  2005-04-05 19:44 -------
Subject: Re:  [4.1 Regression] Many C++ testsuite failures
 on ia64-hpux

jh at suse dot cz wrote:
> This sounds like reason for the failure.  What precisely is the
> behaviour of FDESC_ADDR?  (ie should I behave same way as if I see
> ADDR_EXPR - assume that address of the function has been taken and thus
> it is neccesary?).

On IA-64, the address of a function is a two-word function descriptor, 
one word is the function entry point, and one word is the function's gp 
value.  FDESC_EXPR is used to represent this.  FDESC_EXPR must be used 
in places where the difference matters, e.g. in initializers for 
vtables.  According to the docs in tree.def, operand0 of FDESC_EXPR is 
always a function, so it should be possible to handle FDESC_EXPR exactly 
the same as ADDR_EXPR if you don't care about the difference.  That is 
what the untested patch I added to the PR does.  It seems to work for 
the testcase.  There is also the question of whether there are other 
places that need the same fix.  I haven't looked.


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