[cfe-commits] [PATCH] struct{bool} -> int function argument coercion emits an invalid store on ARM

Evgeniy Stepanov eugeni.stepanov at gmail.com
Sat Feb 4 06:12:46 PST 2012


On Sat, Feb 4, 2012 at 1:07 AM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Fri, Feb 3, 2012 at 4:05 AM, Evgeniy Stepanov
> <eugeni.stepanov at gmail.com> wrote:
>> Hi,
>>
>> this is a fix for PR11905.
>>
>> The current behaviour when generation a function prolog for arguments
>> of coerced types is to allocate a stack temp of the real argument type
>> and store the argument(s) there. This is wrong, because storage size
>> of the coerce-to type can be larger than that of the real type.
>>
>> The new behaviour is to allocate a temp of the coerced type, copy it,
>> and then reference through a bitcasted pointer of the real type.
>>
>> Please review.
>
> The real type is sometimes larger than the coerced type... switching
> from one to the other only changes which cases are broken issues.

Could you give an example of that?
In that case, what would you think of allocating the largest of the two types?

>
> -Eli



More information about the cfe-commits mailing list