Proposed resolution (approved by CWG 2022-11-09):
Change 6.8.1 [basic.types.general] paragraph 10 as follows:
A type is a literal type if it is:
...
a possibly cv-qualified class type (Clause 11 [class]) that has all of the following properties:
it has a constexpr destructor (9.2.6 [dcl.constexpr]),
all of its non-static non-variant data members and base classes are of non-volatile literal types, and
it
is either
is a closure type (7.5.6.2 [expr.prim.lambda.closure]),
an aggregate type (9.5.2 [dcl.init.aggr]),is an aggregate union type that has either no variant members or at least one variant member of non-volatile literal type,
is a non-union aggregate type for which each of its anonymous union members satisfies the above requirements for an aggregate union type, or
has at least one constexpr constructor or constructor template (possibly inherited (9.10 [namespace.udecl]) from a base class) that is not a copy or move constructor
,.
if it is a union, at least one of its non-static data members is of non-volatile literal type, and
if it is not a union, all of its non-static data members and base classes are of non-volatile literal types.