New issue
Advanced search Search tips

Issue 848478 link

Starred by 2 users

Issue metadata

Status: Unconfirmed
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Research the size overhead of the inline defaulted move constructors.

Reported by yorikpig...@gmail.com, May 31 2018

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 YaBrowser/18.6.1.287 (beta) Yowser/2.5 Safari/537.36

Steps to reproduce the problem:
Google's c++ style guide requires noexcept on moves.
At the same time current precommit checks require that complicated move constructors be declared out of line.

When declaring move constructor/assignment noexcept, default and out of line - some compilers will report a bug when the members of your type are not noexcept move constructible/assignable. And others wouldn't.
Example: https://godbolt.org/g/gUVakx

On top of compilers having different requirements, different standard libraries provide different noexcept guaranties.
For example std::set has a noexcept move constructor in libc++ but doesn't have one in MSVC.

A solution could be to write noexcept default move constructors inline. This, as far as I understand, forces the noexcept regardless of the member characteristics.
Example: https://godbolt.org/g/ze5zNy 

However, it might increase the binary size.
This task should answer: is the binary size increase a real problem if we change the out of line declaration rule.

discussion:
https://groups.google.com/a/chromium.org/forum/?utm_medium=email&utm_source=footer#!msg/cxx/ze4WJFg7RvU/USljDy4WBAAJ

What is the expected behavior?

What went wrong?
(nothing)

Did this work before? N/A 

Chrome version: 66.0.3359.181  Channel: n/a
OS Version: OS X 10.13.4
Flash Version: Shockwave Flash 29.0 r0
 

Comment 1 Deleted

Sorry for reporting a bug from an account for spam, my bad.
Labels: Needs-Triage-M66
Cc: susan.boorgula@chromium.org
Components: Blink>JavaScript>Language
Labels: Triaged-ET TE-NeedsTriageHelp
As this issue is out of scope of triaging at TE end, adding 'TE-NeedsTriageHelp' label and requesting someone from Blink>JavaScript>Language to look into the issue and help in further triaging.

Thanks...
Components: -Blink>JavaScript>Language
This isn't V8 specific. I'm not sure what component this fits under, please re-assign to a Chrome/Blink issue sheriff for triage.
Cc: thakis@chromium.org brucedaw...@chromium.org
Components: Build
thakis@, brucedawson@ you guys might have some context here.
Labels: -OS-Mac

Sign in to add a comment