This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]