Next: , Previous: Compound Expressions, Up: Operands


12.5.2 复合左值

目前涉及到数组和结构体域引用的复合左值,没有被分解;像a.b[2] = 42这样的表达式不再被简化(虽然是复杂的数组下标)。这种限制可以解决之后的优化器的局限性;如果我们要将其转换成

       T1 = &a.b;
       T1[2] = 42;

则别名分析无法记住对T1[2]的引用是来自a.b,所以,其会认为该赋值会与a的另一个成员有别名关系;这会使struct-alias-1.c运行失败。将来对优化器的改进可以不再需要限制。