[cfe-dev] Repeated expression in AST
    Tom Honermann 
    thonermann at coverity.com
       
    Fri Jan  6 08:05:50 PST 2012
    
    
  
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.
Tom.
    
    
More information about the cfe-dev
mailing list