зеркало из https://github.com/microsoft/clang-1.git
Fix <rdar://problem/6311947> clang on xcode (regression): error: use of undeclared identifier 'expandedValue'.
Mea culpa: I introduced this regresson in the following 2 commits: r57529 (10/14), r57841 (10/20). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58007 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
e8ae7896b4
Коммит
8970feab05
|
@ -2153,7 +2153,7 @@ QualType Sema::CheckCompareOperands(Expr *&lex, Expr *&rex, SourceLocation loc,
|
|||
Diag(loc, diag::ext_typecheck_comparison_of_distinct_pointers,
|
||||
lType.getAsString(), rType.getAsString(),
|
||||
lex->getSourceRange(), rex->getSourceRange());
|
||||
return QualType();
|
||||
return Context.IntTy;
|
||||
}
|
||||
if (ObjCQualifiedIdTypesAreCompatible(lType, rType, true)) {
|
||||
ImpCastExprToType(rex, lType);
|
||||
|
@ -2163,7 +2163,7 @@ QualType Sema::CheckCompareOperands(Expr *&lex, Expr *&rex, SourceLocation loc,
|
|||
Diag(loc, diag::warn_incompatible_qualified_id_operands,
|
||||
lex->getType().getAsString(), rex->getType().getAsString(),
|
||||
lex->getSourceRange(), rex->getSourceRange());
|
||||
return QualType();
|
||||
return Context.IntTy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
// RUN: clang -fsyntax-only -verify %s
|
||||
|
||||
typedef signed char BOOL;
|
||||
typedef unsigned int NSUInteger;
|
||||
typedef struct _NSZone NSZone;
|
||||
@class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
|
||||
@protocol NSObject - (BOOL)isEqual:(id)object; @end
|
||||
@protocol NSCopying - (id)copyWithZone:(NSZone *)zone; @end
|
||||
@protocol NSMutableCopying - (id)mutableCopyWithZone:(NSZone *)zone; @end
|
||||
@protocol NSCoding - (void)encodeWithCoder:(NSCoder *)aCoder; @end
|
||||
@interface NSObject <NSObject> {} @end
|
||||
typedef struct {} NSFastEnumerationState;
|
||||
@protocol NSFastEnumeration - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len; @end
|
||||
@interface NSDictionary : NSObject <NSCopying, NSMutableCopying, NSCoding, NSFastEnumeration> - (NSUInteger)count; @end
|
||||
@interface NSMutableDictionary : NSDictionary - (void)removeObjectForKey:(id)aKey; @end
|
||||
extern NSString * const NSTaskDidTerminateNotification;
|
||||
|
||||
@interface XCPropertyExpansionContext : NSObject <NSCopying> {
|
||||
NSMutableDictionary * _propNamesToPropValuesCache;
|
||||
} @end
|
||||
|
||||
@protocol XCPropertyValues <NSObject, NSCopying>
|
||||
- (NSString *)evaluateAsStringInContext:(XCPropertyExpansionContext *)context withNestingState:(const void *)state;
|
||||
@end
|
||||
|
||||
@implementation XCPropertyExpansionContext
|
||||
- (NSString *)expandedValueForProperty:(NSString *)property {
|
||||
id <XCPropertyValues> cachedValueNode = [_propNamesToPropValuesCache objectForKey:property]; // expected-warning {{method '-objectForKey:' not found (return type defaults to 'id')}}
|
||||
if (cachedValueNode == ((void *)0)) { } // expected-warning {{comparison of distinct pointer types ('id<XCPropertyValues>' and 'void *')}}
|
||||
NSString * expandedValue = [cachedValueNode evaluateAsStringInContext:self withNestingState:((void *)0)];
|
||||
return expandedValue;
|
||||
}
|
||||
|
Загрузка…
Ссылка в новой задаче