gccint: Compound Lvalues
1
1 12.6.2 Compound Lvalues
1 -----------------------
1
1 Currently compound lvalues involving array and structure field
1 references are not broken down; an expression like 'a.b[2] = 42' is not
1 reduced any further (though complex array subscripts are). This
1 restriction is a workaround for limitations in later optimizers; if we
1 were to convert this to
1
1 T1 = &a.b;
1 T1[2] = 42;
1
1 alias analysis would not remember that the reference to 'T1[2]' came by
1 way of 'a.b', so it would think that the assignment could alias another
1 member of 'a'; this broke 'struct-alias-1.c'. Future optimizer
1 improvements may make this limitation unnecessary.
1