[cfe-commits] r90874 - in /cfe/trunk: lib/Sema/SemaExprCXX.cpp test/SemaObjCXX/composite-objc-pointertype.mm

Douglas Gregor dgregor at apple.com
Tue Dec 8 13:15:26 PST 2009


On Dec 8, 2009, at 1:14 PM, Fariborz Jahanian wrote:

>
> On Dec 8, 2009, at 1:10 PM, Douglas Gregor wrote:
>
>>
>> On Dec 8, 2009, at 12:04 PM, Fariborz Jahanian wrote:
>>
>>>
>> This will work for NULL and any Objective-C pointer type, but there  
>> are larger issues in this function for Objective-C since nothing  
>> beyond the null-pointer-constant checks will work. For example,  
>> here's a case where we should be able to find the composite type  
>> between two interface pointers:
>>
>> @interface C1 { } @end
>> @interface C2 : C1 { } @end
>>
>> void f(int Cond, C1 *c1, const C2 *c2) {
>>   (void)(Cond? c1 : c2);
>> }
>>
>> This compiles with GCC (Objective-C and Objective-C++ mode) and  
>> with Clang in Objective-C mode, but with Clang Objective-C++ we get
>>
>> t.mm:5:14: error: incompatible operand types ('C1 *' and 'C2 const  
>> *')
>> (void)(Cond? c1 : c2);
>>            ^ ~~   ~~
>> 1 diagnostic generated.
>
> Yes. This is a separate issue. I will take a look.

Thanks!

	- Doug



More information about the cfe-commits mailing list