Сегодня я обновил Ubuntu 12.04, который, как я думаю, имел g++ - 4.6 для Ubuntu 12.10 с g++ - 4.7.2. В моем коде у меня было несколько функций, отмеченных как __attribute__((always_inline))
. Причиной этого было просто то, что профилирование показало мне, что это значительно повысило производительность кода. Он отлично работал с g++ 4.6, но теперь с g++ 4.7 Я получаю сообщение об ошибке:
error: inlining failed in call to always_inline 'void func_name (args)': тело функции может быть перезаписано во время ссылки
Я не могу поделиться своим фактическим кодом, я пытался сузить его, но когда я слишком сильно меняю ошибку, это не помогает. Меня интересует первопричина этого сообщения об ошибке.