mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 03:56:16 +08:00
Type of a ?: expression whose either expression is a built-in 'id'
type is 'id' type. llvm-svn: 79781
This commit is contained in:
@@ -3213,9 +3213,9 @@ QualType Sema::CheckConditionalOperands(Expr *&Cond, Expr *&LHS, Expr *&RHS,
|
||||
// FIXME: Consider unifying with 'areComparableObjCPointerTypes'.
|
||||
// It could return the composite type.
|
||||
if (Context.canAssignObjCInterfaces(LHSOPT, RHSOPT)) {
|
||||
compositeType = LHSTy;
|
||||
compositeType = RHSOPT->isObjCBuiltinType() ? RHSTy : LHSTy;
|
||||
} else if (Context.canAssignObjCInterfaces(RHSOPT, LHSOPT)) {
|
||||
compositeType = RHSTy;
|
||||
compositeType = LHSOPT->isObjCBuiltinType() ? LHSTy : RHSTy;
|
||||
} else if ((LHSTy->isObjCQualifiedIdType() ||
|
||||
RHSTy->isObjCQualifiedIdType()) &&
|
||||
Context.ObjCQualifiedIdTypesAreCompatible(LHSTy, RHSTy, true)) {
|
||||
|
||||
27
clang/test/SemaObjC/conditional-expr-5.m
Normal file
27
clang/test/SemaObjC/conditional-expr-5.m
Normal file
@@ -0,0 +1,27 @@
|
||||
// RUN: clang-cc -fsyntax-only -verify %s
|
||||
|
||||
@interface PBXBuildSettingsDictionary
|
||||
{
|
||||
int i;
|
||||
}
|
||||
@end
|
||||
|
||||
@interface XCConditionalBuildSettingsDictionary : PBXBuildSettingsDictionary
|
||||
{
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation PBXBuildSettingsDictionary
|
||||
|
||||
- (XCConditionalBuildSettingsDictionary *)conditionalDictionaryForConditionSet
|
||||
{
|
||||
return i ? self : (id)0;
|
||||
}
|
||||
|
||||
- (XCConditionalBuildSettingsDictionary *)conditionalDictionaryForConditionSet2
|
||||
{
|
||||
return i ? (id)0 : self;
|
||||
}
|
||||
@end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user