Bug 1865115 - Work around template bug in clang-cl r=sfink

The default parameters to GCHashMap's constructor appear to be causing a problem similar to this issue:

https://github.com/llvm/llvm-project/issues/39618

Though substituting std::is_trivial for std::is_constructible doesn't immediately reproduce the error.

Without this workaround, the Linux and Mac CI builds succeed, but the Windows builds are busted.

Differential Revision: https://phabricator.services.mozilla.com/D203826
This commit is contained in:
Bryan Thrall 2024-03-20 21:17:21 +00:00
parent cdbaf36a2a
commit e9db5845b3

View file

@ -62,7 +62,8 @@ class GCHashMap : public js::HashMap<Key, Value, HashPolicy, AllocPolicy> {
public:
using EntryGCPolicy = MapEntryGCPolicy;
explicit GCHashMap(AllocPolicy a = AllocPolicy()) : Base(std::move(a)) {}
explicit GCHashMap() : Base(AllocPolicy()) {}
explicit GCHashMap(AllocPolicy a) : Base(std::move(a)) {}
explicit GCHashMap(size_t length) : Base(length) {}
GCHashMap(AllocPolicy a, size_t length) : Base(std::move(a), length) {}