Don't use obstack_empty_p

Doug Evans dje@google.com
Wed Dec 14 18:56:00 GMT 2011


On Wed, Dec 14, 2011 at 6:56 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> The obstack implementation in glibc is has changed in a way so that the
> obstack_empty_p macro from libiberty's obstack.h can return the wrong
> value when applied to an obstack managed by glibc's obstack
> implementation.  That results in an internal error in
> cp_merge_demangle_parse_infos.  This is the only use of obstack_empty_p
> in the whole src tree (and gcc doesn't use it either), and no other
> macro in obstack.h is affected by this incompatibility.  So I would
> suggest to just not use obstack_empty_p.
>
> Andreas.
>
> 2011-12-14  Andreas Schwab  <schwab@linux-m68k.org>
>
>        * cp-name-parser.y (cp_merge_demangle_parse_infos): Don't use
>        obstack_empty_p.
>
> diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y
> index f257370..b0262f2 100644
> --- a/gdb/cp-name-parser.y
> +++ b/gdb/cp-name-parser.y
> @@ -2029,9 +2029,6 @@ cp_merge_demangle_parse_infos (struct demangle_parse_info *dest,
>      cp_demangled_parse_info_free is called.  */
>   src->info = NULL;
>
> -  /* Assert if the SRC obstack is not empty.  */
> -  gdb_assert (obstack_empty_p (&src->obstack));
> -
>   /* Free SRC.  */
>   cp_demangled_name_parse_free (src);
>  }

LGTM



More information about the Gdb-patches mailing list