The lazy DECL_RTL patch broke glibc builds on targets that use DWARF2. This showed up as an ia64-linux glibc build failure. A minimal testcase is: extern __const char *__const _sys_siglist[64]; const char *const __new_sys_siglist[64]; extern __typeof (__new_sys_siglist) _sys_siglist __attribute__ ((weak, alias ("__new_sys_siglist"))); Compile this with -gdwarf-2 and we hit the abort at the start of make_decl_rtl. The problem here is that attribute alias clears the DECL_EXTERNAL bit, so we end up with a decl with none of DECL_EXTERNAL, DECL_REGISTER, or TREE_STATIC set. However, it is still not an auto. I think the right fix is to add another check for TREE_PUBLIC. This patch has not been tested with a bootstrap yet, and has not been checked in yet. 2001-03-15 Jim Wilson * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test. Index: varasm.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/varasm.c,v retrieving revision 1.166 diff -p -r1.166 varasm.c *** varasm.c 2001/03/15 09:58:58 1.166 --- varasm.c 2001/03/16 06:43:11 *************** make_decl_rtl (decl, asmspec) *** 592,597 **** --- 592,598 ---- || TREE_CODE (decl) == RESULT_DECL || (TREE_CODE (decl) == VAR_DECL && !TREE_STATIC (decl) + && !TREE_PUBLIC (decl) && !DECL_EXTERNAL (decl) && !DECL_REGISTER (decl))) abort ();