From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19954 invoked by alias); 6 Jan 2012 21:41:23 -0000 Received: (qmail 19938 invoked by uid 22791); 6 Jan 2012 21:41:21 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 06 Jan 2012 21:41:08 +0000 From: "jason at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/51322] [C++11] wrong mangling with argument packs Date: Fri, 06 Jan 2012 21:41:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jason at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jason at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2012-01/txt/msg00684.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51322 --- Comment #2 from Jason Merrill 2012-01-06 21:39:51 UTC --- Author: jason Date: Fri Jan 6 21:39:43 2012 New Revision: 182970 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182970 Log: PR c++/6057 PR c++/48051 PR c++/50855 PR c++/51322 gcc/cp/ * mangle.c (write_expression): Support NEW_EXPR, DELETE_EXPR, THROW_EXPR, CONSTRUCTOR, OVERLOAD. Fix PREINCREMENT_EXPR and PREDECREMENT_EXPR. (write_template_arg): Fix mangling of class-scope functions and argument packs. (mangle_decl): Update suggested -fabi-version argument. * operators.def: Add DOTSTAR_EXPR, REINTERPRET_CAST_EXPR, DYNAMIC_CAST_EXPR; correct CONST_CAST_EXPR, STATIC_CAST_EXPR. * tree.c (dependent_name): No longer static. * cp-tree.h: Declare it. * pt.c (unify): Defer handling of unconverted functions. include/ * demangle.h (enum demangle_component_type): Add DEMANGLE_COMPONENT_INITIALIZER_LIST, DEMANGLE_COMPONENT_NULLARY. libiberty/ * cp-demangle.c (d_dump): Handle DEMANGLE_COMPONENT_NULLARY and DEMANGLE_COMPONENT_INITIALIZER_LIST. (d_make_comp): Likewise. Allow null right arg for DEMANGLE_COMPONENT_TRINARY_ARG2. (cplus_demangle_operators): Adjust new/delete; add .*, :: and throw. (d_template_args, d_template_arg): Handle 'J' for argument packs. (d_exprlist): Add terminator parm. (d_expression, d_print_comp): Handle initializer lists, nullary expressions, prefix/suffix operators, and new. (d_print_subexpr): Avoid parens around DEMANGLE_COMPONENT_QUAL_NAME and DEMANGLE_COMPONENT_INITIALIZER_LIST. * testsuite/demangle-expected: Add tests. Added: trunk/gcc/testsuite/g++.dg/abi/mangle51.C trunk/gcc/testsuite/g++.dg/abi/mangle52.C trunk/gcc/testsuite/g++.dg/abi/mangle53.C trunk/gcc/testsuite/g++.dg/abi/mangle54.C trunk/gcc/testsuite/g++.dg/abi/mangle55.C trunk/gcc/testsuite/g++.dg/abi/mangle56.C trunk/gcc/testsuite/g++.dg/abi/mangle57.C trunk/gcc/testsuite/g++.dg/abi/mangle58.C trunk/gcc/testsuite/g++.dg/abi/mangle59.C Modified: trunk/gcc/common.opt trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-tree.h trunk/gcc/cp/mangle.c trunk/gcc/cp/operators.def trunk/gcc/cp/pt.c trunk/gcc/cp/tree.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/cpp0x/trailing3.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic111.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic4.C trunk/gcc/testsuite/g++.dg/cpp0x/variadic42.C trunk/gcc/testsuite/g++.dg/template/nontype22.C trunk/gcc/testsuite/g++.dg/template/pr35240.C trunk/include/ChangeLog trunk/include/demangle.h trunk/libiberty/ChangeLog trunk/libiberty/cp-demangle.c trunk/libiberty/testsuite/demangle-expected trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/testsuite/abi/demangle/regression/cw-16.cc