From patchwork Fri Nov 28 16:55:32 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Wakely X-Patchwork-Id: 415920 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 26D081401EB for ; Sat, 29 Nov 2014 03:55:45 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; q=dns; s=default; b=NJuugu5FTR99MK2ze IHPYsUgLyBxMhuA1xoEW5gH1M8sk8de90W4kqPBdtOBsisY4nZWmbNa/krG5hJ6m xLHjZVV/fbYK38/EqWNaC4DNS0AA0IfTj1ui0E3yjmbtUWQ/WrDGyGFWrvCv0xky Iju0RXqZo6MsLcR/lPRVO53F7s= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=default; bh=sToASo0NTRMqXVX0QOX2EFC UL5o=; b=LrF+3UolFk7rza7v7UX4Mx1/INrUC4KVXZnJJhyytPpj6kbfmw/YLEb 6jwgT3Rht9S4S8EYkE9lxH0ohBfPdVFHpr+HTJPrB5YVP7mZXJwDlPAyChhaKKR2 6urpX3zuxFJNNZM3bfNC9uhBBQgnKn1AV6o+1+61Tzzh3yVUz++Q= Received: (qmail 25446 invoked by alias); 28 Nov 2014 16:55:38 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 25426 invoked by uid 89); 28 Nov 2014 16:55:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL, BAYES_00, SPF_HELO_PASS, SPF_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Fri, 28 Nov 2014 16:55:36 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id sASGtXxD018945 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 28 Nov 2014 11:55:33 -0500 Received: from localhost (ovpn-116-120.ams2.redhat.com [10.36.116.120]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id sASGtW6J008093; Fri, 28 Nov 2014 11:55:33 -0500 Date: Fri, 28 Nov 2014 16:55:32 +0000 From: Jonathan Wakely To: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Cc: Christopher Jefferson , Markus Trippelsdorf Subject: Re: [patch] New std::string implementation Message-ID: <20141128165532.GR5191@redhat.com> References: <20141114154330.GH5191@redhat.com> <20141128152448.GQ5191@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20141128152448.GQ5191@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) On 28/11/14 15:24 +0000, Jonathan Wakely wrote: >Tested x86_64-linux with: > > --target_board=unix\{-m32,\}\{,-D_GLIBCXX_USE_CXX11_ABI=0\} > >Also tested on powerpc64-linux (where this patch doesn't actually >bootstrap due to PR 63573, there's a patch in the PR that's needed) >and i686-linux. Oh how silly, the attached patch is needed for powerpc. I had fixed this once, but must have lost the change on the compile farm machine I was using and then not committed the fix in my local repo. The attached patch also includes the PR63573 fix which isn't committed yet. I've committed the libstdc++ parts (but not the PR fix) to my repo now, so it won't get lost again. diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index d4864ae..dd8142e 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -1617,8 +1617,12 @@ remap_gimple_stmt (gimple stmt, copy_body_data *id) /* Clear flags that need revisiting. */ if (gcall *call_stmt = dyn_cast (copy)) - if (gimple_call_tail_p (call_stmt)) - gimple_call_set_tail (call_stmt, false); + { + if (gimple_call_tail_p (call_stmt)) + gimple_call_set_tail (call_stmt, false); + if (gimple_call_from_thunk_p (call_stmt)) + gimple_call_set_from_thunk (call_stmt, false); + } /* Remap the region numbers for __builtin_eh_{pointer,filter}, RESX and EH_DISPATCH. */ diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h index e8f9e67..77838b0 100644 --- a/libstdc++-v3/include/bits/locale_facets.h +++ b/libstdc++-v3/include/bits/locale_facets.h @@ -2216,8 +2216,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL double&) const; // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ - && _GLIBCXX_USE_CXX11_ABI == 0 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ virtual iter_type __do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, double&) const; @@ -2231,8 +2230,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, void*&) const; // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ - && _GLIBCXX_USE_CXX11_ABI == 0 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ virtual iter_type do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, long double&) const; @@ -2501,8 +2499,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL do_put(iter_type, ios_base&, char_type, double) const; // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ - && _GLIBCXX_USE_CXX11_ABI == 0 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ virtual iter_type __do_put(iter_type, ios_base&, char_type, double) const; #else @@ -2514,8 +2511,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL do_put(iter_type, ios_base&, char_type, const void*) const; // XXX GLIBCXX_ABI Deprecated -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ - && _GLIBCXX_USE_CXX11_ABI == 0 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ virtual iter_type do_put(iter_type, ios_base&, char_type, long double) const; #endif diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index 23e87d0..306d3a6 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -712,8 +712,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL return __beg; } -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ - && _GLIBCXX_USE_CXX11_ABI == 0 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ template _InIter num_get<_CharT, _InIter>:: @@ -1156,8 +1155,7 @@ _GLIBCXX_BEGIN_NAMESPACE_LDBL do_put(iter_type __s, ios_base& __io, char_type __fill, double __v) const { return _M_insert_float(__s, __io, __fill, char(), __v); } -#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ \ - && _GLIBCXX_USE_CXX11_ABI == 0 +#if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ template _OutIter num_put<_CharT, _OutIter>::