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>
|
||||
|
||||
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>
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
/* Don't coalesce if the two variables aren't type compatible. */
|
||||
if (!types_compatible_p (TREE_TYPE (root1), TREE_TYPE (root2)))
|
||||
/* Don't coalesce if the two variables are not of the same type. */
|
||||
if (TREE_TYPE (root1) != TREE_TYPE (root2))
|
||||
{
|
||||
if (debug)
|
||||
fprintf (debug, " : Incompatible types. No coalesce.\n");
|
||||
fprintf (debug, " : Different types. No coalesce.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user