Clang didn't like sizeot (uintset::value) in a templated context. Not sure
where the problem lies -- ambiguous std, gcc erroneous accept or clang erroneous
reject. Anyway, this avoids that construct.
PR c++/98340
gcc/cp/
* module.cc (uintset<T>::hash::add): Use uintset (0u).MEMBER,
rather than uintset::MEMBER.
{
unsigned n = set->num * 2;
size_t new_size = (offsetof (uintset, values)
- + sizeof (uintset::values) * n);
+ + sizeof (uintset (0u).values) * n);
uintset *new_set = new (::operator new (new_size)) uintset (set);
delete set;
set = new_set;
p2alloc++;
size_t new_size = (offsetof (uintset, values)
- + (sizeof (uintset::values) << p2alloc));
+ + (sizeof (uintset (0u).values) << p2alloc));
uintset *set = new (::operator new (new_size)) uintset (key);
set->allocp2 = p2alloc;
set->num = num;