mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-07 08:34:59 +00:00
a347834869
Fix Sema::ActOnInstanceMessage to correctly do things in terms of canonical types, fixing bogus errors like: NSDistantObject.m:10383:120: error: bad receiver type 'typeof((id<NSMutableCopying>)self)' id mess = ({ id __inv__ = ((void *)0); id __mb__ = _NSMessageBuilder((id <NSMutableCopying>)self, &__inv__); (void)[(__typeof__((id <NSMutableCopying>)self))__mb__ mutableCopyWithZone:((void *)0)]; if (!objc_collecting_enabled()) object_dispose(__mb__); __inv__; }); llvm-svn: 46633
39 lines
837 B
Objective-C
39 lines
837 B
Objective-C
// RUN: clang -fsyntax-only -verify %s
|
|
|
|
typedef struct objc_class *Class;
|
|
typedef struct objc_object {
|
|
Class isa;
|
|
} *id;
|
|
|
|
|
|
@protocol P @end
|
|
|
|
@interface MyList
|
|
@end
|
|
|
|
@implementation MyList
|
|
- (unsigned int)countByEnumeratingWithState: (struct __objcFastEnumerationState *)state objects: (id *)items count:(unsigned int)stackcount
|
|
{
|
|
return 0;
|
|
}
|
|
@end
|
|
|
|
@interface MyList (BasicTest)
|
|
- (void)compilerTestAgainst;
|
|
@end
|
|
|
|
@implementation MyList (BasicTest)
|
|
- (void)compilerTestAgainst {
|
|
static i;
|
|
for (id el, elem in self) // expected-error {{Only one element declaration is allowed}}
|
|
++i;
|
|
for (id el in self)
|
|
++i;
|
|
MyList<P> ***p;
|
|
for (p in self) // expected-error {{selector element type ('MyList<P> ***') is not a valid object type}}
|
|
++i;
|
|
|
|
}
|
|
@end
|
|
|