是否可以将-Wp,-D_FORTIFY_SOURCE=2
选项(或=1
)与-Og
优化级别一起使用? The patch其中引入了 FORTIFY_SOURCE
包含注释 /* Object size checking is only intended for -O[s123]。 */
.
现在是 2004 年。而且我不知道何时引入 -Og
键(也许稍后)。
FORTIFY_SOURCE
需要哪些优化(优化标志)?
最佳答案
强化需要大于 0 的 __OPTIMIZE__
宏:
$ cat /usr/include/features
#if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
&& __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
# if _FORTIFY_SOURCE > 1
# define __USE_FORTIFY_LEVEL 2
-Og
在定义 __OPTIMIZE__
时与其他 -O
标志没有区别:
$ gcc -E -Og -dM -x c /dev/null 2>&1 | grep OPTIMIZE
#define __OPTIMIZE__ 1
所以你应该没问题。
您可以要求 Glibc 开发人员更新评论。
关于c++ - FORTIFY_SOURCE 和 Og 优化级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41009455/