Описание тега comdat-folding
1
ответ
Любой способ генерировать предупреждения для сравнения указателя функции?
У меня ушло навсегда, чтобы отследить, что в моем коде была ошибка, вызванная /OPT:ICF: Поскольку /OPT:ICF может привести к тому, что один и тот же адрес будет назначен различным функциям или элементам данных только для чтения (константные переменны…
29 янв '18 в 05:08
2
ответа
Связь между компилятором MSVC и опцией компоновщика для свертывания COMDAT
На этот вопрос есть несколько ответов о SO, но мой немного отличается. Прежде чем пометить как дубликат, пожалуйста, сделайте это. MSVC всегда предоставлял опцию компилятора /Gy для включения одинаковых функций в разделы COMDAT. В то же время компон…
11 ноя '16 в 19:29
0
ответов
Назначение IMAGE_COMDAT_SELECT_NODUPLICATES
Microsoft C++ с параметром /Gy поместит каждую функцию в отдельный раздел, чтобы компоновщик мог пропустить неиспользуемые функции, что может уменьшить размер исполняемого файла. Помимо размещения каждой функции в отдельном разделе, она также помеча…
08 апр '14 в 12:55
4
ответа
Разные функции имеют разные адреса?
Рассмотрим эти две функции: void foo() {} void bar() {} это гарантировано, что &foo != &bar? Так же, template<class T> void foo() { } это гарантировано, что &foo<int> != &foo<double>? Есть два линкера, которые я зна…
23 окт '14 в 17:21
1
ответ
COMDAT название раздела
Я пишу компоновщик для двоичных файлов Windows, и в настоящее время работаю над реализацией COMDAT. Я думаю, что понимаю большую часть спецификации, за исключением той из трех записей для раздела COMDAT (заголовок раздела, символы раздела и вспомога…
13 мар '14 в 16:11
0
ответов
Может ли компилятор исключить тела функций, которые принимаются по адресу, но никогда не вызываются?
Исходная информация Рассмотрим эту упрощенную реализацию std::any (нерелевантные части опущены) и некоторый код, который его использует: namespace std { namespace details { // Each instance of this function template has a different address template…
23 фев '20 в 07:38