1 // RUN: %clang_cc1 -fsyntax-only -Wsigned-enum-bitfield -verify %s --std=c++11
3 // Enums used in bitfields with no explicitly specified underlying type.
7 struct { E e1
: 1; E e2
; F f1
: 1; F f2
; } s
;
9 s
.e1
= E1
; // expected-warning {{enums in the Microsoft ABI are signed integers by default; consider giving the enum 'E' an unsigned underlying type to make this code portable}}
10 s
.f1
= F1
; // expected-warning {{enums in the Microsoft ABI are signed integers by default; consider giving the enum 'F' an unsigned underlying type to make this code portable}}
16 // Enums used in bitfields with an explicit signed underlying type.
18 enum E
: signed { E1
, E2
};
19 enum F
: long { F1
, F2
};
20 struct { E e1
: 1; E e2
; F f1
: 1; F f2
; } s
;
29 // Enums used in bitfields with an explicitly unsigned underlying type.
31 enum E
: unsigned { E1
, E2
};
32 enum F
: unsigned long { F1
, F2
};
33 struct { E e1
: 1; E e2
; F f1
: 1; F f2
; } s
;