diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/zerolen-1.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/zerolen-1.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/zerolen-1.c b/gcc/testsuite/gcc.c-torture/execute/zerolen-1.c new file mode 100644 index 000000000..632ad4bc0 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/zerolen-1.c @@ -0,0 +1,32 @@ +extern void abort (void); +extern void exit (int); + +union iso_directory_record { + char carr[4]; + struct { + unsigned char name_len [1]; + char name [0]; + } u; +} entry; + +void set(union iso_directory_record *); + +int main (void) +{ + union iso_directory_record *de; + + de = &entry; + set(de); + + if (de->u.name_len[0] == 1 && de->u.name[0] == 0) + exit (0); + else + abort (); +} + +void set (union iso_directory_record *p) +{ + p->carr[0] = 1; + p->carr[1] = 0; + return; +} |