mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-01 00:06:07 +00:00

Parser::ParseNamespace can get a little confused when it found itself inside a compound statement inside of a non-static data member initializer. Try to determine that the statement expression's scope makes sense before trying to parse it's contents. llvm-svn: 225514
17 lines
462 B
C++
17 lines
462 B
C++
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
|
|
|
|
// PR6596
|
|
namespace g { enum { o = 0 }; }
|
|
|
|
void foo() {
|
|
namespace a { typedef g::o o; } // expected-error{{namespaces can only be defined in global or namespace scope}}
|
|
}
|
|
|
|
// PR14085
|
|
namespace PR14085 {}
|
|
namespace = PR14085; // expected-error {{expected identifier}}
|
|
|
|
struct namespace_nested_in_record {
|
|
int k = ({namespace {}}); // expected-error {{statement expression not allowed at file scope}}
|
|
};
|