GCC (/ Clang): fusionar funciones con instrucciones idénticas (plegado COMDAT)

Solo por curiosidad, ¿los conjuntos de herramientas GCC o Clang implementan el equivalente de MSVC?plegado COMDAT idéntico (ICF) actualmente? Si no, ¿hay planes para hacerlo? Parece que no puedo encontrar ningún enlace autoritario reciente sobre el tema que no sean los mensajes antiguos de la lista de correo de GCC.

Si no es así, ¿esto implica que las instancias de plantilla sobre tipos distintos siempre son funciones distintas en el binario resultante (en situaciones donde no están completamente en línea), incluso cuando son compatibles con binarios, o existen otros mecanismos en el lugar para manejar esto? en algun otro nivel?

Además, ¿alguien ha encontrado que ICF hace una gran diferencia en minimizar el tamaño de un ejecutable resultante en la práctica? No tengo ningún proyecto de MSVC grande a la mano para probarlo. (Supongo que solo es de gran ayuda si se crea una instancia de plantillas sobre muchos tipos diferentes de formatos de vtable compatibles).

Finalmente, ¿cumple con las normas C ++ 11 para dos punteros de funciones a diferentes funciones para comparar iguales en tiempo de ejecución?Este enlace Parece implicar que no lo es, pero es para C99. EDITAR:Encontré la pregunta anterior sobre este tema.

Respuestas a la pregunta(1)

Su respuesta a la pregunta