mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-25 22:38:56 -04:00

For ObjCXX, we can create a CastExpr with Kind being CK_UserDefinedConversion and SubExpr being BlockExpr. Specifically one can return BlockExpr from BuildCXXMemberCallExpr and the result can be used to build a CastExpr. Fix the assumption in CastExpr::getSubExprAsWritten that SubExpr can only be CXXMemberCallExpr. rdar://problem/24364077 llvm-svn: 259591
28 lines
688 B
Plaintext
28 lines
688 B
Plaintext
// RUN: %clang_cc1 -fsyntax-only -fblocks -verify -std=c++11 %s
|
|
|
|
enum NSEventType {
|
|
NSEventTypeFlagsChanged = 12
|
|
};
|
|
|
|
enum NSEventMask {
|
|
NSEventMaskLeftMouseDown = 1
|
|
};
|
|
|
|
static const NSEventType NSFlagsChanged = NSEventTypeFlagsChanged;
|
|
|
|
@interface NSObject
|
|
@end
|
|
@interface NSEvent : NSObject {
|
|
}
|
|
+ (nullable id)
|
|
addMonitor:(NSEventMask)mask handler:(NSEvent *_Nullable (^)(NSEvent *))block;
|
|
@end
|
|
|
|
void test(id weakThis) {
|
|
id m_flagsChangedEventMonitor = [NSEvent
|
|
addMonitor:NSFlagsChangedMask //expected-error {{use of undeclared identifier 'NSFlagsChangedMask'}}
|
|
handler:[weakThis](NSEvent *flagsChangedEvent) {
|
|
return flagsChangedEvent;
|
|
}];
|
|
}
|