[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-25 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #18 from Jakub Jelinek --- Author: jakub Date: Mon Feb 25 15:01:01 2019 New Revision: 269188 URL: https://gcc.gnu.org/viewcvs?rev=269188&root=gcc&view=rev Log: PR c++/89285 * g++.dg/cpp1y/constexpr-89285-2.C: New test

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 Jakub Jelinek changed: What|Removed |Added Target Milestone|8.3 |8.4 --- Comment #17 from Jakub Jelinek

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-21 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #16 from Jakub Jelinek --- The above commit just brings 9.x into the similar state as 8.x on this testcase, thus it is ice-on-valid.

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-21 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #15 from Jakub Jelinek --- Author: jakub Date: Thu Feb 21 21:21:25 2019 New Revision: 269078 URL: https://gcc.gnu.org/viewcvs?rev=269078&root=gcc&view=rev Log: PR c++/89285 * builtins.c (fold_builtin_arith_overflow):

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-19 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned a

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-18 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #14 from Jakub Jelinek --- Created attachment 45752 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45752&action=edit gcc9-pr89285.patch Updated untested patch for the constexpr evaluation on pre-folding trees.

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-14 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 Richard Biener changed: What|Removed |Added Priority|P3 |P2

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-12 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 Jakub Jelinek changed: What|Removed |Added Attachment #45666|0 |1 is obsolete|

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-12 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #12 from Jakub Jelinek --- Created attachment 45671 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45671&action=edit gcc9-pr89285-wip.patch Updated version that handles the above mentioned C++ stmt trees. That said, there are

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-12 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #11 from Jakub Jelinek --- Created attachment 45667 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45667&action=edit gcc9-pr89285-wip.patch Updated patch to address 1). For 2), I guess we need to handle e.g. CLEANUP_STMT, IF_S

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-12 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #10 from Jakub Jelinek --- Created attachment 45666 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45666&action=edit gcc9-pr89285-wip.patch Non-working WIP. I've tried this, thinking that we don't really need to duplicate decl

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-11 Thread jason at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #9 from Jason Merrill --- (In reply to Jakub Jelinek from comment #4) > + /* Preserve REINTERPRET_CAST_P. */ > + if (code == NOP_EXPR && REINTERPRET_CAST_P (org_x)) > + { > + if (TREE_CODE (x) == NOP_EXPR && REINT

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #8 from Jakub Jelinek --- I'll try to copy & adjust (mostly kill almost everything) copy_tree_body_r and use that in register_constexpr_fundef. As we don't need to remap decls or types, I think we just need copy_statement_list for S

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #7 from Jakub Jelinek --- Ah, so one problem is that while we save the inline bodies of functions before cp_fold_function, cp_fold_function is destructive and clobbers the saved copy. cp_fold itself is (hopefully) not destructive and

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #6 from Jakub Jelinek --- Bisected that to the finish_id_expression change, reverting the penultimate and antepenultimate hunk of https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/cp/semantics.c?limit_changes=0&r1=267272&r2=267271&pathrev=267

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 --- Comment #5 from Jakub Jelinek --- Though, I wonder if something isn't wrong with the r267272 commit, I'd have thought that constexpr evaluation should be done on the pre-cp_folded bodies and cp_fold could be removing REINTERPRET_CAST_Ps.

[Bug c++/89285] [8/9 Regression] ICE after casting the this pointer in the constructor in C++17 mode

2019-02-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89285 Jakub Jelinek changed: What|Removed |Added Keywords||accepts-invalid CC|