https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95497
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:9eb7d0d76eb652caa9186766da4fe965f113b1b8 commit r11-1947-g9eb7d0d76eb652caa9186766da4fe965f113b1b8 Author: Patrick Palka <ppa...@redhat.com> Date: Wed Jul 8 14:17:47 2020 -0400 c++: ICE in is_really_empty_class [PR95497] We are ICEing in the testcase below because we pass the yet-uninstantiated class type A<int> of the PARM_DECL b to is_really_empty_class from is_rvalue_constant_expression when parsing the requirement t += b. This patch fixes the ICE by guarding the problematic call to is_really_empty_class with a COMPLETE_TYPE_P check, which should also subsume the existing dependent_type_p check. gcc/cp/ChangeLog: PR c++/95497 * constexpr.c (potential_constant_expression_1) <case PARM_DECL>: When processing_template_decl, check COMPLETE_TYPE_P before calling is_really_empty_class. Don't check dependent_type_p. gcc/testsuite/ChangeLog: PR c++/95497 * g++.dg/cpp2a/concepts-pr95497.C: New test.