This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/20305] [4.0/4.1 Regression] Miscompilation of libcpp/macro.c at -O1 and higher
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Mar 2005 22:39:11 -0000
- Subject: [Bug bootstrap/20305] [4.0/4.1 Regression] Miscompilation of libcpp/macro.c at -O1 and higher
- References: <20050303191902.20305.jakub@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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