Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / clang / test / SemaCXX / attr-flatten.cpp
blobafcba72b6429e0f8e4f7c0cda1638f373311ab42
1 // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s
3 int i __attribute__((flatten)); // expected-error {{'flatten' attribute only applies to functions}}
5 void f1() __attribute__((flatten));
6 void f2() __attribute__((flatten(1))); // expected-error {{'flatten' attribute takes no arguments}}
8 template <typename T>
9 void tf1() __attribute__((flatten));
11 int f3(int __attribute__((flatten)), int); // expected-error{{'flatten' attribute only applies to functions}}
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));
19 int ci [[gnu::flatten]]; // expected-error {{'flatten' attribute only applies to functions}}
21 [[gnu::flatten]] void cf1();
22 [[gnu::flatten(1)]] void cf2(); // expected-error {{'flatten' attribute takes no arguments}}
24 template <typename T>
25 [[gnu::flatten]]
26 void ctf1();
28 int cf3(int c[[gnu::flatten]], int); // expected-error{{'flatten' attribute only applies to functions}}
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();