error: aggregate initialization of type 'mozilla::dom::IpdlQueueBuffer' with user-declared constructors is incompatible with C++20 [-Werror,-Wc++20-compat]
Categories
(Core :: Graphics: CanvasWebGL, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox75 | --- | unaffected |
firefox76 | --- | unaffected |
firefox77 | --- | fixed |
firefox78 | --- | fixed |
People
(Reporter: Sylvestre, Assigned: handyman)
References
(Blocks 2 open bugs, Regression)
Details
(Keywords: regression)
Attachments
(1 file)
47 bytes,
text/x-phabricator-request
|
pascalc
:
approval-mozilla-beta+
|
Details | Review |
with clang trunk
In file included from UnifiedProtocols11.cpp:83:
In file included from /var/lib/jenkins/workspace/firefox-clang-lld-last/obj-x86_64-pc-linux-gnu/ipc/ipdl/PCompositorBridge.cpp:26:
In file included from /var/lib/jenkins/workspace/firefox-clang-lld-last/obj-x86_64-pc-linux-gnu/ipc/ipdl/_ipdlheaders/mozilla/dom/PWebGLParent.h:20:
/var/lib/jenkins/workspace/firefox-clang-lld-last/obj-x86_64-pc-linux-gnu/dist/include/mozilla/dom/IpdlQueue.h:240:43: error: aggregate initialization of type 'mozilla::dom::IpdlQueueBuffer' with user-declared constructors is incompatible with C++20 [-Werror,-Wc++20-compat]
toSendSync, IpdlQueueBuffer{mId, std::move(mSerializedData)})
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
Reporter | ||
Comment 1•4 years ago
|
||
David, could you please have a look?
thanks
Reporter | ||
Updated•4 years ago
|
It's interesting that this only happens on trunk. The warning message dates back to clang 8 so we should have seen it sooner. Maybe the conditions for "has a user-declared constructor" have changed? The constructor for IpdlQueueBuffer
looks pretty vanilla to me!
Assignee | ||
Comment 3•4 years ago
|
||
I'll take clang's word for it and switch to a normal constructor. I can't keep track of all of the list constructor exceptions.
Assignee | ||
Comment 4•4 years ago
|
||
The list-initialization previously used is illegal for this case in C++20.
Updated•4 years ago
|
Comment 5•4 years ago
|
||
Here's a fairly good rundown of the breaking change made in c++20:
https://stackoverflow.com/questions/57271400/why-does-aggregate-initialization-not-work-anymore-since-c20-if-a-constructor
Assignee | ||
Comment 7•4 years ago
|
||
Actually managed to convince me it makes sense.
Pushed by daparks@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/385f49adaf00 Avoid list-initializer construction in WebGL IpdlQueueBuffer r=jgilbert
Comment 9•4 years ago
|
||
Yeah I'm not thrilled about it, but I see why they did it. I wish I had a way to trivially declare a defaulted aggregate constructor, though.
Comment 10•4 years ago
|
||
bugherder |
Comment 11•4 years ago
|
||
Set release status flags based on info from the regressing bug 1621762
Updated•4 years ago
|
Comment 13•4 years ago
|
||
The patch landed in nightly and beta is affected.
:handyman, is this bug important enough to require an uplift?
If not please set status_beta
to wontfix
.
For more information, please visit auto_nag documentation.
Assignee | ||
Comment 14•4 years ago
|
||
Comment on attachment 9145649 [details]
Bug 1634949: Avoid list-initializer construction in WebGL IpdlQueueBuffer r=jgilbert!
Beta/Release Uplift Approval Request
- User impact if declined: None. This code is not live. The impact is to anyone investigating clang-trunk builds or in the event that clang-trunk is promoted while this is still in repo.
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): The code is not in any execution path (requires changing a config setting).
- String changes made/needed: N/A
Comment 15•4 years ago
|
||
Comment on attachment 9145649 [details]
Bug 1634949: Avoid list-initializer construction in WebGL IpdlQueueBuffer r=jgilbert!
Low risk and regressed in 77 nightly, uplift approved for beta, thanks.
Comment 16•4 years ago
|
||
bugherder uplift |
Updated•4 years ago
|
Updated•4 years ago
|
Description
•