On Dec 3, 2010, at 10:37 PM, Abramo Bagnara wrote:

> Il 04/12/2010 04:47, John McCall ha scritto:
>> --- cfe/trunk/lib/AST/Expr.cpp (original)
>> +++ cfe/trunk/lib/AST/Expr.cpp Fri Dec  3 21:47:34 2010
>> @@ -824,6 +824,8 @@
>>     return "LValueBitCast";
>>   case CK_LValueToRValue:
>>     return "LValueToRValue";
>> +  case CK_GetObjCProperty:
>> +    return "GetObjCProperty";
>>   case CK_NoOp:
>>     return "NoOp";
>>   case CK_BaseToDerived:
>> @@ -1722,6 +1724,24 @@
>>   }
>> }
>> 
>> +Expr *Expr::IgnoreParenLValueCasts() {
>> +  Expr *E = this;
>> +  while (E) {
>> +    if (ParenExpr *P = dyn_cast<ParenExpr>(E)) {
>> +      E = P->getSubExpr();
>> +      continue;
>> +    }
>> +    if (CastExpr *P = dyn_cast<CastExpr>(E)) {
>> +      if (P->getCastKind() == CK_LValueToRValue) {
>> +        E = P->getSubExpr();
>> +        continue;
>> +      }
>> +    }
>> +    break;
>> +  }
>> +  return E;
>> +}
> 
> What about __extension__ skipping?

Good point.  I *think* we don't need that here because this method is meant to 
just be a hack to simplify workarounds in the static analyzer, but Ted might 
have thoughts.  For one, I don't know whether the analyzer generally pays 
attention to __extension__ nodes.

John.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to