On 21.01.2017 18:36, Alex Korchmar wrote: > Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote: > > VS>>> Помогло, спасибо. > VS>>> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=216317 > AK>> учти, что скорее всего это неправильное решение > EG> +1 > EG> Проблема, конечно, есть, но патч в таком виде вряд ли примут. > он ничего не портит - в смысле, это проблема в руках автора, просто gcc > такие "инлайны" автоматически игнорирует, все для удобства пользователей с > кривыми руками. > Репортить надо в llvm, что у них компилятор недостаточно изогнут. > Завтра я объявлю переменную register, а он посчитает что регистров не хватило, > и выведет мне стопиццот неверных сообщений о том что переменная вообще не > определена? inline - точно такой же хинт для компилятора. Hе совсем хинт. inline по стандарту (С99 и выше) говорит, что для такой функции не надо выдавать внешний символ. clang тут себя ведет по стандарту, отчего и ошибка. Чтобы внешний символ появился, нужно написать extern inline. Hо поскольку в стандарте inline появился поздно, в gnu успели придумать свое, что не пошло в стандарт один в один.