Mercurial > hg > CbC > CbC_gcc
comparison gcc/testsuite/g++.dg/init/array53.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
131:84e7813d76e9 | 145:1830386684a0 |
---|---|
1 // PR c++/90947 - Simple lookup table of array of strings is miscompiled | |
2 // Verify that initializers for arrays of elements of a class type with | |
3 // "unusual" data members are correctly recognized as non-zero. | |
4 // { dg-do compile } | |
5 // { dg-options "-O1 -fdump-tree-optimized" } | |
6 | |
7 struct S | |
8 { | |
9 const char *p; | |
10 static int i; | |
11 enum { e }; | |
12 typedef int X; | |
13 int: 1, b:1; | |
14 union { | |
15 int c; | |
16 }; | |
17 const char *q; | |
18 }; | |
19 | |
20 void f (void) | |
21 { | |
22 const struct S a[2] = | |
23 { | |
24 { /* .p = */ "", /* .b = */ 0, /* .c = */ 0, /* .q = */ "" }, | |
25 { /* .p = */ "", /* .b = */ 0, /* .c = */ 0, /* .q = */ "" } | |
26 }; | |
27 | |
28 if (!a[0].p || *a[0].p || !a[0].q || *a[0].q | |
29 || !a[1].p || *a[1].p || !a[1].q || *a[1].q) | |
30 __builtin_abort (); | |
31 } | |
32 | |
33 // { dg-final { scan-tree-dump-not "abort" "optimized" } } |