commit | d47a661f6d429269feaec001451be492b96d1dd3 | [log] [tgz] |
---|---|---|
author | Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> | Mon Dec 17 16:14:38 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Mon Dec 17 16:14:38 2018 |
tree | 8567ec92ec28394a8ea6c01b7f9d3abeac92315b | |
parent | c142fad5cc24f61942a92cfd402da45e25025ad5 [diff] |
image: Mark move operations noexcept Commit 97ad318786 ("Store account image in AccountInfo") broke the GCC build when it added a gfx::Image to a class whose move constructor and assignment operators are marked with noexcept: ../../components/signin/core/browser/account_info.cc:31:1: error: function ‘AccountInfo::AccountInfo(AccountInfo&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’ AccountInfo::AccountInfo(AccountInfo&& other) noexcept = default; ^~~~~~~~~~~ ../../components/signin/core/browser/account_info.cc:35:14: error: function ‘AccountInfo& AccountInfo::operator=(AccountInfo&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’ AccountInfo& AccountInfo::operator=(AccountInfo&& other) noexcept = default; ^~~~~~~~~~~ With GCC, having that noexcept marker requires all members to be marked with noexcept themselves, and gfx::Image was missing it. clang is fine because we pass -fno-exceptions and it disables the same error there, while GCC continues to raise it (bug 843143 and its corresponding CL have a longer discussion on this issue). gfx::Image's move constructor and assignment operators do not do anything, so we can just mark them noexcept too. Bug: 819294 Change-Id: I799a29bc2dee9773c3ccabcdc5f4450767925b3c Reviewed-on: https://chromium-review.googlesource.com/c/1379764 Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> Reviewed-by: Robert Sesek <rsesek@chromium.org> Cr-Commit-Position: refs/heads/master@{#617133}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .