llvm-project/clang/test/Parser/namespaces.cpp
David Majnemer 02e764487f Parse: Don't crash when namespace is in GNU statement expr
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
2015-01-09 09:38:14 +00:00

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}}
};