[cfe-commits] r60781 - /cfe/trunk/lib/Sema/SemaDeclObjC.cpp

steve naroff snaroff at apple.com
Tue Dec 9 13:00:30 PST 2008


On Dec 9, 2008, at 3:24 PM, Fariborz Jahanian wrote:

> Please provide a test case where possible.
>

Done! Thanks for the review,

snaroff

> - Fariborz
>
> On Dec 9, 2008, at 11:36 AM, Steve Naroff wrote:
>
>> Author: snaroff
>> Date: Tue Dec  9 13:36:17 2008
>> New Revision: 60781
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=60781&view=rev
>> Log:
>> Sema::ActOnMethodDeclaration(): Make sure we perform the default  
>> function/array conversion for parameter types.
>>
>> This fixes <rdar://problem/6424064> checker on xcode: (possible bad  
>> AST) can the type of a method parameter really have  
>> "isFunctionType() == true"?
>> and http://llvm.org/bugs/show_bug.cgi?id=2997.
>>
>> Modified:
>>   cfe/trunk/lib/Sema/SemaDeclObjC.cpp
>>
>> Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=60781&r1=60780&r2=60781&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Tue Dec  9 13:36:17 2008
>> @@ -1227,9 +1227,14 @@
>>    // FIXME: arg->AttrList must be stored too!
>>    QualType argType;
>>
>> -    if (ArgTypes[i])
>> +    if (ArgTypes[i]) {
>>      argType = QualType::getFromOpaquePtr(ArgTypes[i]);
>> -    else
>> +      // Perform the default array/function conversions (C99  
>> 6.7.5.3p[7,8]).
>> +      if (argType->isArrayType()) // (char *[]) -> (char **)
>> +        argType = Context.getArrayDecayedType(argType);
>> +      else if (argType->isFunctionType())
>> +        argType = Context.getPointerType(argType);
>> +    } else
>>      argType = Context.getObjCIdType();
>>    ParmVarDecl* Param = ParmVarDecl::Create(Context, ObjCMethod,
>>                                             SourceLocation(/ 
>> *FIXME*/),
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>




More information about the cfe-commits mailing list