https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93203
Bug ID: 93203 Summary: [10 Regression] ICE in decide_about_value, at ipa-cp.c:5448 since r278893 Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: fxue at gcc dot gnu.org, marxin at gcc dot gnu.org Target Milestone: --- I see ICE for the following test-case: $ cat ipacp.ii class a { public: a(char *); }; class ad { public: ad(a *); }; class b {}; using ah = class ak { using al = char; public: ak(b) : ak(0) {} ak an() { return ap & 1; } al ap; ak(al af) : ap(af) {} }; struct at { ah au; int av; char aw; char ax; }; class az { public: struct ba { void bb(ak am) { ak bc = am.an(); bb(bc); } }; void bd(ak am) { be.bb(am); } ba be; }; class bg { public: int bh; at bi; }; int bj; int *bk; int c; class bl { bool bm(); bg bn; az bo; int e; int bq; }; class bs { public: bs(int *, ah *, char *, char *, int); }; template < typename bt > class bu : bs { using bv = typename bt::bv; public: template < typename... bx > bu(a *by, int *bz, at body, bx...) : bs(bz, &body.au, &body.aw, &body.ax, body.av), ca(bx()...), cb(by), cc(by), cd(by), ce(by) {} void cf() { auto cg = ch(); auto ci = *cj(); ca.ck(this, cg, &ci); } bt ca; ad cb; ad cc; ad cd; ad ce; bv *cj(); bv ch(); }; class cl { public: using bv = struct {}; cl(az *, int, int, int, int, a *, int, int **); void ck(bs *, bv, bv *) { b d; ak ci(d); bo.bd(ci); } az bo; }; bool bl::bm() { a by(""); bu< cl > cn(&by, &bj, bn.bi, &bo, c, bn.bh, e, 0, &by, bq, &bk); cn.cf(); } $ g++ -O3 ipacp.ii -m32 ipacp.ii: In member function ‘bool bl::bm()’: ipacp.ii:88:8: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] 88 | a by(""); | ^~ ipacp.ii:91:1: warning: no return statement in function returning non-void [-Wreturn-type] 91 | } | ^ during IPA pass: cp ipacp.ii: At global scope: ipacp.ii:91:1: internal compiler error: in decide_about_value, at ipa-cp.c:5448 0x609057 decide_about_value<tree_node*> /home/marxin/Programming/gcc2/gcc/ipa-cp.c:5448 0x141fe42 decide_whether_version_node /home/marxin/Programming/gcc2/gcc/ipa-cp.c:5507 0x1421f17 ipcp_decision_stage /home/marxin/Programming/gcc2/gcc/ipa-cp.c:5653 0x1421f17 ipcp_driver /home/marxin/Programming/gcc2/gcc/ipa-cp.c:5836 0x1421f17 execute /home/marxin/Programming/gcc2/gcc/ipa-cp.c:5927 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.