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
This commit is contained in:
parent
017591ab45
commit
8be1ecd615
|
@ -1614,7 +1614,7 @@ Decl *Parser::ParseDeclarationAfterDeclaratorAndAttributes(Declarator &D,
|
|||
/*DirectInit=*/true, TypeContainsAuto);
|
||||
}
|
||||
} else if (getLangOpts().CPlusPlus0x && Tok.is(tok::l_brace) &&
|
||||
!CurParsedObjCImpl) {
|
||||
(!CurParsedObjCImpl || !D.isFunctionDeclarator())) {
|
||||
// Parse C++0x braced-init-list.
|
||||
Diag(Tok, diag::warn_cxx98_compat_generalized_initializer_lists);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue