teak-llvm/clang/test/SemaObjCXX/instantiate-method-return.mm
Akira Hatanaka ff6c4f3702 [Sema][ObjC] Ensure that the return type of an ObjC method is a complete
type.

Copy the code in ActOnStartOfFunctionDef that checks a function's return
type to ActOnStartOfObjCMethodDef. This fixes an assertion failure in
IRGen caused by an uninstantiated return type.

rdar://problem/38691818

llvm-svn: 329879
2018-04-12 06:01:41 +00:00

30 lines
544 B
Plaintext

// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s
// PR7386
@class NSObject;
class A; // expected-note {{forward declaration of 'A'}}
template<class T> class V { T x; }; // expected-error {{field has incomplete type 'A'}}
@protocol Protocol
- (V<A*>)protocolMethod;
- (V<A>)method2;
@end
@interface I<Protocol>
@end
@implementation I
- (void)randomMethod:(id)info {
V<A*> vec([self protocolMethod]);
}
- (V<A*>)protocolMethod {
V<A*> va; return va;
}
- (V<A>)method2 { // expected-note {{in instantiation of}}
}
@end