[cfe-dev] Treatment of __restrict__

Roberto Bagnara bagnara at cs.unipr.it
Tue Jun 15 08:35:36 PDT 2010


On 06/07/2010 01:57 PM, Roberto Bagnara wrote:
> On 05/22/2010 11:20 AM, Roberto Bagnara wrote:
>>
>> void f(const char *__restrict__ out) {
>>      out++;
>> }
>>
>> The above testcase brings to the generation of the
>> following dump:
>>
>> void f(char const *restrict out) (CompoundStmt 0x27ce5b0<d.c:1:38, line:4:1>
>>      (DeclStmt 0x27be5a0<line:2:3, col:29>
>>        0x27d2bc0 "char const *restrict d"
>>      (BinaryOperator 0x27d2d20<line:3:3, col:7>   'char const *' '='
>>        (DeclRefExpr 0x27d2c20<col:3>   'char const *restrict' Var='d' 0x27d2bc0)
>>        (ImplicitCastExpr 0x27d2ce0<col:7>   'char const *restrict'<Unknown>
>>          (ImplicitCastExpr 0x27d2ca0<col:7>   'char const *'<NoOp>
>>            (DeclRefExpr 0x27d2c60<col:7>   'char const *restrict' ParmVar='out' 0x27cf800)))))
>>
>> This indicates that:
>>
>> - two apparently useless implicit casts are generated;
>> - the BinaryOperator node's type has lost the restrict qualifier.
>>
>> Are these wanted?
>> Best regards,
>>
>>        Roberto
>>
>
> Ping.

Ping^2

-- 
Prof. Roberto Bagnara
Applied Formal Methods Laboratory
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:bagnara at cs.unipr.it



More information about the cfe-dev mailing list