------- Additional Comments From jakub at gcc dot gnu dot org 2005-03-03 22:39 ------- The replace_args miscompilation seems to matter e.g. on: typedef int Elf64_Dyn; #define ElfW(type) _ElfW (Elf, 64, type) #define _ElfW(e,w,t) _ElfW_1 (e, w, _##t) #define _ElfW_1(e,w,t) e##w##t ElfW(Dyn) x; which when preprocessed with miscompiled replace_args prints 64_Dyn x; for the last line and Elf64_Dyn x; when replace_args is built with -O0. There are 3 calls to replace_args and the 3rd one seems to be the one that matters, but I haven't found any obvious differences in the debugger yet.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20305