This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/44291] New: [4.6 regression] ICE in set_user_assembler_libfunc
- From: "jules at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 May 2010 10:43:08 -0000
- Subject: [Bug middle-end/44291] New: [4.6 regression] ICE in set_user_assembler_libfunc
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Building (a cross compiler) for ARM Linux currently breaks whilst building
GLIBC. I believe this is due to the following patch (r159321):
http://gcc.gnu.org/ml/gcc-patches/2010-05/msg00766.html
>From this commit, the ARM build initially failed in a way identical to #44197
(an ICE in varpool_remove_node). Unfortunately the patch in that PR does not
fix the issue for ARM: from r159629, I get the following error whilst building
GLIBC instead:
../include/stdlib.h:34:1: internal compiler error: in
set_user_assembler_libfunc, at optabs.c:6104
which is:
rtx
set_user_assembler_libfunc (const char *name, const char *asmspec)
{
tree id, decl;
void **slot;
hashval_t hash;
id = get_identifier (name);
hash = htab_hash_string (name);
slot = htab_find_slot_with_hash (libfunc_decls, id, hash, NO_INSERT);
gcc_assert (slot); // <--- here
decl = (tree) *slot;
set_user_assembler_name (decl, asmspec);
return XEXP (DECL_RTL (decl), 0);
}
In the attached test case, if abort is renamed to abort2, the crash goes away,
which suggests the problem is related to the special handling of abort (and
friends) in builtins.c:set_builtin_user_assembler_name.
To reproduce: /path/to/cc1 -fpreprocessed init-first.i
--
Summary: [4.6 regression] ICE in set_user_assembler_libfunc
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: critical
Priority: P3
Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jules at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44291