------- Comment #2 from robert at linuxfromscratch dot org 2006-10-15 19:41 ------- echo '#include <unistd.h> int main () { chdir( "/" ); }' > example.c
$ gcc -o example example.c -D_FORTIFY_SOURCE -O2 example.c: In function 'main': example.c:5: warning: ignoring return value of 'chdir', declared with attribute warn_unused_result echo '#include <unistd.h> #include <assert.h> int main () { assert (chdir( "/" )); }' > example2.c $ gcc -o example2 example2.c -D_FORTIFY_SOURCE -O2 With assert(3) there's no warning. These warnings usually affect fwrite(), dup(), chdir(), fchown(), fgets(), write(), mktemp(), mkstemp(), and mkdtemp(). The results of these are usually checked later by other functions, but FORTIFY_SOURCE does not know that and complains. To silence the warning we could either add more logic to FORTIFY_SOURCE to follow functions, checking if their returns go unused in the completed code, or add assert(3). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29480