Commit 71adbef3 by Richard Guenther Committed by Richard Biener

re PR tree-optimization/39233 (ivopts + vrp miscompilation)

2009-02-24  Richard Guenther  <rguenther@suse.de>
	Zdenek Dvorak  <ook@ucw.cz>

	PR tree-optimization/39233
	* tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
	from converting them to a generic type.

	* gcc.c-torture/execute/pr39233.c: New testcase.

Co-Authored-By: Zdenek Dvorak <ook@ucw.cz>

From-SVN: r144405
parent f1a558e0
2009-02-24 Richard Guenther <rguenther@suse.de>
Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/39233
* tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
from converting them to a generic type.
2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/39260
......
2009-02-24 Richard Guenther <rguenther@suse.de>
Zdenek Dvorak <ook@ucw.cz>
PR tree-optimization/39233
* gcc.c-torture/execute/pr39233.c: New testcase.
2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/39260
......
extern void abort (void);
__attribute__((noinline)) void
foo (void *p)
{
long l = (long) p;
if (l < 0 || l > 6)
abort ();
}
int
main ()
{
short i;
for (i = 6; i >= 0; i--)
foo ((void *) (long) i);
return 0;
}
......@@ -2071,9 +2071,7 @@ add_candidate_1 (struct ivopts_data *data,
{
orig_type = TREE_TYPE (base);
type = generic_type_for (orig_type);
/* Don't convert the base to the generic type for pointers as the generic
type is an integer type with the same size as the pointer type. */
if (type != orig_type && !POINTER_TYPE_P (orig_type))
if (type != orig_type)
{
base = fold_convert (type, base);
step = fold_convert (type, step);
......
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