This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Re: dwarf2out change breaks ada and libstdc++ onsolaris too
- From: Jason Merrill <jason at redhat dot com>
- To: Devang Patel <dpatel at apple dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Andreas Tobler <toa at pop dot agri dot ch>
- Date: Tue, 03 Feb 2004 17:23:29 -0500
- Subject: Re: [PATCH] Re: dwarf2out change breaks ada and libstdc++ onsolaris too
- References: <20040128091442.GA15449@redhat.com> <4017DFED.1060405@pop.agri.ch><A12E0988-5295-11D8-8DA1-000393A91CAA@apple.com><401D6D41.7040000@pop.agri.ch><9B360D3A-5670-11D8-BA30-000393A91CAA@apple.com>
On Tue, 3 Feb 2004 09:44:24 -0800, Devang Patel <dpatel@apple.com> wrote:
> It seems I broke all targets that do not supply target specific
> routine to build builtin va_list. These targets use standard
> builtin va_list that is just void *.
It's not clear to me why that's a problem.
> else if (TYPE_P (context))
> ! {
> ! tree v = root_type (context);
> ! if (v && TREE_CODE (v) == VOID_TYPE)
> ! /* Can not force die VOID_TYPE. */
> ! return;
> ! scope_die = force_type_die (context);
> ! }
The only types that can be contexts are classes, which are their own root
types, so this code is unnecessary.
> /* For TYPE_DECL, lookup TREE_TYPE. */
> if (TREE_CODE (decl) == TYPE_DECL)
> ! {
> ! tree v = root_type (TREE_TYPE (decl));
> ! if (v && TREE_CODE (v) == VOID_TYPE)
> ! /* Can not force die VOID_TYPE. */
> ! return;
> ! at_import_die = force_type_die (TREE_TYPE (decl));
> ! }
Why is this necessary? We can cope with void* in other contexts.
Jason