https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91953
--- Comment #8 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-9 branch has been updated by Jason Merrill <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:b4e53e9b3c963b1c0fe9637618dec8042764f599 commit r9-8323-gb4e53e9b3c963b1c0fe9637618dec8042764f599 Author: Jason Merrill <ja...@redhat.com> Date: Mon Mar 2 14:42:47 2020 -0500 c++: Allow parm of empty class type in constexpr. Since copying a class object is defined in terms of the copy constructor, copying an empty class is OK even if it would otherwise not be usable in a constant expression. Relatedly, using a parameter as an lvalue is no more problematic than a local variable, and calling a member function uses the object as an lvalue. gcc/cp/ChangeLog 2020-03-02 Jason Merrill <ja...@redhat.com> PR c++/91953 * constexpr.c (potential_constant_expression_1) [PARM_DECL]: Allow empty class type. [COMPONENT_REF]: A member function reference doesn't use the object as an rvalue.