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
This commit is contained in:
parent
5b5dc47588
commit
f60c951c84
@ -1,3 +1,10 @@
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user