Hi,
this patch reset some of frontend langhooks that I think should be
completely handled by middle-end now.  I will also make patch to rewrite
set_assembler_name in some way that is safe, the comment bellow
the hunk added is bit oversimplified because we do add external
symbols (such as ctors and dtors or profile stuff).

The patch fixed the ICE in var_mod_type_p with obj-c++.  The other
hooks was changed more as a pre-cauntion. We want to detach FE
as much as possible from middle-end.

lto-Bootstrapped/regtested x86_64-linux, OK?

Honza

        * tree.c (free_lang_data): Reset overwite_assembler_name,
        print_xnode, print_decl, print_type and print_identifier of
        langhooks.
Index: tree.c
===================================================================
--- tree.c      (revision 265807)
+++ tree.c      (working copy)
@@ -6010,6 +6016,13 @@ free_lang_data (void)
   lang_hooks.dwarf_name = lhd_dwarf_name;
   lang_hooks.decl_printable_name = gimple_decl_printable_name;
   lang_hooks.gimplify_expr = lhd_gimplify_expr;
+  lang_hooks.overwrite_decl_assembler_name = lhd_overwrite_decl_assembler_name;
+  lang_hooks.print_xnode = lhd_print_tree_nothing;
+  lang_hooks.print_decl = lhd_print_tree_nothing;
+  lang_hooks.print_type = lhd_print_tree_nothing;
+  lang_hooks.print_identifier = lhd_print_tree_nothing;
+
+  lang_hooks.tree_inlining.var_mod_type_p = hook_bool_tree_tree_false;
 
   /* We do not want the default decl_assembler_name implementation,
      rather if we have fixed everything we want a wrapper around it

Reply via email to