I have checked in the enclosed patch, which makes GCC ignore unrecognized DW_TAGs when building gnu-pubnames, instead of ICEing. This matches GDB behavior.
Google ref:11307370 Sterling
Index: dwarf2out.c =================================================================== --- dwarf2out.c (revision 203902) +++ dwarf2out.c (working copy) @@ -9249,7 +9249,8 @@ GDB_INDEX_SYMBOL_STATIC_SET_VALUE(flags, 1); break; default: - gcc_unreachable (); + /* An unusual tag. Leave the flag-byte empty. */ + break; } dw2_asm_output_data (1, flags >> GDB_INDEX_CU_BITSIZE, "GDB-index flags");