Commit 89e18b1a by Eric Botcazou Committed by Eric Botcazou

tree-sra.c (build_access_from_expr_1): Use more precise diagnostics for storage order barriers.

	* tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
	for storage order barriers.

From-SVN: r251050
parent fe8a99d8
2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
* tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
for storage order barriers.
2017-08-11 Martin Liska <mliska@suse.cz> 2017-08-11 Martin Liska <mliska@suse.cz>
PR tree-opt/79987 PR tree-opt/79987
......
...@@ -1175,11 +1175,17 @@ build_access_from_expr_1 (tree expr, gimple *stmt, bool write) ...@@ -1175,11 +1175,17 @@ build_access_from_expr_1 (tree expr, gimple *stmt, bool write)
else else
partial_ref = false; partial_ref = false;
if (storage_order_barrier_p (expr))
{
disqualify_base_of_expr (expr, "storage order barrier.");
return NULL;
}
/* We need to dive through V_C_Es in order to get the size of its parameter /* We need to dive through V_C_Es in order to get the size of its parameter
and not the result type. Ada produces such statements. We are also and not the result type. Ada produces such statements. We are also
capable of handling the topmost V_C_E but not any of those buried in other capable of handling the topmost V_C_E but not any of those buried in other
handled components. */ handled components. */
if (TREE_CODE (expr) == VIEW_CONVERT_EXPR && !storage_order_barrier_p (expr)) if (TREE_CODE (expr) == VIEW_CONVERT_EXPR)
expr = TREE_OPERAND (expr, 0); expr = TREE_OPERAND (expr, 0);
if (contains_view_convert_expr_p (expr)) if (contains_view_convert_expr_p (expr))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment