Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
      2 
      3 int i __attribute__((flatten)); // expected-error {{'flatten' attribute only applies to functions}}
      4 
      5 void f1() __attribute__((flatten));
      6 void f2() __attribute__((flatten(1))); // expected-error {{'flatten' attribute takes no arguments}}
      7 
      8 template <typename T>
      9 void tf1() __attribute__((flatten));
     10 
     11 int f3(int __attribute__((flatten)), int); // expected-error{{'flatten' attribute only applies to functions}}
     12 
     13 struct A {
     14   int f __attribute__((flatten));  // expected-error{{'flatten' attribute only applies to functions}}
     15   void mf1() __attribute__((flatten));
     16   static void mf2() __attribute__((flatten));
     17 };
     18 
     19 int ci [[gnu::flatten]]; // expected-error {{'flatten' attribute only applies to functions}}
     20 
     21 [[gnu::flatten]] void cf1();
     22 [[gnu::flatten(1)]] void cf2(); // expected-error {{'flatten' attribute takes no arguments}}
     23 
     24 template <typename T>
     25 [[gnu::flatten]]
     26 void ctf1();
     27 
     28 int cf3(int c[[gnu::flatten]], int); // expected-error{{'flatten' attribute only applies to functions}}
     29 
     30 struct CA {
     31   int f [[gnu::flatten]];  // expected-error{{'flatten' attribute only applies to functions}}
     32   [[gnu::flatten]] void mf1();
     33   [[gnu::flatten]] static void mf2();
     34 };
     35