Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/abi/pr87137.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
111:04ced10e8804 | 131:84e7813d76e9 |
---|---|
1 // PR c++/87137 | |
2 | |
3 // Empty macro args are undefined in C++ 98 | |
4 // { dg-do compile { target c++11 } } | |
5 | |
6 // We got confused by non-field decls separating bitfields when | |
7 // ms_bitfield_layout was in effect. | |
8 | |
9 #if defined (__x86_64__) || defined (__i686__) || defined (__powerpc__) | |
10 #define ATTRIB __attribute__((ms_struct)) | |
11 #elif defined (__superh__) | |
12 #define ATTRIB __attribute__((renesas)) | |
13 #else | |
14 #define ATTRIB | |
15 #endif | |
16 | |
17 #define DEFINE(NAME,BASE,THING) \ | |
18 struct ATTRIB NAME BASE { \ | |
19 unsigned one : 12; \ | |
20 THING \ | |
21 unsigned two : 4; \ | |
22 } | |
23 | |
24 template<unsigned I, unsigned J> struct Test; | |
25 template<unsigned I> struct Test<I,I> {}; | |
26 | |
27 #define TEST(NAME,BASE,THING) \ | |
28 DEFINE(NAME##_WITH,BASE,THING); \ | |
29 DEFINE(NAME##_WITHOUT,BASE,); \ | |
30 int NAME = sizeof (Test<sizeof(NAME##_WITH),sizeof (NAME##_WITHOUT)>) | |
31 | |
32 TEST(NSFun,,int fun ();); | |
33 TEST(SFun,,static int fun ();); | |
34 TEST(Tdef,,typedef int tdef;); | |
35 | |
36 TEST(Var,,static int var;); | |
37 struct base { int f; }; | |
38 TEST(Use,:base,using base::f;); | |
39 TEST(Tmpl,,template<unsigned> class X {};); | |
40 TEST(TmplFN,,template<unsigned> void fu ();); |