/* { dg-do compile } */ | |
/* { dg-options "-fdump-tree-gimple" } */ | |
struct f | |
{ | |
struct { | |
int i; | |
} ff[10]; | |
}; | |
struct f g; | |
int ffff(int i) | |
{ | |
int t1 = 0; | |
int i1 = g.ff[t1].i; | |
int i2 = g.ff[i].i; | |
return i1 + i2; | |
} | |
/* We should not use extra temporaries apart from for i1 + i2. */ | |
/* { dg-final { scan-tree-dump-times "int" 5 "gimple" } } */ | |
/* { dg-final { scan-tree-dump-times "int D\\\." 1 "gimple" } } */ | |
/* { dg-final { cleanup-tree-dump "gimple" } } */ |