В соответствии с gnu
(https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Function-Attributes.html) атрибута NoClone определяется как:Назначение атрибута функции NoClone
Этот атрибут функция предотвращает функцию из рассматриваемых для клонирования-механизма, который производит специализированные копии функций и которое (в настоящее время), выполняемых путем межпроцедурного распространения.
Что выше определения следует, о когда и где мы должны использовать этот атрибут функции?
Догадка - наличие простого экземпляра функции помогает в отладке, поэтому единственное место для установки точки останова и/или изменения ее кода на лету. – Netch
Существует аргументированный пример этой ошибки clang [здесь] (https://llvm.org/bugs/show_bug.cgi?id=22311) и исходный патч gcc [здесь] (https: //gcc.gnu. орг/мл/GCC-пластыри/2009-07/msg01021.html). – dragosht