Next: Conditional Expressions, Previous: Compound Expressions, Up: Operands
目前涉及到数组和结构体域引用的复合左值,没有被分解;像a.b[2] = 42
这样的表达式不再被简化(虽然是复杂的数组下标)。这种限制可以解决之后的优化器的局限性;如果我们要将其转换成
T1 = &a.b; T1[2] = 42;
则别名分析无法记住对T1[2]
的引用是来自a.b
,所以,其会认为该赋值会与a
的另一个成员有别名关系;这会使struct-alias-1.c
运行失败。将来对优化器的改进可以不再需要限制。