Closed Bug 1828784 Opened 1 year ago Closed 1 year ago

[VS 2019+] dist/include\mozilla/Vector.h(543,33): error: no matching constructor for initialization of 'js::TempAllocPolicy'

Categories

(Core :: MFBT, defect)

defect

Tracking

()

RESOLVED FIXED
114 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox112 --- unaffected
firefox113 --- unaffected
firefox114 --- fixed

People

(Reporter: Gijs, Assigned: emilio)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file)

This error happened both on the original SDK that was on my system, and with the mach bootstrap one:

dist/include\js/GCVector.h(50,41): error: no matching constructor for initialization of 'js::TempAllocPolicy'
 6:27.29   explicit GCVector(AllocPolicy alloc = AllocPolicy())
.mozbuild/vs/VC/Tools/MSVC/14.29.30133/include\type_traits(569,35): note: in instantiation of default function argument expression for 'GCVector<JS::Value, 0ULL, js::TempAllocPolicy>' required here
 6:27.29 struct is_trivial : bool_constant<__is_trivially_constructible(_Ty) && __is_trivially_copyable(_Ty)> {
Blocks: mach-busted

Set release status flags based on info from the regressing bug 1277372

:andi, since you are the author of the regressor, bug 1277372, could you take a look? Also, could you set the severity field?

For more information, please visit auto_nag documentation.

Is this the entire error?

Flags: needinfo?(bpostelnicu) → needinfo?(gijskruitbosch+bugs)

So this is interesting. I can totally reproduce locally, even on a cross-compile... so why is this not affecting CI?

Fuller error follows:

 2:05.13 In file included from Unified_cpp_js_src_jit0.cpp:2:
 2:05.13 In file included from /tmp/gecko/js/src/jit/AliasAnalysis.cpp:7:
 2:05.13 In file included from /tmp/gecko/js/src/jit/AliasAnalysis.h:10:
 2:05.13 In file included from /tmp/gecko/js/src/jit/MIR.h:28:
 2:05.13 In file included from /tmp/gecko/js/src/NamespaceImports.h:17:
 2:05.13 In file included from /tmp/gecko/obj-x86_64-pc-windows-msvc/dist/include/js/GCVector.h:14:
 2:05.13 /tmp/gecko/obj-x86_64-pc-windows-msvc/dist/include/mozilla/Vector.h(543,33): error: no matching constructor for initialization of 'js::jit::JitAllocPolicy'
 2:05.13   explicit Vector(AllocPolicy = AllocPolicy());
 2:05.13                                 ^
 2:05.13 /home/glandium/.mozbuild/vs/VC/Tools/MSVC/14.29.30133/include/type_traits(569,35): note: in instantiation of default function argument expression for 'Vector<js::jit::MInstruction *, 6ULL, js::jit::JitAllocPolicy>' required here
 2:05.13 struct is_trivial : bool_constant<__is_trivially_constructible(_Ty) && __is_trivially_copyable(_Ty)> {
 2:05.13                                   ^
 2:05.13 /tmp/gecko/obj-x86_64-pc-windows-msvc/dist/include/mozilla/Vector.h(346,12): note: in instantiation of template class 'std::is_trivial<mozilla::Vector<js::jit::MInstruction *, 6, js::jit::JitAllocPolicy>>' requested here
 2:05.13       std::is_trivial<T>::value && std::is_standard_layout<T>::value;
 2:05.13            ^
 2:05.13 /tmp/gecko/obj-x86_64-pc-windows-msvc/dist/include/mozilla/Vector.h(347,65): note: in instantiation of static data member 'mozilla::Vector<mozilla::Vector<js::jit::MInstruction *, 6, js::jit::JitAllocPolicy>, 27, js::jit::JitAllocPolicy>::kElemIsPod' requested here
 2:05.13   typedef detail::VectorImpl<T, MinInlineCapacity, AllocPolicy, kElemIsPod>
 2:05.13                                                                 ^
 2:05.13 /tmp/gecko/js/src/jit/AliasAnalysis.cpp(152,71): note: in instantiation of template class 'mozilla::Vector<mozilla::Vector<js::jit::MInstruction *, 6, js::jit::JitAllocPolicy>, 27, js::jit::JitAllocPolicy>' requested here
 2:05.13   Vector<MInstructionVector, AliasSet::NumCategories, JitAllocPolicy> stores(
 2:05.13                                                                       ^
 2:05.13 /tmp/gecko/js/src/jit/JitAllocPolicy.h(82,16): note: candidate constructor not viable: requires single argument 'alloc', but no arguments were provided
 2:05.13   MOZ_IMPLICIT JitAllocPolicy(TempAllocator& alloc) : alloc_(alloc) {}
 2:05.13                ^
 2:05.13 /tmp/gecko/js/src/jit/JitAllocPolicy.h(78,7): note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
 2:05.13 class JitAllocPolicy {
 2:05.13       ^
 2:05.13 /tmp/gecko/js/src/jit/JitAllocPolicy.h(78,7): note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 0 were provided
 2:06.14 1 error generated.
Flags: needinfo?(gijskruitbosch+bugs)

D'uh, local builds are using VS 2019, CI is using 2017.

Summary: dist/include\mozilla/Vector.h(543,33): error: no matching constructor for initialization of 'js::TempAllocPolicy' → [VS 2019+] dist/include\mozilla/Vector.h(543,33): error: no matching constructor for initialization of 'js::TempAllocPolicy'

The bug is marked as tracked for firefox114 (nightly). However, the bug still isn't assigned.

:glandium, could you please find an assignee for this tracked bug? Given that it is a regression and we know the cause, we could also simply backout the regressor. If you disagree with the tracking decision, please talk with the release managers.

For more information, please visit auto_nag documentation.

Flags: needinfo?(mh+mozilla)

This is enough to prevent the undesired instantiation.

Assignee: nobody → emilio
Status: NEW → ASSIGNED
Flags: needinfo?(mh+mozilla)
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/56320b0a65c1
Work around VS 2019+ SDK issue. r=glandium
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 114 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: