https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94084
--- Comment #2 from vfdff <zhongyunde at huawei dot com> --- thanks very much, you are right. I try the case2 with global pointer and it get similar result with case1. extern int base; extern int *dest, *src; void foo (int n) { int i; // #pragma no_swp for (i=0; i < n; i++) dest[base+i] = src[base+i]; }