This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
I wrote this in November, but never got around to checking it in. I'm not sure if I can reproduce the problem again, but it is fairly obvious. I just did an x86-linux bootstrap and make check for all default languages which succeeded with no regressions. The ia64-linux bootstrap and make check was done back in November. I have checked this in now on mainline. Here is what I originally wrote in November... The glibc file iconvdata/iso-2022-cn-ext.c triggers an ICE when compiled for an IA-64 target with -O2 using a gcc-4.2 compiler configured with --enable-checking. The failure is: ../iconv/skeleton.c:801: internal compiler error: RTL flag check: INSN_DELETED_P used with unexpected rtx code 'plus' in output_constant_pool_1, at varasm.c:3392 The code fails when we take the fallthrough at the bottom on CONST. Tmp is now pointing at a LABEL_REF, but the LABEL_REF code accidentally uses x instead which is a CONST. Since this code never sets x, and tmp is not used after this code, the sensible thing to do is to use tmp everywhere instead of x. This has been broken since gcc-3.0 which is when an if statement got rewritten into the switch. Looking at this code confirms that use of tmp everywhere instead of x was the original intent. I don't have a testcase that fails with gcc-4.3, but the same problem is still clearly there. This patch was tested with an ia64-linux bootstrap and make check. There were no regressions. Since this isn't a regression, I'm not planning to add the patch to the gcc-4.2 branch unless someone recommends otherwise. Jim
Attachment:
patch.ia64.glibc
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |