diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2012-07-03 23:22:13 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2012-07-03 23:22:13 +0000 |
commit | 8be1ecd61558d22d8d17a5c0b1a8e45170bf7789 (patch) | |
tree | 139b2aaea333a6a0b3c7bad3045f964fac085899 /clang/test | |
parent | 017591ab45a849a237f2c4b3265896db194dcbe9 (diff) | |
download | bcm5719-llvm-8be1ecd61558d22d8d17a5c0b1a8e45170bf7789.tar.gz bcm5719-llvm-8be1ecd61558d22d8d17a5c0b1a8e45170bf7789.zip |
Obj-C++11 parser: handle a fall out of delayed
c-function parsing when a declaration with
C++0x braced-init-list is inside an @implementation.
llvm-svn: 159693
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/SemaObjC/delay-parsing-cfunctions.m | 1 | ||||
-rw-r--r-- | clang/test/SemaObjCXX/delay-parsing-cfunctions.mm | 43 |
2 files changed, 43 insertions, 1 deletions
diff --git a/clang/test/SemaObjC/delay-parsing-cfunctions.m b/clang/test/SemaObjC/delay-parsing-cfunctions.m index 840923ad6f7..81734fdda49 100644 --- a/clang/test/SemaObjC/delay-parsing-cfunctions.m +++ b/clang/test/SemaObjC/delay-parsing-cfunctions.m @@ -1,6 +1,5 @@ // RUN: %clang_cc1 -fsyntax-only -Werror -verify -Wno-objc-root-class %s // RUN: %clang_cc1 -x objective-c++ -fsyntax-only -Werror -verify -Wno-objc-root-class %s -// RUN: %clang_cc1 -x objective-c++ -std=c++11 -fsyntax-only -Werror -verify -Wno-objc-root-class %s // rdar://10387088 @interface MyClass diff --git a/clang/test/SemaObjCXX/delay-parsing-cfunctions.mm b/clang/test/SemaObjCXX/delay-parsing-cfunctions.mm new file mode 100644 index 00000000000..8e9c319a0e8 --- /dev/null +++ b/clang/test/SemaObjCXX/delay-parsing-cfunctions.mm @@ -0,0 +1,43 @@ +// RUN: %clang_cc1 -x objective-c++ -std=c++11 -fsyntax-only -Werror -verify -Wno-objc-root-class %s +// rdar://10387088 + +struct X { +X(); +}; + +@interface MyClass +- (void)someMethod; +@end + +@implementation MyClass +- (void)someMethod { + [self privateMethod]; // clang already does not warn here +} + +int bar(MyClass * myObject) { + [myObject privateMethod]; + return gorfbar(myObject); +} +- (void)privateMethod { } + +int gorfbar(MyClass * myObject) { + [myObject privateMethod]; + [myObject privateMethod1]; + return getMe + bar(myObject); +} + +- (void)privateMethod1 { + getMe = getMe+1; +} + +static int getMe; + +static int test() { + return 0; +} + +int x{17}; + +X::X() = default; + +@end |