brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · b3de435 Raw
41 lines · plain
1// RUN: %clang_cc1 -std=c++11 -fdebugger-support -fdebugger-cast-result-to-id -funknown-anytype -fsyntax-only -verify %s2 3extern __unknown_anytype test0a;4extern __unknown_anytype test1a();5extern __unknown_anytype test0b;6extern __unknown_anytype test1b();7extern __unknown_anytype test0c;8extern __unknown_anytype test1c();9extern __unknown_anytype test0d;10extern __unknown_anytype test1d();11extern __unknown_anytype test0d;12extern __unknown_anytype test1d();13 14@interface A15@end16 17namespace rdar9416370 {18  void test(id x) {19    if ([x foo]) {} // expected-error {{no known method '-foo'; cast the message send to the method's return type}}20    [x foo];21  }22}23 24@class NSString; // expected-note {{forward declaration of class here}}25namespace rdar10988847 {26  void test() {27    id s = [NSString stringWithUTF8String:"foo"]; // expected-warning {{receiver 'NSString' is a forward class and corresponding @interface may not exist}}28  }29}30 31namespace rdar13338107 {32  void test() {33    id x1 = test0a;34    id x2 = test1a();35    A *x3 = test0b;36    A *x4 = test1b();37    auto x5 = test0c;38    auto x6 = test1c();39  }40}41