Commit 46cf7fa1 by Jakub Jelinek Committed by Jakub Jelinek

re PR c++/84684 (inserting random code / flags produces wrong code)

	PR c++/84684
	* constexpr.c (constexpr_call_hasher::equal): Return false if
	lhs->hash != rhs->hash.  Change return 1 to return true and
	return 0 to return false.

From-SVN: r258262
parent 34b01e68
2018-03-05 Jakub Jelinek <jakub@redhat.com>
PR c++/84684
* constexpr.c (constexpr_call_hasher::equal): Return false if
lhs->hash != rhs->hash. Change return 1 to return true and
return 0 to return false.
2018-03-05 Nathan Sidwell <nathan@acm.org> 2018-03-05 Nathan Sidwell <nathan@acm.org>
PR c++/84702 PR c++/84702
......
...@@ -1033,9 +1033,11 @@ constexpr_call_hasher::equal (constexpr_call *lhs, constexpr_call *rhs) ...@@ -1033,9 +1033,11 @@ constexpr_call_hasher::equal (constexpr_call *lhs, constexpr_call *rhs)
tree lhs_bindings; tree lhs_bindings;
tree rhs_bindings; tree rhs_bindings;
if (lhs == rhs) if (lhs == rhs)
return 1; return true;
if (lhs->hash != rhs->hash)
return false;
if (!constexpr_fundef_hasher::equal (lhs->fundef, rhs->fundef)) if (!constexpr_fundef_hasher::equal (lhs->fundef, rhs->fundef))
return 0; return false;
lhs_bindings = lhs->bindings; lhs_bindings = lhs->bindings;
rhs_bindings = rhs->bindings; rhs_bindings = rhs->bindings;
while (lhs_bindings != NULL && rhs_bindings != NULL) while (lhs_bindings != NULL && rhs_bindings != NULL)
...@@ -1044,7 +1046,7 @@ constexpr_call_hasher::equal (constexpr_call *lhs, constexpr_call *rhs) ...@@ -1044,7 +1046,7 @@ constexpr_call_hasher::equal (constexpr_call *lhs, constexpr_call *rhs)
tree rhs_arg = TREE_VALUE (rhs_bindings); tree rhs_arg = TREE_VALUE (rhs_bindings);
gcc_assert (TREE_TYPE (lhs_arg) == TREE_TYPE (rhs_arg)); gcc_assert (TREE_TYPE (lhs_arg) == TREE_TYPE (rhs_arg));
if (!cp_tree_equal (lhs_arg, rhs_arg)) if (!cp_tree_equal (lhs_arg, rhs_arg))
return 0; return false;
lhs_bindings = TREE_CHAIN (lhs_bindings); lhs_bindings = TREE_CHAIN (lhs_bindings);
rhs_bindings = TREE_CHAIN (rhs_bindings); rhs_bindings = TREE_CHAIN (rhs_bindings);
} }
......
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