On Tue, Mar 15, 2016 at 8:35 AM, Jason Merrill <ja...@redhat.com> wrote: > I'm concerned about how this patch changes both target-independent code and > 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 other > 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=gnu++11 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Werror=abi -Wabi=9 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=cow-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.cc:35:0: /export/gnu/import/git/sources/gcc/libstdc++-v3/src/c++11/cxx11-shim_facets.cc: In instantiation of ‘std::__facet_shims::{anonymous}::numpunct_shim<_CharT>::numpunct_shim(const facet*, std::__facet_shims::{anonymous}::numpunct_shim<_CharT>::__cache_type*) [with _CharT = char; std::__facet_shims::facet = std::locale::facet; std::__facet_shims::{anonymous}::numpunct_shim<_CharT>::__cache_type = std::__numpunct_cache<char>]’: /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 ‘std::__facet_shims::other_abi {aka std::integral_constant<bool, true>}’ parameter passing ABI changes in -fabi-version=10 (GCC 6) [-Werror=abi] __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 ‘int std::__facet_shims::{anonymous}::collate_shim<_CharT>::do_compare(const _CharT*, const _CharT*, const _CharT*, const _CharT*) const [with _CharT = char]’: /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 ‘std::__facet_shims::other_abi {aka std::integral_constant<bool, true>}’ parameter passing ABI changes in -fabi-version=10 (GCC 6) [-Werror=abi] 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 ‘std::__facet_shims::{anonymous}::collate_shim<_CharT>::string_type std::__facet_shims::{anonymous}::collate_shim<_CharT>::do_transform(const _CharT*, const _CharT*) const [with _CharT = char; std::__facet_shims::{anonymous}::collate_shim<_CharT>::string_type = std::basic_string<char>]’: /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 ‘std::__facet_shims::other_abi {aka std::integral_constant<bool, true>}’ parameter passing ABI changes in -fabi-version=10 (GCC 6) [-Werror=abi] __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 ‘std::__facet_shims::{anonymous}::moneypunct_shim<_CharT, _Intl>::moneypunct_shim(const facet*, std::__facet_shims::{anonymous}::moneypunct_shim<_CharT, _Intl>::__cache_type*) [with _CharT = char; bool _Intl = true; std::__facet_shims::facet = std::locale::facet; std::__facet_shims::{anonymous}::moneypunct_shim<_CharT, _Intl>::__cache_type = std::__moneypunct_cache<char, true>]’: ... -- H.J.