On Thu, Mar 18, 2021 at 11:35 AM Marek Polacek via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > As discussed in the r11-7709 patch, we can now make sure that tsubst > never sees a FLOAT_EXPR, much like its counterpart FIX_TRUNC_EXPR. > > Tested x86_64-pc-linux-gnu, applying to trunk. > > gcc/cp/ChangeLog: > > * pt.c (tsubst_copy_and_build): Add assert. > --- > gcc/cp/pt.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c > index 5e485f10d19..ea530ef36f4 100644 > --- a/gcc/cp/pt.c > +++ b/gcc/cp/pt.c > @@ -19770,6 +19770,8 @@ tsubst_copy_and_build (tree t, > complain|decltype_flag)); > > case FIX_TRUNC_EXPR: > + case FLOAT_EXPR: > + /* convert_like should have created an IMPLICIT_CONV_EXPR. */ > gcc_unreachable (); > > case ADDR_EXPR: > > base-commit: 55308fc26318427c1438cecc60ddd7ba24d5cd33 > -- > 2.30.2 >
This may have caused: https://gcc.gnu.org/pipermail/gcc-regression/2021-March/074461.html FAIL: g++.dg/torture/pr85013.C -O0 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O0 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O0 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O0 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O0 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O0 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O0 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O0 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O0 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O1 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O1 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O1 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O1 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O1 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O1 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O1 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O1 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O1 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O2 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O2 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O2 (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O3 -g (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O3 -g (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O3 -g (internal compiler error) FAIL: g++.dg/torture/pr85013.C -O3 -g (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O3 -g (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O3 -g (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -O3 -g (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O3 -g (test for excess errors) FAIL: g++.dg/torture/pr85013.C -O3 -g (test for excess errors) FAIL: g++.dg/torture/pr85013.C -Os (internal compiler error) FAIL: g++.dg/torture/pr85013.C -Os (internal compiler error) FAIL: g++.dg/torture/pr85013.C -Os (internal compiler error) FAIL: g++.dg/torture/pr85013.C -Os (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -Os (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -Os (test for errors, line 3) FAIL: g++.dg/torture/pr85013.C -Os (test for excess errors) FAIL: g++.dg/torture/pr85013.C -Os (test for excess errors) FAIL: g++.dg/torture/pr85013.C -Os (test for excess errors) -- H.J.