https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106826

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |ppalka at gcc dot 
gnu.org
             Status|UNCONFIRMED                 |ASSIGNED
                 CC|                            |ppalka at gcc dot gnu.org
     Ever confirmed|0                           |1
   Target Milestone|---                         |13.0
   Last reconfirmed|                            |2022-09-21

--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Confirmed, likely started with r13-2351-g33005a4be49466 though it's ultimately
a latent modules bug.  Reduced testcase:

$ cat 106826_a.C
export module pr106826;
template<class T> constexpr bool is_lvalue_reference_v = false;
template<class T> constexpr bool is_lvalue_reference_v<T&> = true;
$ cat 106826_b.C
module pr106826;
static_assert(is_lvalue_reference_v<int&>);
$ g++ -fmodules-ts 106826_a.C
$ g++ -fmodules-ts 106826_b.C
106826_b.C:2:15: error: static assertion failed

It looks variable template partial specializations get lost during streaming.

Reply via email to