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

[Bug middle-end/34621] [4.3 Regression] gcc.c-torture/execute/va-arg-25.c:32: internal compiler error: in expand_call, at calls.c:2785



------- Comment #17 from geoffk at geoffk dot org  2008-02-13 07:50 -------
Subject: Re:  [4.3 Regression] gcc.c-torture/execute/va-arg-25.c:32: internal
compiler error: in expand_call, at calls.c:2785


On 12/02/2008, at 10:41 PM, hjl dot tools at gmail dot com wrote:

> ------- Comment #16 from hjl dot tools at gmail dot com  2008-02-13  
> 06:41 -------
> (In reply to comment #15)
>> Subject: Re:  [4.3 Regression] gcc.c-torture/execute/va-arg-25.c: 
>> 32: internal
>> compiler error: in expand_call, at calls.c:2785
>>
>> STACK_BOUNDARY
>>>>
>>> is more or less "natural" hardware stack boundary, which should be
>>> the size of pointer.
>>
>> That is not what is documented and if you are proposing a change, I  
>> do
>> not see how your proposal is useful.
>>
>> The distinguishing property of STACK_BOUNDARY is that the compiler is
>> allowed to rely on the stack being aligned by it.  There is no notion
>> of "hardware" or "pointer" or "natural" involved; either the stack is
>> always aligned on call boundaries or it is not.
>>
>
> Here is our proposal:
>
> http://gcc.gnu.org/ml/gcc/2007-12/msg00567.html

It is to be expected that this proposal usually has no effect on  
Darwin, because the problem it is trying to solve, of local variables  
that require alignment greater than the default, does not usually  
exist on Darwin.

Under the definitions in your proposal, on Darwin, STACK_BOUNDARY  
should be 128, because 128 is the "minimum stack boundary" on Darwin,  
and this is also the value "preferred by hardware".  There is a  
contradiction in your proposal in which it says that it is "preferred  
by hardware" but also the "minimum stack boundary"; on many x86  
platforms, the hardware would really prefer 128 bits, but the ABI  
actually specifies a smaller value.

I think your proposal would be more clear if it left the definition of  
STACK_BOUNDARY alone.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34621


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