diff options
Diffstat (limited to 'test/SemaCXX/alias-template.cpp')
-rw-r--r-- | test/SemaCXX/alias-template.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/test/SemaCXX/alias-template.cpp b/test/SemaCXX/alias-template.cpp index 6cff420..484dd33 100644 --- a/test/SemaCXX/alias-template.cpp +++ b/test/SemaCXX/alias-template.cpp @@ -12,12 +12,12 @@ namespace IllegalTypeIds { template<typename U> using C = virtual void(int n); // expected-error {{type name does not allow function specifier}} template<typename U> using D = explicit void(int n); // expected-error {{type name does not allow function specifier}} template<typename U> using E = void(int n) throw(); // expected-error {{exception specifications are not allowed in type aliases}} - // FIXME: this is illegal; we incorrectly accept it for typedefs too. - template<typename U> using F = void(*)(int n) &&; // expected-err + template<typename U> using F = void(*)(int n) &&; // expected-error {{pointer to function type cannot have '&&' qualifier}} template<typename U> using G = __thread void(int n); // expected-error {{type name does not allow storage class to be specified}} + template<typename U> using H = constexpr int; // expected-error {{type name does not allow constexpr specifier}} - template<typename U> using H = void(int n); // ok - template<typename U> using I = void(int n) &&; // ok + template<typename U> using Y = void(int n); // ok + template<typename U> using Z = void(int n) &&; // ok } namespace IllegalSyntax { |