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

Reply via email to