|  | // 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]) } | 
|  | }; |