>On Wed, Aug 22, 2012 at 12:38 PM, Oleg Pekar (olpekar) <olpe...@cisco.com> >wrote: >> I'm using gcc 4.1.2, it supports -D_FORTIFY_SOURCE option for c files but >> not for c++. I'm looking for gcc version number where support for this >> option in c++ files was added.
>I'm not sure how to answer your question, because -D_FORTIFY_SOURCE is not a >GCC feature. It is a glibc feature. It causes glibc to change some function >definitions to use features that are provided by GCC. >As far as I know, all the _FORTIFY_SOURCE features that GCC provides are >available in both C and C++. >So, please give us an example of something that fails with g++ and >-D_FORTIFY_SOURCE that you expect to work. >Ian I created a tiny program test.c: #include <memory.h> int main() { char buf[4]; memcpy(buf, "1234", 5); return 0; } Then I compile it with gcc 4.1.2 on Red Hat Linux 5.5. When I compile it as c file - gcc performs the check specified by FORTIFY_SOURCE, when I compile it as c++ file - it doesn't. dev /tmp>gcc -x c -D_FORTIFY_SOURCE=2 -O2 -o test.exe -lstdc++ test.c test.c: In function \u2018main\u2019: test.c:6: warning: call to __builtin___memcpy_chk will always overflow destination buffer dev /tmp>gcc -x c++ -D_FORTIFY_SOURCE=2 -O2 -o test.exe -lstdc++ test.c dev /tmp>