6.60.7 Прагмы переименования символов
GCC поддерживает директиву #pragma, которая изменяет имя, используемое в ассемблере для данного объявления. Хотя эта прагма поддерживается на всех платформах, она предназначена в первую очередь для обеспечения совместимости с заголовками системы Solaris. Этот эффект также может быть достигнут с помощью расширения меток asm (см. Метки asm).
redefine_extname oldname newname-
Эта прагма присваивает C-функции oldname ассемблерный символ newname. Предпроцессорная макрос
__PRAGMA_REDEFINE_EXTNAMEопределена, если эта прагма доступна (в настоящее время на всех платформах).
Эта прагма и расширение меток asm взаимодействуют сложным образом. Ниже приведены некоторые особые случаи, о которых следует знать:
- Эта прагма молчаливо применяется только к объявлениям с внешней связью. Метки asm не имеют этого ограничения.
- В C++, эта прагма молчаливо применяется только к объявлениям с связью «C». Опять же, метки asm не имеют этого ограничения.
- Если любой из способов изменения ассемблерного имени объявления применяется к объявлению, ассемблерное имя которого уже определено (либо из-за предыдущего использования одного из этих свойств, либо потому, что компилятор нуждался в ассемблерном имени для генерации кода), и новое имя отличается, выводится предупреждение, и имя не изменяется.
- oldname, используемая в
#pragma redefine_extname, всегда является именем в стиле C.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.5.0/gcc/Symbol-Renaming-Pragmas.html