ZHCU876Z July 2001 – October 2023 SM320F28335-EP
通过优化调用时,编译器会假定当任何变量的地址作为参数传递到函数时,所调用函数中设置的别名都不会对这些变量进行后续修改。示例包括:
如果您在代码中使用类似这样的别名,则必须在优化代码时使用 --aliased_variables 选项。例如,如果您的代码与下面的类似,请使用 --aliased_variables 选项。
int *glob_ptr;
g()
{
int x = 1;
int *p = f(&x);
*p = 5; /* p aliases x */
*glob_ptr = 10; /* glob_ptr aliases x */
h(x);
}
int *f(int *arg)
{
glob_ptr = arg;
return arg;
}