PR ipa/100600
gcc/ChangeLog:
* ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not
consider equal SSA_NAMEs when one is a param.
gcc/testsuite/ChangeLog:
* gcc.dg/ipa/pr100600.c: New test.
unsigned i1 = SSA_NAME_VERSION (t1);
unsigned i2 = SSA_NAME_VERSION (t2);
+ if (SSA_NAME_IS_DEFAULT_DEF (t1) != SSA_NAME_IS_DEFAULT_DEF (t2))
+ return false;
+
if (m_source_ssa_names[i1] == -1)
m_source_ssa_names[i1] = i2;
else if (m_source_ssa_names[i1] != (int) i2)
--- /dev/null
+/* PR ipa/100600 */
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+int a, b, c;
+long d(long x, long e, long f, long g) {
+ long h, i;
+ for (; h < e; h++) {
+ i = f;
+ for (; i < g; i++)
+ c = b + a;
+ }
+ return h + i;
+}
+
+long j(long x, long e, long y, long g) {
+ long h, i;
+ for (; h < e; h++)
+ for (; i < g; i++)
+ c = b + a;
+ return h + i;
+}