re PR tree-optimization/46806 (-O3 implies 0 <= 8 <= 7)
2010-12-06 Richard Guenther <rguenther@suse.de> PR tree-optimization/46806 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not coalesce different types. * g++.dg/torture/20100825.C: New testcase. From-SVN: r167490
This commit is contained in:
parent
6b7fb143ae
commit
bbb9d2fd5c
@ -1,3 +1,9 @@
|
|||||||
|
2010-12-06 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/46806
|
||||||
|
* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do not
|
||||||
|
coalesce different types.
|
||||||
|
|
||||||
2010-12-06 Richard Guenther <rguenther@suse.de>
|
2010-12-06 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/46785
|
PR tree-optimization/46785
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
2010-12-06 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
|
PR tree-optimization/46806
|
||||||
|
* g++.dg/torture/20100825.C: New testcase.
|
||||||
|
|
||||||
2010-12-06 Richard Guenther <rguenther@suse.de>
|
2010-12-06 Richard Guenther <rguenther@suse.de>
|
||||||
|
|
||||||
PR tree-optimization/46785
|
PR tree-optimization/46785
|
||||||
|
15
gcc/testsuite/g++.dg/torture/20100825.C
Normal file
15
gcc/testsuite/g++.dg/torture/20100825.C
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// { dg-do run }
|
||||||
|
|
||||||
|
typedef enum { zero = 0, one = 1, two = 2, ENUM_MAX = 3 } my_enum;
|
||||||
|
my_enum e;
|
||||||
|
extern "C" void abort (void);
|
||||||
|
int __attribute__((noinline)) foo() { return 10; }
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int r;
|
||||||
|
r = foo();
|
||||||
|
if ((r < 0) || (r >= ENUM_MAX))
|
||||||
|
return 0;
|
||||||
|
e = (my_enum)r;
|
||||||
|
abort ();
|
||||||
|
}
|
@ -226,11 +226,11 @@ copy_rename_partition_coalesce (var_map map, tree var1, tree var2, FILE *debug)
|
|||||||
ign2 = false;
|
ign2 = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Don't coalesce if the two variables aren't type compatible. */
|
/* Don't coalesce if the two variables are not of the same type. */
|
||||||
if (!types_compatible_p (TREE_TYPE (root1), TREE_TYPE (root2)))
|
if (TREE_TYPE (root1) != TREE_TYPE (root2))
|
||||||
{
|
{
|
||||||
if (debug)
|
if (debug)
|
||||||
fprintf (debug, " : Incompatible types. No coalesce.\n");
|
fprintf (debug, " : Different types. No coalesce.\n");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user