llvm-project/clang/test/Parser/cxx11-brace-initializers.cpp
Richard Smith da1f933e12 PR14918: Don't confuse braced-init-lists after template variable declarations
with function definitions.

We really should remove Parser::isDeclarationAfterDeclarator entirely, since
it's meaningless in C++11 (an open brace could be either a function definition
or an initializer, which is what it's trying to differentiate between). The
other caller of it happens to be correct right now...

llvm-svn: 172510
2013-01-15 06:49:38 +00:00

28 lines
447 B
C++

// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11
// expected-no-diagnostics
struct S {
S(int, int) {}
};
void f(int, S const&, int) {}
void test1()
{
S X1{1, 1,};
S X2 = {1, 1,};
f(0, {1, 1}, 0);
}
namespace PR14948 {
template<typename T> struct Q { static T x; };
struct X {};
template<> X Q<X>::x {};
template<> int Q<int[]>::x[] { 1, 2, 3 };
template<> int Q<int>::x { 1 };
template<typename T> T Q<T>::x {};
}