131
|
1 // PR debug/58150
|
|
2 // { dg-do compile }
|
|
3 // { dg-options "-std=c++11 -gdwarf-4 -dA -fno-merge-debug-strings" }
|
|
4 // { dg-final { scan-assembler-times "DIE\[^\n\r\]*DW_TAG_enumeration_type" 3 } }
|
|
5 // { dg-final { scan-assembler-times " DW_AT_enum_class" 3 } }
|
|
6 // { dg-final { scan-assembler-times " DW_AT_declaration" 1 } }
|
|
7 // { dg-final { scan-assembler-times "\"E1..\"\[^\n\]*DW_AT_name" 1 } }
|
|
8 // { dg-final { scan-assembler-times "\"E2..\"\[^\n\]*DW_AT_name" 1 } }
|
|
9 // { dg-final { scan-assembler-times "\"F1..\"\[^\n\]*DW_AT_name" 1 } }
|
|
10 // { dg-final { scan-assembler-times "\"F2..\"\[^\n\]*DW_AT_name" 1 } }
|
|
11
|
|
12 enum class E : int;
|
|
13 enum class F : int;
|
|
14 enum class G : int;
|
|
15 struct S { E s; };
|
|
16 struct T { G t; };
|
|
17 enum class E : int
|
|
18 {
|
|
19 E1, E2
|
|
20 };
|
|
21 enum class F : int
|
|
22 {
|
|
23 F1, F2
|
|
24 };
|
|
25
|
|
26 bool
|
|
27 foo (E e, F f, G g)
|
|
28 {
|
|
29 return e == E::E1 && f == F::F1 && (int) g == 0;
|
|
30 }
|