diff options
Diffstat (limited to 'test/Parser/cxx-attributes.cpp')
-rw-r--r-- | test/Parser/cxx-attributes.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/test/Parser/cxx-attributes.cpp b/test/Parser/cxx-attributes.cpp index 5ea0ce227595..6fd7f4f68a46 100644 --- a/test/Parser/cxx-attributes.cpp +++ b/test/Parser/cxx-attributes.cpp @@ -1,5 +1,4 @@ // RUN: %clang_cc1 -fsyntax-only -verify %s -// expected-no-diagnostics class c { virtual void f1(const char* a, ...) @@ -8,3 +7,16 @@ class c { __attribute__ (( __format__(__printf__,2,3) )) {} }; +template <typename T> class X { + template <typename S> void X<S>::f() __attribute__((locks_excluded())); // expected-error{{nested name specifier 'X<S>::' for declaration does not refer into a class, class template or class template partial specialization}} \ + // expected-warning{{attribute locks_excluded ignored, because it is not attached to a declaration}} +}; + +namespace PR17666 { + const int A = 1; + typedef int __attribute__((__aligned__(A))) T1; + int check1[__alignof__(T1) == 1 ? 1 : -1]; + + typedef int __attribute__((aligned(int(1)))) T1; + typedef int __attribute__((aligned(int))) T2; // expected-error {{expected '(' for function-style cast}} +} |