[cfe-commits] r65241 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.def lib/Sema/SemaType.cpp test/SemaObjC/protocol-archane.m

steve naroff snaroff at apple.com
Mon Feb 23 06:33:27 PST 2009


On Feb 23, 2009, at 1:11 AM, Chris Lattner wrote:

>
> On Feb 21, 2009, at 11:50 AM, Steve Naroff wrote:
>
>> Author: snaroff
>> Date: Sat Feb 21 13:50:43 2009
>> New Revision: 65241
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=65241&view=rev
>> Log:
>> Warn about bogus protocol qualifiers.
>
> Should this be a hard error?
>

I made it a warning since GCC doesn't diagnose it at all.

I'd be happier with an error,

snaroff

> -Chris
>
>> Modified:
>>   cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.def
>>   cfe/trunk/lib/Sema/SemaType.cpp
>>   cfe/trunk/test/SemaObjC/protocol-archane.m
>>
>> Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.def
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.def?rev=65241&r1=65240&r2=65241&view=diff
>>
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.def (original)
>> +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.def Sat Feb  
>> 21 13:50:43 2009
>> @@ -1402,4 +1402,6 @@
>>     "array of interface %0 should probably be an array of pointers")
>> DIAG(ext_c99_array_usage, EXTENSION,
>>     "use of C99-specific array features, accepted as an extension")
>> +DIAG(warn_ignoring_objc_qualifiers, WARNING,
>> +     "ignoring protocol qualifiers on non-ObjC type")
>>
>>
>> Modified: cfe/trunk/lib/Sema/SemaType.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=65241&r1=65240&r2=65241&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- cfe/trunk/lib/Sema/SemaType.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaType.cpp Sat Feb 21 13:50:43 2009
>> @@ -151,6 +151,9 @@
>>        // id<protocol-list>
>>        Result =  
>> Context.getObjCQualifiedIdType((ObjCProtocolDecl**)PQ,
>>                                                 
>> DS.getNumProtocolQualifiers());
>> +      else
>> +        Diag(DS.getSourceRange().getBegin(),
>> +             diag::warn_ignoring_objc_qualifiers) <<  
>> DS.getSourceRange();
>>    }
>>    // TypeQuals handled by caller.
>>    break;
>>
>> Modified: cfe/trunk/test/SemaObjC/protocol-archane.m
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/protocol-archane.m?rev=65241&r1=65240&r2=65241&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- cfe/trunk/test/SemaObjC/protocol-archane.m (original)
>> +++ cfe/trunk/test/SemaObjC/protocol-archane.m Sat Feb 21 13:50:43  
>> 2009
>> @@ -21,4 +21,9 @@
>>
>> // FIXME: provide a better diagnostic (no typedef).
>> - (void)m2:(id <MyProtocol> short)arg1; // expected-error {{'short  
>> type-name' is invalid}}
>> - at end
>> \ No newline at end of file
>> + at end
>> +
>> +typedef int NotAnObjCObjectType;
>> +
>> +// GCC doesn't diagnose this.
>> +NotAnObjCObjectType <SomeProtocol> *obj; // expected-warning  
>> {{ignoring protocol qualifiers on non-ObjC type}}
>>
>>
>> _______________________________________________
>> 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