A reference to a COMDAT function may be resolved to another definition
outside the current translation unit, so it's not eligible for `-fipa-ra`.
In `decl_binds_to_current_def_p()` there is already a check for weak
symbols. This commit checks for COMDAT functions that are not implemented
as weak symbols, for example, on *-*-mingw32.
gcc/ChangeLog:
PR rtl-optimization/115049
* varasm.cc (decl_binds_to_current_def_p): Add a check for COMDAT
declarations too, like weak ones.
(cherry picked from commit
5080840d8fbf25a321dd27543a1462d393d338bc)
for all other declaration types. */
if (DECL_WEAK (decl))
return false;
+ if (DECL_COMDAT_GROUP (decl))
+ return false;
if (DECL_COMMON (decl)
&& (DECL_INITIAL (decl) == NULL
|| (!in_lto_p && DECL_INITIAL (decl) == error_mark_node)))