diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 31e365d5ce355a13c5eef3c7badb35be13b0b01d..408a05408e25de50afbb9c337cd777059987d16f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ + +2010-11-08 Basile Starynkevitch <basile@starynkevitch.net> + + * gengtype (get_output_file_for_structure): Ensure type is union + or struct. + (write_splay_tree_allocator_def): Use + get_output_file_with_visibility. + 2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * config/s390/s390.c (s390_handle_arch_option): Set type and flags diff --git a/gcc/gengtype.c b/gcc/gengtype.c index 55f9a78ffad4bdab72d008c603fa27f64f242dcf..306e61eb43ccd6ca274fab92aa4bf037aedc2469 100644 --- a/gcc/gengtype.c +++ b/gcc/gengtype.c @@ -2637,9 +2637,12 @@ output_type_enum (outf_p of, type_p s) static outf_p get_output_file_for_structure (const_type_p s, type_p *param) { - const char *fn = s->u.s.line.file; + const char *fn; int i; + gcc_assert (UNION_OR_STRUCT_P (s)); + fn = s->u.s.line.file; + /* This is a hack, and not the good kind either. */ for (i = NUM_PARAM - 1; i >= 0; i--) if (param && param[i] && param[i]->kind == TYPE_POINTER @@ -4062,7 +4065,7 @@ output_typename (outf_p of, const_type_p t) static void write_splay_tree_allocator_def (const_type_p s) { - outf_p of = get_output_file_for_structure (s, NULL); + outf_p of = get_output_file_with_visibility (NULL); oprintf (of, "void * ggc_alloc_splay_tree_"); output_typename (of, s); oprintf (of, " (int sz, void * nl)\n");