1// RUN: %clang_cc1 -fsyntax-only -fblocks -Wno-objc-root-class -verify %s
2
3void TestObjcBlock(void) {
4  void (^x)(void) = ^(void) {
5    __attribute__((musttail)) return TestObjcBlock(); // expected-error{{'musttail' attribute cannot be used from a block}}
6  };
7  __attribute__((musttail)) return x();
8}
9
10void ReturnsVoid(void);
11void TestObjcBlockVar(void) {
12  __block int i = 0;                              // expected-note{{jump exits scope of __block variable}}
13  __attribute__((musttail)) return ReturnsVoid(); // expected-error{{cannot perform a tail call from this return statement}}
14}
15
16__attribute__((objc_root_class))
17@interface TestObjcClass
18@end
19
20@implementation TestObjcClass
21
22- (void)testObjCMethod {
23  __attribute__((musttail)) return ReturnsVoid(); // expected-error{{'musttail' attribute cannot be used from an Objective-C function}}
24}
25
26@end
27