On Thu, May 28, 2020 at 07:05:47AM -0700, H.J. Lu wrote: > On Thu, May 28, 2020 at 6:57 AM Marek Polacek <pola...@redhat.com> wrote: > > > > On Thu, May 28, 2020 at 06:44:53AM -0700, H.J. Lu via Gcc-patches wrote: > > > On Wed, May 27, 2020 at 12:07 PM Jason Merrill via Gcc-patches > > > <gcc-patches@gcc.gnu.org> wrote: > > > > > > > > Here, when considering the two 'insert' overloads, we look for aggregate > > > > conversions from the same initializer-list to B<3> or > > > > initializer_list<B<3>>. But since my fix for reshape_init overhead on > > > > the > > > > PR14179 testcase we reshaped the initializer-list directly, leading to > > > > an > > > > error when we then tried to reshape it differently for the second > > > > overload. > > > > > > > > Tested x86_64-pc-linux-gnu, applying to trunk and 10. > > > > > > > > gcc/cp/ChangeLog: > > > > > > > > PR c++/95319 > > > > * decl.c (reshape_init_array_1): Don't reuse in overload > > > > context. > > > > > > > > gcc/testsuite/ChangeLog: > > > > > > > > PR c++/95319 > > > > * g++.dg/cpp0x/initlist-array12.C: New test. > > > > > > I got > > > > > > FAIL: g++.dg/cpp0x/initlist-array12.C -std=c++14 (test for excess errors) > > > FAIL: g++.dg/cpp0x/initlist-array12.C -std=c++17 (test for excess errors) > > > FAIL: g++.dg/cpp0x/initlist-array12.C -std=c++2a (test for excess errors) > > > > This can be fixed with the attached patch. Jason, is it OK? > > > > > FAIL: g++.dg/ext/tmplattr10.C -std=c++98 (test for excess errors) > > > > But I don't know why this one fails. > > [hjl@gnu-cfl-2 gcc]$ > /export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/testsuite/g++/../../xg++ > -B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/testsuite/g++/../../ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C > -m32 -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers > -fdiagnostics-color=never -fdiagnostics-urls=never -nostdinc++ > -I/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/x86_64-pc-linux-gnu/32/libstdc++-v3/include/x86_64-pc-linux-gnu > -I/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/x86_64-pc-linux-gnu/32/libstdc++-v3/include > -I/export/gnu/import/git/sources/gcc/libstdc++-v3/libsupc++ > -I/export/gnu/import/git/sources/gcc/libstdc++-v3/include/backward > -I/export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/util > -fmessage-length=0 -std=c++98 -pedantic-errors -Wno-long-long -S -o > tmplattr10.s > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:15:31: > error: variadic templates only available with ‘-std=c++11’ or > ‘-std=gnu++11’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:16:28: > error: variadic templates only available with ‘-std=c++11’ or > ‘-std=gnu++11’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:18:11: > error: expected nested-name-specifier before ‘type’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:21:31: > error: variadic templates only available with ‘-std=c++11’ or > ‘-std=gnu++11’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:22:39: > error: variadic templates only available with ‘-std=c++11’ or > ‘-std=gnu++11’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:24:11: > error: expected nested-name-specifier before ‘type’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:27:31: > error: variadic templates only available with ‘-std=c++11’ or > ‘-std=gnu++11’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:28:38: > error: variadic templates only available with ‘-std=c++11’ or > ‘-std=gnu++11’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:30:11: > error: expected nested-name-specifier before ‘type’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:34:6: > error: ISO C++ forbids declaration of ‘wrap’ with no type > [-fpermissive] > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:34:1: > error: top-level declaration of ‘wrap’ specifies ‘auto’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:34:51: > error: trailing return type only available with ‘-std=c++11’ or > ‘-std=gnu++11’ > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C: > In function ‘int main()’: > /export/gnu/import/git/sources/gcc/gcc/testsuite/g++.dg/ext/tmplattr10.C:51:12: > error: ‘wrap’ was not declared in this scope > [hjl@gnu-cfl-2 gcc]$
I see, thanks. Jason, is this one OK too, then? Tested make check-g++ RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} dg.exp=tmplattr10.C' -- >8 -- This test uses C++11 features so should only run in c++11. * g++.dg/ext/tmplattr10.C: Only run in c++11. --- gcc/testsuite/g++.dg/ext/tmplattr10.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/ext/tmplattr10.C b/gcc/testsuite/g++.dg/ext/tmplattr10.C index 3fb8c21ccbe..46caa070098 100644 --- a/gcc/testsuite/g++.dg/ext/tmplattr10.C +++ b/gcc/testsuite/g++.dg/ext/tmplattr10.C @@ -1,5 +1,5 @@ // PR c++/95222 -// { dg-do compile { target { { i?86-*-* x86_64-*-* } && ia32 } } } +// { dg-do compile { target { { { i?86-*-* x86_64-*-* } && ia32 } && c++11 } } } #if defined(_MSC_VER) #define CC_FASTCALL __fastcall base-commit: 3ea6977d0f1813d982743a09660eec1760e981ec -- Marek Polacek • Red Hat, Inc. • 300 A St, Boston, MA