FORTIFY_SOURCE和Og优化级别

时间:2016-12-07 04:31:18

标签: c++ gcc optimization g++ memory-safety

是否可以使用-Wp,-D_FORTIFY_SOURCE=2选项(或=1)以及-Og优化级别?引入FORTIFY_SOURCE的{​​{3}}包含评论/* Object size checking is only intended for -O[s123]. */

是2004年。而且我不知道何时引入-Og密钥(可能稍后)。

哪些优化(优化标志)FORTIFY_SOURCE需要?

1 个答案:

答案 0 :(得分:3)

强化要求__OPTIMIZE__宏大于0:

$ 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时,

-O与其他__OPTIMIZE__标志没有区别:

$ gcc -E -Og -dM -x c /dev/null 2>&1 | grep OPTIMIZE
#define __OPTIMIZE__ 1

所以你应该没事。

您可以要求Glibc开发人员更新评论。