If you've followed what I've been up to via my questions on the mailing list, I finally traced my latest big problem back to to my own code. In a nut shell here is what I'm doing.
I'm creating a new type exaactly like this: tree pointer_rep = make_signed_type ( TYPE_PRECISION ( pointer_sized_int_node)); TYPE_MAIN_VARIANT ( pointer_rep) = TYPE_MAIN_VARIANT ( pointer_sized_int_node); const char *gcc_name = identifier_to_locale ( IDENTIFIER_POINTER ( TYPE_NAME ( ri->gcc_type))); size_t len = strlen ( REORG_SP_PTR_PREFIX) + strlen ( gcc_name); char *name = ( char *)alloca(len + 1); strcpy ( name, REORG_SP_PTR_PREFIX); strcat ( name, gcc_name); TYPE_NAME ( pointer_rep) = get_identifier ( name); I detect an ssa_name that I want to change to have this type and change it thusly. Note, this particular ssa_name is a default def which I seems to be very pertinent (since it's the only case that fails.) modify_ssa_name_type ( an_ssa_name, pointer_rep); void modify_ssa_name_type ( tree ssa_name, tree type) { // This rips off the code in make_ssa_name_fn with a // modification or two. if ( TYPE_P ( type) ) { TREE_TYPE ( ssa_name) = TYPE_MAIN_VARIANT ( type); if ( ssa_defined_default_def_p ( ssa_name) ) { // I guessing which I know is a terrible thing to do... SET_SSA_NAME_VAR_OR_IDENTIFIER ( ssa_name, TYPE_MAIN_VARIANT ( type)); } else { // The following breaks defaults defs hence the check above. SET_SSA_NAME_VAR_OR_IDENTIFIER ( ssa_name, NULL_TREE); } } else { TREE_TYPE ( ssa_name) = TREE_TYPE ( type); SET_SSA_NAME_VAR_OR_IDENTIFIER ( ssa_name, type); } } After this it dies when trying to call print_generic_expr with the ssa name. Here's the bottom most complaint from the internal error: tree check: expected tree that contains ‘decl minimal’ structure, have ‘integer_type’ in dump_generic_node, at tree-pretty-print.c:3154 Can anybody tell what I'm doing wrong? Thank, Gary CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for the sole use of the intended recipient(s) and contains information that is confidential and proprietary to Ampere Computing or its subsidiaries. It is to be used solely for the purpose of furthering the parties' business relationship. Any review, copying, or distribution of this email (or any attachments thereto) is strictly prohibited. If you are not the intended recipient, please contact the sender immediately and permanently delete the original and any copies of this email and any attachments thereto.