场景:
假设我有一个struct
包含一堆指针的类型,所有这些指针都是声明的restrict
,以及一个将其中的几个struct
作为参数的函数,如下所示:
struct bunch_of_ptr
{
double *restrict ptr00;
double *restrict ptr01;
...
double *restrict ptr19;
}
void evaluate(struct bunch_of_ptr input, struct bunch_of_ptr output)
{
// do some calculation on input and return results into output
}
根据http://www.oracle.com/technetwork/server-storage/solaris10/cc-restrict-139391.html,将input.ptrXX
被input.ptrYY
视为非别名。
问题:
编译器是否也会将input.ptrXX
和output.ptrYY
视为非混叠?