https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104717
--- Comment #5 from Tom de Vries <vries at gcc dot gnu.org> --- At original: ... void foo () ... #pragma acc parallel ... integer(kind=4) A.3[0:D.4266]; ... At gimple: ... void foo () ... #pragma omp target oacc_parallel ... integer(kind=4)[0:D.4266] * A.14; integer(kind=4) A.3[0:D.4266] [value-expr: *A.14]; ... A.14 = __builtin_alloca_with_align (D.4329, 32); ... And at ompexp: ... void foo.0._omp_fn.0 () ... integer(kind=4) A.3[0:D.4266] [value-expr: *A.14]; integer(kind=4)[0:D.4266] * A.14; ... A.14 = __builtin_alloca_with_align (D.4392, 32); ... and: ... void foo () ... __builtin_GOACC_parallel_keyed (-1, foo.0._omp_fn.0, 4, &.omp_data_arr.20, &.omp_data_sizes.21, &.omp_data_kinds.22, 0); ... However, somehow the A.3 remains part of the BLOCK_VARS of foo, so when ipa inline (activated by pta-ipa, which does node->get_body ()) inlines foo into main, it does a remap of block-var A.3, and then a remap of its value-expr A.14, and then a remap of its TREE_TYPE. Which has the effect of changing the TREE_TYPE of A.14 in foo.0._omp_fn.0.