LINUX.ORG.RU

man gcc

       -Wtrampolines
            Warn about trampolines generated for pointers to nested functions.

            A trampoline is a small piece of data or code that is created at run
            time on the stack when the address of a nested function is taken, and
            is used to call the nested function indirectly.  For some targets, it
            is made up of data only and thus requires no special treatment.  But,
            for most targets, it is made up of code and thus requires the stack
            to be made executable in order for the program to work properly.
Т.е. он опасается, что стек окажется не исполняемым, но -Wno-trampolines должно заглушить предупреждение.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

-Wno-trampolines

Да, это помогло. Но вот фигово, что с каждой новой версией gcc появляются новые косяки и приходится править CMakeLists, чтобы тупо под gcc подстроится...

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

с каждой новой версией gcc появляются новые косяки

Какой же это косяк, компилятор предупреждает о коде, который может завалиться если стек не исполняемый, он же не знает в каком окружении приложение будет работать. Лучше увидеть это во время компиляции, чем с крешем потом возиться. Плюс тут компилятор явно попросили выдавать больше предупреждений, что он и сделал.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Раньше-то нифига таких предупреждений не было!!!

И что мне теперь, функции внутри функций не делать что ли?

Eddy_Em ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Eddy_Em

Раньше-то нифига таких предупреждений не было!!!

Неисполняемый стек по идее становится более популярным, может это послужило причиной.

И что мне теперь, функции внутри функций не делать что ли?

Трамплин генерируется только если передавать указатель на вложенную функцию куда-нибудь, такие можно и повыносить, если их немного.

xaizek ★★★★★
()

Подразумевается, что, кроме разработчика, никто -Werror не использует.

deadNightTiger ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.