File: enum38.C

package info (click to toggle)
gcc-arm-none-eabi 15%3A12.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 959,712 kB
  • sloc: cpp: 3,275,382; ansic: 2,061,766; ada: 840,956; f90: 208,513; makefile: 76,132; asm: 73,433; xml: 50,448; exp: 34,146; sh: 32,436; objc: 15,637; fortran: 14,012; python: 11,991; pascal: 6,787; awk: 4,779; perl: 3,054; yacc: 338; ml: 285; lex: 201; haskell: 122
file content (25 lines) | stat: -rw-r--r-- 1,309 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// PR c++/61414
// { dg-do compile { target c++11 } }

enum C { C0 = -4, C1 = 3 };
enum D { D0 = 0, D1 = 15 };
enum class E { E0 = -4, E1 = 3 };
enum F : unsigned { F0 = 0, F1 = 15 };
enum __attribute__((__mode__ (__QI__))) G { G0 = -4, G1 = 3 };
enum __attribute__((__mode__ (__HI__))) H { H0 = 0, H1 = 15 };

struct S
{
  C a : 2;	// { dg-warning "'S::a' is too small to hold all values of 'enum C'" }
  C b : 3;	// { dg-bogus "'S::b' is too small to hold all values of 'enum C'" }
  D c : 3;	// { dg-warning "'S::c' is too small to hold all values of 'enum D'" }
  D d : 4;	// { dg-bogus "'S::d' is too small to hold all values of 'enum D'" }
  E e : 2;	// { dg-warning "'S::e' is too small to hold all values of 'enum class E'" }
  E f : 3;	// { dg-bogus "'S::f' is too small to hold all values of 'enum class E'" }
  F g : 3;	// { dg-warning "'S::g' is too small to hold all values of 'enum F'" }
  F h : 4;	// { dg-bogus "'S::h' is too small to hold all values of 'enum F'" }
  G i : 2;	// { dg-warning "'S::i' is too small to hold all values of 'enum G'" }
  G j : 3;	// { dg-bogus "'S::j' is too small to hold all values of 'enum G'" }
  H k : 3;	// { dg-warning "'S::k' is too small to hold all values of 'enum H'" }
  H l : 4;	// { dg-bogus "'S::l' is too small to hold all values of 'enum H'" }
};