diff options
Diffstat (limited to 'test/regression')
-rw-r--r-- | test/regression/Results/initializers3 | 1 | ||||
-rw-r--r-- | test/regression/initializers3.c | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/test/regression/Results/initializers3 b/test/regression/Results/initializers3 index 8742f8ea..fb20e5a9 100644 --- a/test/regression/Results/initializers3 +++ b/test/regression/Results/initializers3 @@ -7,5 +7,4 @@ x21 = { 'H', 'e', 'l', 'l', 'o', '!', 0, 0, 0, 0, } f(0,42) = 42, f(1,42) = 43, f(2,42) = 44, f(3,42) = 44, f(4,42) = 44 s1 = { tag = 0, a = {66,77}, u = {0,0} } s2 = { tag = 0, a = {0,1}, u = {66,77} } -s3 = { tag = 1, a = {1,0}, u = {'H', 'e', 'l', 'l', 'o', '!', 0, 'X', } } s4 = { tag = 0, a = {66,77}, u = {88,99} } diff --git a/test/regression/initializers3.c b/test/regression/initializers3.c index 359a0f71..0769facc 100644 --- a/test/regression/initializers3.c +++ b/test/regression/initializers3.c @@ -82,8 +82,14 @@ int main() print_S("s1", &s1); struct S s2 = { .a.y = 1, .u.c[4] = 'x', .u.b = p1 }; print_S("s2", &s2); + /* ISO C99 and recent Clang say s3.a.y = 77 + GCC and earlier CompCert versions say s3.a.y = 0 + Now CompCert fails on an error "unsupported reinitialization". */ +#if 0 struct S s3 = { .tag = 1, .a = p1, .a.x = 1, .u.c = "Hello!", .u.c[7] = 'X' }; print_S("s3", &s3); +#endif + /* This other reinitialization is correctly supported, though. */ struct S s4 = { .tag = 0, .a.x = 1, .a = p1, .u.b = 88, 99 }; print_S("s4", &s4); return 0; |