This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/20493] [4.0 Regression] Bootstrap failure
- From: "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Mar 2005 14:43:41 -0000
- Subject: [Bug middle-end/20493] [4.0 Regression] Bootstrap failure
- References: <20050316054704.20493.danglin@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2005-03-16 14:43 -------
Subject: Re: [4.0 Regression] Bootstrap failure
> This patch might fix the problem. Basically we should not do canonicalizing if
> one side is an integer constant. Could you test this for me since I don't have
> access to hppa-linux-gnu at all (or any other hppa machine)?
I'll try it tonight.
> Also does the 4.0 branch fail or just the mainline?
I believe both. I noticed it first in a 4.0.0.
> Oh, in the following code should we be doing the canonicalizing:
> typedef int (*fptr_t) (void);
> int f (fptr_t t)
> {
> return t == (fptr_t)-1;
> }
>
> Because after this patch we don't, I don't know if this is the correct thing to
> do or not, I want to say yes but you should know better.
I would say that the above should cause canonicalization.
The treatment of special pointers is poorly defined. I had to treat -1
and pointers to low memory (~ page 0) as special. They are used by the
signal handler. The same problem occurs on the 32-bit hpux port.
Dave
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20493