From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 108387 invoked by alias); 15 Mar 2016 16:00:42 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 108139 invoked by uid 89); 15 Mar 2016 16:00:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=462, facet X-HELO: mail-qk0-f182.google.com Received: from mail-qk0-f182.google.com (HELO mail-qk0-f182.google.com) (209.85.220.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Tue, 15 Mar 2016 16:00:36 +0000 Received: by mail-qk0-f182.google.com with SMTP id s5so8801798qkd.0 for ; Tue, 15 Mar 2016 09:00:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-transfer-encoding; bh=z7Xe67WOSUKrFyUxfTk54Id8I3RqMglJAJkPbO45mLM=; b=V2Czo0SBguHQGkZeqgevHuG6/6n0oYzSQnHfez9H2PKPUojewaVJWzG4eo9BPD2wCB +Lk5joJAK+y3BOd7/njuDe5GR+ZDwCYAYAvmwu8pAo9AtA9Xx53oCh54ia9Jd5kpq5Jn ev2eEs2u2qSsMTi4lApDo08StZsdDvyZHhCXX7OuJSjpaPq+y6Dt4jTU/05bR13ji6v7 ZKI9SF3U/yS54sAGSCQYhiQTG0UWaWjw6F+/EkjTVUyf5Z+3AenWylwtMa4DrugatCg1 3F0goke3HoHGuRTFLyreAE2BC4tPhVZhUvDbrU2ZnJnSc8ab5EGU9HuX6ruPHvF6jH+M Ropw== X-Gm-Message-State: AD7BkJJs5BQ08K76/qlEOSuzvXpuTmQn+Gp+qmGW7aj+NxoVMkB8P/tjGki3PEqR6zgl3zO+/3l32yeMEQKufQ== MIME-Version: 1.0 X-Received: by 10.55.76.15 with SMTP id z15mr39370082qka.32.1458057632043; Tue, 15 Mar 2016 09:00:32 -0700 (PDT) Received: by 10.55.15.199 with HTTP; Tue, 15 Mar 2016 09:00:31 -0700 (PDT) In-Reply-To: <56E82BC4.7070401@redhat.com> References: <20160302162538.66068C88E@oc7340732750.ibm.com> <56E82BC4.7070401@redhat.com> Date: Tue, 15 Mar 2016 16:00:00 -0000 Message-ID: Subject: Re: PING^1: [PATCH] Add TYPE_EMPTY_RECORD for C++ empty class From: "H.J. Lu" To: Jason Merrill Cc: Ulrich Weigand , GCC Patches , Jakub Jelinek , Richard Biener , Markus Trippelsdorf Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2016-03/txt/msg00844.txt.bz2 On Tue, Mar 15, 2016 at 8:35 AM, Jason Merrill wrote: > I'm concerned about how this patch changes both target-independent code a= nd > target-specific code, with a passing remark that other targets might need= to > make similar changes. I'm also concerned about the effect of this on oth= er > languages that might not want the same change. So, here's an alternative > patch that implements the change in the front end (and includes your > testcases, thanks!). > > Thoughts? On x86-64, I got libtool: compile: /export/build/gnu/gcc-x32/build-x86_64-linux/./gcc/xgcc -shared-libgcc -B/export/build/gnu/gcc-x32/build-x86_64-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc-x32/build-x86_64-linux/x86_64-pc-linux-gnu/libstdc+= +-v3/src -L/export/build/gnu/gcc-x32/build-x86_64-linux/x86_64-pc-linux-gnu/libstdc+= +-v3/src/.libs -L/export/build/gnu/gcc-x32/build-x86_64-linux/x86_64-pc-linux-gnu/libstdc+= +-v3/libsupc++/.libs -B/usr/gcc-6.0.0-x32/x86_64-pc-linux-gnu/bin/ -B/usr/gcc-6.0.0-x32/x86_64-pc-linux-gnu/lib/ -isystem /usr/gcc-6.0.0-x32/x86_64-pc-linux-gnu/include -isystem /usr/gcc-6.0.0-x32/x86_64-pc-linux-gnu/sys-include -I/export/gnu/import/git/sources/gcc/libstdc++-v3/../libgcc -I/export/build/gnu/gcc-x32/build-x86_64-linux/x86_64-pc-linux-gnu/libstdc+= +-v3/include/x86_64-pc-linux-gnu -I/export/build/gnu/gcc-x32/build-x86_64-linux/x86_64-pc-linux-gnu/libstdc+= +-v3/include -I/export/gnu/import/git/sources/gcc/libstdc++-v3/libsupc++ -std=3Dgnu++11 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Werror=3Dabi -Wabi=3D9 -fdiagnostics-show-location=3Donce -ffunction-sections -fdata-sections -frandom-seed=3Dcow-shim_facets.lo -g -O2 -D_GNU_SOURCE -c /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cow-shim_facets.cc -fPIC -DPIC -D_GLIBCXX_SHARED -o cow-shim_facets.o In file included from /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cow-shim_facets.c= c:35:0: /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc: In instantiation of =E2=80=98std::__facet_shims::{anonymous}::numpunct_shim<_CharT>::numpunct_s= him(const facet*, std::__facet_shims::{anonymous}::numpunct_shim<_CharT>::__cache_typ= e*) [with _CharT =3D char; std::__facet_shims::facet =3D std::locale::facet; std::__facet_shims::{anonymous}::numpunct_shim<_CharT>::__cache_type =3D std::__numpunct_cache]=E2=80=99: /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc:461:20: required from here /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc:238:25: error: empty class =E2=80=98std::__facet_shims::other_abi {aka std::integral_constant}=E2=80=99 parameter passing ABI changes = in -fabi-version=3D10 (GCC 6) [-Werror=3Dabi] __numpunct_fill_cache(other_abi{}, f, c); ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc: In instantiation of =E2=80=98int std::__facet_shims::{anonymous}::collate_shim<_CharT>::do_compare(const _CharT*, const _CharT*, const _CharT*, const _CharT*) const [with _CharT =3D char]=E2=80=99: /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc:462:20: required from here /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc:265:28: error: empty class =E2=80=98std::__facet_shims::other_abi {aka std::integral_constant}=E2=80=99 parameter passing ABI changes = in -fabi-version=3D10 (GCC 6) [-Werror=3Dabi] return __collate_compare(other_abi{}, _M_get(), ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ lo1, hi1, lo2, hi2); ~~~~~~~~~~~~~~~~~~~ /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc: In instantiation of =E2=80=98std::__facet_shims::{anonymous}::collate_shim<_CharT>::string_type std::__facet_shims::{anonymous}::collate_shim<_CharT>::do_transform(const _CharT*, const _CharT*) const [with _CharT =3D char; std::__facet_shims::{anonymous}::collate_shim<_CharT>::string_type =3D std::basic_string]=E2=80=99: /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc:462:20: required from here /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc:273:23: error: empty class =E2=80=98std::__facet_shims::other_abi {aka std::integral_constant}=E2=80=99 parameter passing ABI changes = in -fabi-version=3D10 (GCC 6) [-Werror=3Dabi] __collate_transform(other_abi{}, _M_get(), st, lo, hi); ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets= .cc: In instantiation of =E2=80=98std::__facet_shims::{anonymous}::moneypunct_shim<_CharT, _Intl>::moneypunct_shim(const facet*, std::__facet_shims::{anonymous}::moneypunct_shim<_CharT, _Intl>::__cache_type*) [with _CharT =3D char; bool _Intl =3D true; std::__facet_shims::facet =3D std::locale::facet; std::__facet_shims::{anonymous}::moneypunct_shim<_CharT, _Intl>::__cache_type =3D std::__moneypunct_cache]=E2=80=99: ... --=20 H.J.