This is the mail archive of the gcc@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]

Re: FAIL: gcc.c-torture/compile/20000804-1.c -O0 with PIC on gcc-4_4-branch


On Mon, Jul 13, 2009 at 10:31 AM, Dave
Korn<dave.korn.cygwin@googlemail.com> wrote:
> Richard Guenther wrote:
>> On Mon, Jul 13, 2009 at 5:39 AM, Jack Howarth<howarth@bromo.med.uc.edu> wrote:
>>> On Mon, Jul 13, 2009 at 01:52:51AM +0100, Dave Korn wrote:
>
>>>>> __complex__ long long f ()
>>>>> {
>>>>> ? int i[99];
>>>>> ? __complex__ long long v;
>>>>>
>>>>> ? v += f ();
>>>> ? Undefined behaviour, no?
>>>>
>>>> ? ? cheers,
>>>> ? ? ? DaveK
>>> So then the testcase is flawed and should have the darwin line corrected to...
>>>
>>> /* { dg-skip-if "PIC default" { { i?86-*-darwin* x86_64-*-darwin* } && ilp32 } ?{ "*" } { "" } } */
>>
>> Probably yes. ?The testcase invokes undefined behavior because
>> v is used uninitialized - but that may be the trigger for the original
>> ICE, so better preserve that.
>
> ?It would be useful as an experiment to try initialising it and see if that's
> also what's triggering the reload failure in this particular case, because if
> not then there's still a real bug to find on darwin.

I don't think so.  On 32bit

  asm("": "+r" (v) : "r" (0), "r" (1));

needs too many registers (4 for the v, 1 for constant 0 and 1 for
constant 1).  That's not possible with a frame-pointer and a PIC
register.

Richard.


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