This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RFC: C++0x ABI PATCH to decltype handling
On Sat, Feb 26, 2011 at 06:25:00PM +0100, Jakub Jelinek wrote:
> On Sat, Feb 26, 2011 at 11:30:51AM -0500, Jack Howarth wrote:
> > On Wed, Feb 23, 2011 at 09:14:11PM -0800, Mark Mitchell wrote:
> > > On 2/23/2011 8:56 PM, Jason Merrill wrote:
> > >
> > > > Perhaps so; I'm not sure what the right answer is for the default ABI
> > > > version. For now I've just made these changes ABI v6, and I'm checking
> > > > in this patch.
> > >
> > > That's good future-proofing.
> > >
> > > I know I'm being a bit pedantic, but I was just getting beat up about
> > > GCC backwards-compatibility again today. It's possible to fix 100 bugs,
> > > add 100 features, and still have an unhappy user if their code stops
> > > working.
> > >
> > > Thank you,
> >
> > This change regresses g++.dg/abi/mangle39.C on all darwin targets and introduces
> > new failures with the g++.dg/abi/mangle45.C testcase...
>
> Both are new tests, so it can hardly regress.
Huh? The g++.dg/abi/mangle39.C testcase predates r170459 by over a year so it certainly
should be a regression.
Author: jason
Date: Thu Jan 21 01:58:53 2010
New Revision: 156103
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=156103
Log:
PR c++/42338
* mangle.c (write_expression): Handle tree codes that have extra
arguments in the middle-end.
* cp-demangle.c (d_print_comp): Fix array index printing.
Added:
trunk/gcc/testsuite/g++.dg/abi/mangle39.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/mangle.c
trunk/libiberty/ChangeLog
trunk/libiberty/cp-demangle.c
> The thing is just that Jason wants to match there the aliases created by:
> #ifdef ASM_OUTPUT_DEF
> save_ver = flag_abi_version;
> flag_abi_version = 0;
> id2 = mangle_decl_string (decl);
> id2 = targetm.mangle_decl_assembler_name (decl, id2);
> flag_abi_version = save_ver;
>
> alias = make_alias_for (decl, id2);
> DECL_IGNORED_P (alias) = 1;
> TREE_PUBLIC (alias) = TREE_PUBLIC (decl);
> DECL_VISIBILITY (alias) = DECL_VISIBILITY (decl);
> if (vague_linkage_p (decl))
> DECL_WEAK (alias) = 1;
> if (TREE_CODE (decl) == FUNCTION_DECL)
> cgraph_same_body_alias (alias, decl);
> else
> varpool_extra_name_alias (alias, decl);
> #endif
> in mangle_decl, and likely Darwin doesn't emit them.
> I guess either the tests could have -fabi-version=0 among dg-options, or
> we should copy the tests, have one set of tests for the current
> -fabi-version=2 and another one for -fabi-version=0.
>
> This is just a testsuite issue.
>
> Jakub