Commit f60c951c by John David Anglin Committed by John David Anglin

re PR middle-end/23369 (build_range_check generates wrong code for funcptr comparison)

	PR middle-end/23369
	* fold-const.c (build_range_check): Disable optimization for function
	pointer expressions on targets that require function pointer
	canonicalization.

From-SVN: r103145
parent 5b5dc475
2005-08-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR middle-end/23369
* fold-const.c (build_range_check): Disable optimization for function
pointer expressions on targets that require function pointer
canonicalization.
2005-08-15 Ulrich Weigand <uweigand@de.ibm.com>
* simplify-rtx.c (simplify_const_relational_operation): When
......
......@@ -3929,6 +3929,15 @@ build_range_check (tree type, tree exp, int in_p, tree low, tree high)
tree etype = TREE_TYPE (exp);
tree value;
#ifdef HAVE_canonicalize_funcptr_for_compare
/* Disable this optimization for function pointer expressions
on targets that require function pointer canonicalization. */
if (HAVE_canonicalize_funcptr_for_compare
&& TREE_CODE (etype) == POINTER_TYPE
&& TREE_CODE (TREE_TYPE (etype)) == FUNCTION_TYPE)
return NULL_TREE;
#endif
if (! in_p)
{
value = build_range_check (type, exp, 1, low, high);
......
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