[cfe-dev] Repeated expression in AST

Abramo Bagnara abramo.bagnara at gmail.com
Sat Jan 7 02:56:32 PST 2012


Il 06/01/2012 17:05, Tom Honermann ha scritto:
> On 1/6/2012 7:38 AM, Abramo Bagnara wrote:
>> Il 05/01/2012 14:40, Enea Zaffanella ha scritto:
>>> Please find attached a patch for review that, among other things, should
>>> fix the issue reported by Abramo in the mail below:
>>>
>>> Il 11/12/2011 11:13, Abramo Bagnara ha scritto:
>>>>
>>>> The typescript above shows that clang put *two* references to the same
>>>> expr in the AST (one as TypeOfExprType argument and another as
>>>> CompoundStmt child).
>>>>
>>>> This leads to shown wrong warning and (I guess) to other problems.
>>>>
>>>> Is it expected?
>>>>
>>>> $ cat bug.c
>>>> int f(int);
>>>> void h() {
>>>>    __typeof(*(int (*)[f(1)]) 0) x;
>>>> }
>>
>> I believe that the patch does the right thing with TypeOfExpr and indeed
>> fix the wrong code generation (while it fixes also the reported
>> duplicated presence of expr in AST and the bogus warning).
>>
>> If there are no objections I will commit it.
> 
> Looks good to me.  I applied the change to Clang 2.9 and it appears to
> resolve the problem there as well.  The patch did not apply cleanly
> against 2.9 due to changes in VLA handling following the 2.9 release. If
> anyone is interested in the changes for Clang 2.9, let me know and I'll
> make them available.

In r147730.



More information about the cfe-dev mailing list