2015-12-08 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/68640
* omp-low.c (install_var_field): Clear the restrict qualifier on the var
type.
From-SVN: r231411
+2015-12-08 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/68640
+ * omp-low.c (install_var_field): Clear the restrict qualifier on the var
+ type.
+
2015-12-08 Kirill Yukhin <kirill.yukhin@intel.com>
* config/i386/sse.md (define_insn "<avx512>_vec_dup<mode>_1"): Fix
|| !is_gimple_omp_oacc (ctx->stmt));
type = TREE_TYPE (var);
+ /* Prevent redeclaring the var in the split-off function with a restrict
+ pointer type. Note that we only clear type itself, restrict qualifiers in
+ the pointed-to type will be ignored by points-to analysis. */
+ if (POINTER_TYPE_P (type)
+ && TYPE_RESTRICT (type))
+ type = build_qualified_type (type, TYPE_QUALS (type) & ~TYPE_QUAL_RESTRICT);
+
if (mask & 4)
{
gcc_assert (TREE_CODE (type) == ARRAY_TYPE);
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2 -fopenmp -fdump-tree-ealias-all" } */
+
+#define N 1024
+
+int
+foo (int *__restrict__ ap)
+{
+ int *bp = ap;
+#pragma omp parallel for
+ for (unsigned int idx = 0; idx < N; idx++)
+ ap[idx] = bp[idx];
+}
+
+/* { dg-final { scan-tree-dump-times "clique 1 base 1" 2 "ealias" } } */
+/* { dg-final { scan-tree-dump-times "(?n)clique .* base .*" 2 "ealias" } } */