------- Comment #5 from graeme at argyllcms dot com 2008-02-09 00:04 ------- The code is not "buggy". printf and fprintf are not reserved words, and occupy a separate namespace with regard to the structure name and any global function names. Because macros are a pre-process and don't understand the language syntax, they don't respect the difference in namespace and are therefore inherently dangerous and not guaranteed to work as a mechanism to change the number of arguments to a function.
Ideally FORTIFY_SOURCE should use some other mechanism that does respect the name spaces. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34710