/* PR middle-end/41935 */ | |
extern void abort (void); | |
long int | |
foo (int n, int i, int j) | |
{ | |
typedef int T[n]; | |
struct S { int a; T b[n]; }; | |
return __builtin_offsetof (struct S, b[i][j]); | |
} | |
int | |
main (void) | |
{ | |
typedef int T[5]; | |
struct S { int a; T b[5]; }; | |
if (foo (5, 2, 3) | |
!= __builtin_offsetof (struct S, b) + (5 * 2 + 3) * sizeof (int)) | |
abort (); | |
if (foo (5, 5, 5) | |
!= __builtin_offsetof (struct S, b) + (5 * 5 + 5) * sizeof (int)) | |
abort (); | |
return 0; | |
} |