| // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars2 | grep {\\\[2 x \\\[2 x i8\\\]\\\]} |
| // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars2 | grep {, i\[\[:digit:\]\]\\+ 1)} | count 1 |
| // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars3 | grep {\\\[2 x i16\\\]} |
| // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars3 | grep {, i\[\[:digit:\]\]\\+ 1)} | count 1 |
| // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars4 | grep {\\\[2 x \\\[2 x i8\\\]\\\]} | count 1 |
| // RUN: %llvmgcc %s -S -emit-llvm -O0 -o - | grep svars4 | grep {, i\[\[:digit:\]\]\\+ 1, i\[\[:digit:\]\]\\+ 1)} | count 1 |
| // PR 4349 |
| |
| union reg |
| { |
| unsigned char b[2][2]; |
| unsigned short w[2]; |
| unsigned int d; |
| }; |
| struct cpu |
| { |
| union reg pc; |
| }; |
| extern struct cpu cpu; |
| struct svar |
| { |
| void *ptr; |
| }; |
| struct svar svars1[] = |
| { |
| { &((cpu.pc).w[0]) } |
| }; |
| struct svar svars2[] = |
| { |
| { &((cpu.pc).b[0][1]) } |
| }; |
| struct svar svars3[] = |
| { |
| { &((cpu.pc).w[1]) } |
| }; |
| struct svar svars4[] = |
| { |
| { &((cpu.pc).b[1][1]) } |
| }; |