<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/93818>93818</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Identical code folding in safe mode is more aggressive with gold than lld
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lld
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          serge-sans-paille
      </td>
    </tr>
</table>

<pre>
    The following scenario leads to code folding with gold but not lld. What prevents lld from going forward?

```
$ cat a.c
int foo() { return 42;}
int bar() { return 42;}

int main() { return foo() - bar(); }
$ clang -fuse-ld=lld -Wl,--icf=safe -ffunction-sections a.c
$ nm a.out | grep -E '(foo)|(bar)'
0000000000201660 T bar
0000000000201650 T foo
$ clang -fuse-ld=gold -Wl,--icf=safe -ffunction-sections a.c
$ nm a.out | grep -E '(foo)|(bar)'
0000000000400570 T bar
0000000000400570 T foo
```

reproducer: https://godbolt.org/z/js1Y9GWWb
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEU0FvnDwQ_TXDZQQyNqzhwCGb_fjUe6RVjwYbcGTslW02an99ZRKFNm3UYxGyxcybmfewnwhBz1apDuoz1JdMbHFxvgvKzyoPwob8JrQxKhuc_NY9LQonZ4x70XbGMCorvHZolJABo8PRyR0gU_pFxwVnZyQOW0TrIhojC7wuIuLNq7uyMaQQTt6tOLtUMzn_IrwE1gO5AHl4W0_k7X39pBWOIqIoxteAthEn54A2QFsEfkav4uYtVhTYGfjlgA3C_w12gFeh7e_oY1J-tAN2xqNDImiEnTGftqByI4FdktL8aoA-5rkeJ2CXICaF-TRtdoza2TyofQ-HsNTIrigKt0UE_oizVzfM_0OgHGizM2mBPwJtdiZtiu-V5P2hpDydCD7tXP-Qq1Mudfqc-n6I_4J7RUjNP-H-nju4f7gm--rVzTu5jcoDe8AlxlsA9gC0B9rPTg7OxML5GWj_HWj_HMqv7f_X65DJjsmWtSJTXclLTnhd1mW2dMMk6lrxRoixYm05jPzUNOPETiXlfGxIpjtKaEVqRkpWtoQVTV1NrahZW9KGt7yBiqhVaFMYc1_T7EyHsKmuZU3ZZEYMyoTdjpQaI4HS5EvfJXQ-bHOAihgdYjjqo45GdV-kslGPwvxqQ21xP6w1BXXA1XmFYp69CkHf1U82jYuwyZDZ5k334U_puGxDMboVaJ_mvm35zbtnNUag_S4iAO1fddw7-iMAAP__AENHnQ">