On Fri, Nov 27, 2015 at 12:42:09PM +0100, Tom de Vries wrote:
> --- a/gcc/omp-low.c
> +++ b/gcc/omp-low.c
> @@ -1366,10 +1366,12 @@ build_sender_ref (tree var, omp_context *ctx)
> return build_sender_ref ((splay_tree_key) var, ctx);
> }
>
> -/* Add a new field for VAR inside the structure CTX->SENDER_DECL. */
> +/* Add a new field for VAR inside the structure CTX->SENDER_DECL. If
> + BASE_POINTERS_RESTRICT, declare the field with restrict. */
>
> static void
> -install_var_field (tree var, bool by_ref, int mask, omp_context *ctx)
> +install_var_field_1 (tree var, bool by_ref, int mask, omp_context *ctx,
> + bool base_pointers_restrict)
Ugh, why the renaming? Just use default argument:
bool base_pointers_restrict = false
> +/* As install_var_field_1, but with base_pointers_restrict == false. */
> +
> +static void
> +install_var_field (tree var, bool by_ref, int mask, omp_context *ctx)
> +{
> + install_var_field_1 (var, by_ref, mask, ctx, false);
> +}
And avoid the wrapper.
> /* Instantiate decls as necessary in CTX to satisfy the data sharing
> - specified by CLAUSES. */
> + specified by CLAUSES. If BASE_POINTERS_RESTRICT, install var field with
> + restrict. */
>
> static void
> -scan_sharing_clauses (tree clauses, omp_context *ctx)
> +scan_sharing_clauses_1 (tree clauses, omp_context *ctx,
> + bool base_pointers_restrict)
Likewise.
Otherwise LGTM, but I'm worried if this isn't related in any way to
PR68640 and might not make things worse.
Jakub