• Raphael Kubo da Costa's avatar
    trace_arguments: Mark StringStorage's move operations noexcept · 3e390e1c
    Raphael Kubo da Costa authored
    This fixes the GCC build after eebbd7f6 ("Introduce
    base::trace_event::TraceArguments helper class"):
    
        ../../base/trace_event/trace_event_impl.cc:61:1: error: function ‘base::trace_event::TraceEvent::TraceEvent(base::trace_event::TraceEvent&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
         TraceEvent::TraceEvent(TraceEvent&& other) noexcept = default;
         ^~~~~~~~~~
        ../../base/trace_event/trace_event_impl.cc:62:13: error: function ‘base::trace_event::TraceEvent& base::trace_event::TraceEvent::operator=(base::trace_event::TraceEvent&&)’ defaulted on its redeclaration with an exception-specification that differs from the implicit exception-specification ‘’
         TraceEvent& TraceEvent::operator=(TraceEvent&& other) noexcept = default;
                     ^~~~~~~~~~
    
    With GCC, having that noexcept marker requires all members to be marked
    with noexcept themselves, and StringStorage 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).
    
    Bug: 819294
    Change-Id: Ie2eba30dcb6d4a5f9cc1b4b7c961af96d9f55f10
    Reviewed-on: https://chromium-review.googlesource.com/c/1374230Reviewed-by: default avatarDavid Turner <digit@chromium.org>
    Reviewed-by: default avataroysteine <oysteine@chromium.org>
    Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
    Cr-Commit-Position: refs/heads/master@{#616082}
    3e390e1c
trace_arguments.h 24.5 KB