PR c++/83394 - always_inline vs. noinline no longer diagnosed
[official-gcc.git] / gcc / testsuite / g++.dg / Wattributes-5.C
blob70116c92ae89de03d9872eebfe5683f41628833c
1 // { dg-do compile }
2 // { dg-options "-Wattributes" }
4 #define ATTR(list) __attribute__ (list)
6 template <int>
7 struct A
9   int __attribute__ ((noinline))
10   f ();                       // { dg-message "previous declaration here" }
13 template <int N>
14 int __attribute__ ((always_inline))
15 A<N>::f ()                    // { dg-warning "ignoring attribute .always_inline. because it conflicts with attribute .noinline." } */
16 { return 0; }
19 template <int>
20 struct B
22   int __attribute__ ((always_inline))
23   f ();
26 template <>
27 inline int __attribute__ ((always_inline))
28 B<0>::f ()
29 { return 0; }
31 template <>
32 int __attribute__ ((noinline))
33 B<1>::f ()
34 { return 1; }