Closed Bug 1465060 Opened 2 years ago Closed 2 years ago

Fix incorrect return Move(..) -pattern occurrences

Categories

(Firefox Build System :: Source Code Analysis, enhancement)

enhancement
Not set

Tracking

(firefox62 fixed)

RESOLVED FIXED
mozilla62
Tracking Status
firefox62 --- fixed

People

(Reporter: miko, Assigned: miko)

References

Details

Attachments

(2 files)

The following pattern:

T foo() {
  T x;
  return Move(x);
}

unnecessarily move-constructs a temporary that is then returned by value, possibly preventing RVO [1][2].

As the search[3] shows, this invalid pattern is used in many parts of the source tree.

We should fix the incorrect occurrences and enable clang warning -Wpessimizing-move, and/or write a static analysis checker for this.

[1]: https://stackoverflow.com/questions/4986673/c11-rvalues-and-move-semantics-confusion-return-statement
[2]: http://vmpstr.blogspot.de/2015/12/redundant-stdmove.html
[3]: https://searchfox.org/mozilla-central/search?q=return+Move%5C(.*%5C)&case=false&regexp=true&path=
(In reply to Miko Mynttinen [:miko] from comment #0)
> We should fix the incorrect occurrences and enable clang warning
> -Wpessimizing-move, and/or write a static analysis checker for this.

Sylvestre, have you seen issues with this?
Flags: needinfo?(sledru)
It is enabled by default in -Wall.
We have only one occurrence and it is in webrtc thirdparty code: 

In file included from /var/lib/jenkins/workspace/firefox-clang-last/obj-x86_64-pc-linux-gnu/media/webrtc/trunk/webrtc/modules/desktop_capture/desktop_capture_gn/Unified_cpp_desktop_capture_gn0.cpp:2:
/var/lib/jenkins/workspace/firefox-clang-last/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.cc:149:41: warning: moving a temporary object prevents copy elision [-Wpessimizing-move]
  std::unique_ptr<DesktopFrame> frame = std::move(screen_capturer_proxy_.GetFrame());
                                        ^
/var/lib/jenkins/workspace/firefox-clang-last/media/webrtc/trunk/webrtc/modules/desktop_capture/app_capturer_x11.cc:149:41: note: remove std::move call here
  std::unique_ptr<DesktopFrame> frame = std::move(screen_capturer_proxy_.GetFrame());
                                        ^~~~~~~~~~                                 ~

So, we would catch it with the CI running clang with --enable-as-error.

I guess this is a wontfix.
Flags: needinfo?(sledru)
Eh, I suppose the clang warning only checks for `return std::move(...)`, not the more general `return <rvalue-returning thing>`, which is what our Move() is?
Does it detect mozilla::Move? Pretty sure it does not...
Ah, mid-aired. Guess we could write a lint for that...
Product: Core → Firefox Build System
Component: General → Source Code Analysis
Oh, btw. With the patch in bug 1465585 we have a _lot_ of occurrences of this.
Depends on: 1466309
This patch probably contains same changes as bug 1466309 and bug 1466299 but that should be just a matter of rebasing.
Comment on attachment 8982804 [details]
Bug 1465060 - Part 1: Fix warnings for std::move() use

https://reviewboard.mozilla.org/r/248688/#review254894

Thank you for doing this.

::: image/test/gtest/TestSourceBuffer.cpp:616
(Diff revision 1)
>      return lambdaIterator;
>    };
>  
>    // Move-construct |movedIterator| from the iterator returned from
>    // GetIterator() and check that its state is as we expect.
> -  SourceBufferIterator movedIterator = std::move(GetIterator());
> +  SourceBufferIterator movedIterator = GetIterator();

Technically we kind of want `std::move` here, because we want to ensure move-construction happens...and it might not because it really depends on the return type of GetIterator, correct?

::: image/test/gtest/TestSourceBuffer.cpp:629
(Diff revision 1)
>    // Make sure that the iterator handles completion properly.
>    CheckIteratorIsComplete(movedIterator, 2, totalLength);
>  
>    // Move-assign |movedIterator| from the iterator returned from
>    // GetIterator() and check that its state is as we expect.
> -  movedIterator = std::move(GetIterator());
> +  movedIterator = GetIterator();

Same argument here.  I don't know if it matters too much, but something to think about?
Attachment #8982804 - Flags: review?(nfroyd) → review+
Comment on attachment 8982803 [details]
Bug 1465060 - Part 2: Don't suppress pessimizing-move and self-move warnings

https://reviewboard.mozilla.org/r/248686/#review254896

I think this part should be part 2, rather than part 1: we generally want to fix all the warnings first, and then flip on whatever ensures that no new instances slip in.  (Also makes bisecting work, if we happen to land between the two commits.)
Attachment #8982803 - Flags: review?(nfroyd) → review+
Comment on attachment 8982804 [details]
Bug 1465060 - Part 1: Fix warnings for std::move() use

https://reviewboard.mozilla.org/r/248688/#review254902

::: xpcom/tests/gtest/TestPLDHash.cpp:200
(Diff revision 1)
>    PLDHashTable t1(&trivialOps, sizeof(PLDHashEntryStub));
>    t1.Add((const void*)88);
>    PLDHashTable t2(&trivialOps, sizeof(PLDHashEntryStub));
>    t2.Add((const void*)99);
>  
> +#if defined(__clang__)

I created https://bugzilla.mozilla.org/show_bug.cgi?id=1466299 for this to remove these lines. I would not be surprised that gcc implements -Wself-move soon.

I am not convinced by this check...
If std::move fails, we will notice it immediately
forget about my comment, I only noticed Nathan comments in bug 1466299
(In reply to Nathan Froyd [:froydnj] from comment #10)
> Comment on attachment 8982804 [details]
> Technically we kind of want `std::move` here, because we want to ensure
> move-construction happens...and it might not because it really depends on
> the return type of GetIterator, correct?

You are right. I think we want to suppress the warning here as we do with TestPLDHash.cpp self-move test.

(In reply to Sylvestre Ledru [:sylvestre] from comment #12)
> Comment on attachment 8982804 [details]
> Bug 1465060 - Part 2: Fix warnings for std::move() use
> 
> https://reviewboard.mozilla.org/r/248688/#review254902
> 
> ::: xpcom/tests/gtest/TestPLDHash.cpp:200
> (Diff revision 1)
> >    PLDHashTable t1(&trivialOps, sizeof(PLDHashEntryStub));
> >    t1.Add((const void*)88);
> >    PLDHashTable t2(&trivialOps, sizeof(PLDHashEntryStub));
> >    t2.Add((const void*)99);
> >  
> > +#if defined(__clang__)
> I would not be surprised that gcc implements -Wself-move
> soon.

I wish there was a less verbose and more portable way of doing this. I guess we can wrap this in a macro if that happens.
(In reply to Miko Mynttinen [:miko] from comment #14)
> (In reply to Nathan Froyd [:froydnj] from comment #10)
> > Comment on attachment 8982804 [details]
> > Technically we kind of want `std::move` here, because we want to ensure
> > move-construction happens...and it might not because it really depends on
> > the return type of GetIterator, correct?
> 
> You are right. I think we want to suppress the warning here as we do with
> TestPLDHash.cpp self-move test.

I read this too hastily. Just moving from a temporary variable should fix this.
Pushed by mikokm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/10446073eca8
Part 1: Fix warnings for std::move() use r=froydnj
https://hg.mozilla.org/integration/autoland/rev/7c8905b6b226
Part 2: Don't suppress pessimizing-move and self-move warnings r=froydnj
Backout by aiakab@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/cd74e3f9f61e
Backed out 2 changesets for build bustages on security/sandbox/linux/reporter/SandboxReporter.cpp
Backed out 2 changesets (bug 1465060) for build bustages on security/sandbox/linux/reporter/SandboxReporter.cpp
Blackout revision https://hg.mozilla.org/integration/autoland/rev/cd74e3f9f61e1e48f872f1b365400668256c28aa
Failing push https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=7c8905b6b2264e7c20e6ab3f3def7d818c007f5b&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-classifiedState=unclassified
Link to a failure log:https://treeherder.mozilla.org/logviewer.html#?job_id=181626176&repo=autoland
Part of that log [task 2018-06-03T16:14:05.461Z] 16:14:05     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/libaom'
[task 2018-06-03T16:14:05.462Z] 16:14:05     INFO -  /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang -std=gnu99 -o rd.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/media/libaom -I/builds/worker/workspace/build/src/obj-firefox/media/libaom -I/builds/worker/workspace/build/src/media/libaom/config/linux/x64 -I/builds/worker/workspace/build/src/media/libaom/config -I/builds/worker/workspace/build/src/third_party/aom -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -DMOZILLA_CLIENT -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Qunused-arguments -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wclass-varargs -Wloop-analysis -Werror=non-literal-null-conversion -Wstring-conversion -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -Wno-sign-compare -Wno-unused-function -Wno-unreachable-code -Wno-unneeded-internal-declaration  -MD -MP -MF .deps/rd.o.pp   /builds/worker/workspace/build/src/third_party/aom/av1/encoder/rd.c
[task 2018-06-03T16:14:05.463Z] 16:14:05     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/libaom'
[task 2018-06-03T16:14:05.479Z] 16:14:05     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/libaom'
[task 2018-06-03T16:14:05.479Z] 16:14:05     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/libaom'
[task 2018-06-03T16:14:05.891Z] 16:14:05     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/reporter'
[task 2018-06-03T16:14:05.891Z] 16:14:05     INFO -  /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -std=gnu++14 -o SandboxReporter.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/security/sandbox/linux/reporter -I/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/reporter -I/builds/worker/workspace/build/src/security/sandbox/linux -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/security/sandbox/chromium -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Qunused-arguments -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wloop-analysis -Wc++1z-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -Werror  -MD -MP -MF .deps/SandboxReporter.o.pp   /builds/worker/workspace/build/src/security/sandbox/linux/reporter/SandboxReporter.cpp
[task 2018-06-03T16:14:05.893Z] 16:14:05     INFO -  /builds/worker/workspace/build/src/security/sandbox/linux/reporter/SandboxReporter.cpp:296:10: error: moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move]
[task 2018-06-03T16:14:05.893Z] 16:14:05     INFO -    return std::move(snapshot);
[task 2018-06-03T16:14:05.893Z] 16:14:05     INFO -           ^
[task 2018-06-03T16:14:05.893Z] 16:14:05     INFO -  /builds/worker/workspace/build/src/security/sandbox/linux/reporter/SandboxReporter.cpp:296:10: note: remove std::move call here
[task 2018-06-03T16:14:05.895Z] 16:14:05     INFO -    return std::move(snapshot);
[task 2018-06-03T16:14:05.896Z] 16:14:05     INFO -           ^~~~~~~~~~        ~
[task 2018-06-03T16:14:05.896Z] 16:14:05     INFO -  1 error generated.
[task 2018-06-03T16:14:05.896Z] 16:14:05     INFO -  /builds/worker/workspace/build/src/config/rules.mk:1031: recipe for target 'SandboxReporter.o' failed
[task 2018-06-03T16:14:05.897Z] 16:14:05     INFO -  make[4]: *** [SandboxReporter.o] Error 1
[task 2018-06-03T16:14:05.898Z] 16:14:05     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/reporter'
[task 2018-06-03T16:14:05.898Z] 16:14:05     INFO -  make[4]: *** Waiting for unfinished jobs....
[task 2018-06-03T16:14:05.898Z] 16:14:05     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/ffvpx/libavcodec/x86'
[task 2018-06-03T16:14:05.898Z] 16:14:05     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/ffvpx/libavcodec/x86'
[task 2018-06-03T16:14:06.004Z] 16:14:06     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/broker'
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -std=gnu++14 -o SandboxBroker.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/security/sandbox/linux/broker -I/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/broker -I/builds/worker/workspace/build/src/security/sandbox/linux -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/security/sandbox/chromium -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Qunused-arguments -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wloop-analysis -Wc++1z-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -Werror -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include  -MD -MP -MF .deps/SandboxBroker.o.pp   /builds/worker/workspace/build/src/security/sandbox/linux/broker/SandboxBroker.cpp
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/security/sandbox/linux/broker/SandboxBroker.cpp:80:10: error: moving a local object in a return statement prevents copy elision [-Werror,-Wpessimizing-move]
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -    return std::move(rv);
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -           ^
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/security/sandbox/linux/broker/SandboxBroker.cpp:80:10: note: remove std::move call here
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -    return std::move(rv);
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -           ^~~~~~~~~~  ~
[task 2018-06-03T16:14:06.015Z] 16:14:06     INFO -  1 error generated.
[task 2018-06-03T16:14:06.016Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/config/rules.mk:1031: recipe for target 'SandboxBroker.o' failed
[task 2018-06-03T16:14:06.016Z] 16:14:06     INFO -  make[4]: *** [SandboxBroker.o] Error 1
[task 2018-06-03T16:14:06.016Z] 16:14:06     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/broker'
[task 2018-06-03T16:14:06.016Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/config/recurse.mk:73: recipe for target 'security/sandbox/linux/broker/target' failed
[task 2018-06-03T16:14:06.017Z] 16:14:06     INFO -  make[3]: *** [security/sandbox/linux/broker/target] Error 2
[task 2018-06-03T16:14:06.017Z] 16:14:06     INFO -  make[3]: *** Waiting for unfinished jobs....
[task 2018-06-03T16:14:06.018Z] 16:14:06     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/ffvpx/libavcodec/x86'
[task 2018-06-03T16:14:06.018Z] 16:14:06     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/ffvpx/libavcodec/x86'
[task 2018-06-03T16:14:06.140Z] 16:14:06     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/reporter'
[task 2018-06-03T16:14:06.145Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang++ -std=gnu++14 -o SandboxReporterWrappers.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/stl_wrappers -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DOS_POSIX=1 -DOS_LINUX=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/security/sandbox/linux/reporter -I/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/reporter -I/builds/worker/workspace/build/src/security/sandbox/linux -I/builds/worker/workspace/build/src/obj-firefox/ipc/ipdl/_ipdlheaders -I/builds/worker/workspace/build/src/ipc/chromium/src -I/builds/worker/workspace/build/src/ipc/glue -I/builds/worker/workspace/build/src/security/sandbox/chromium -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -DMOZILLA_CLIENT -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Qunused-arguments -Wall -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wwrite-strings -Wno-invalid-offsetof -Wclass-varargs -Wloop-analysis -Wc++1z-compat -Wcomma -Wimplicit-fallthrough -Werror=non-literal-null-conversion -Wstring-conversion -Wno-inline-new-delete -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -Wno-unknown-warning-option -Wno-return-type-c-linkage -D_GLIBCXX_USE_CXX11_ABI=0 -fno-sized-deallocation -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -Werror  -MD -MP -MF .deps/SandboxReporterWrappers.o.pp   /builds/worker/workspace/build/src/security/sandbox/linux/reporter/SandboxReporterWrappers.cpp
[task 2018-06-03T16:14:06.145Z] 16:14:06     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/security/sandbox/linux/reporter'
[task 2018-06-03T16:14:06.145Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/config/recurse.mk:73: recipe for target 'security/sandbox/linux/reporter/target' failed
[task 2018-06-03T16:14:06.145Z] 16:14:06     INFO -  make[3]: *** [security/sandbox/linux/reporter/target] Error 2
[task 2018-06-03T16:14:06.149Z] 16:14:06     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/ffvpx/libavcodec/x86'
[task 2018-06-03T16:14:06.149Z] 16:14:06     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/ffvpx/libavcodec/x86'
[task 2018-06-03T16:14:06.427Z] 16:14:06     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/media/libaom'
[task 2018-06-03T16:14:06.431Z] 16:14:06     INFO -  /builds/worker/workspace/build/src/sccache2/sccache /builds/worker/workspace/build/src/clang/bin/clang -std=gnu99 -o rdopt.o -c -I/builds/worker/workspace/build/src/obj-firefox/dist/system_wrappers -include /builds/worker/workspace/build/src/config/gcc_hidden.h -DNDEBUG=1 -DTRIMMED=1 -DSTATIC_EXPORTABLE_JS_API -DMOZ_HAS_MOZGLUE -DMOZILLA_INTERNAL_API -DIMPL_LIBXUL -I/builds/worker/workspace/build/src/media/libaom -I/builds/worker/workspace/build/src/obj-firefox/media/libaom -I/builds/worker/workspace/build/src/media/libaom/config/linux/x64 -I/builds/worker/workspace/build/src/media/libaom/config -I/builds/worker/workspace/build/src/third_party/aom -I/builds/worker/workspace/build/src/obj-firefox/dist/include -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nspr -I/builds/worker/workspace/build/src/obj-firefox/dist/include/nss -fPIC -include /builds/worker/workspace/build/src/obj-firefox/mozilla-config.h -DMOZILLA_CLIENT -Qunused-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -Qunused-arguments -Wall -Wempty-body -Wignored-qualifiers -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wunreachable-code-return -Wclass-varargs -Wloop-analysis -Werror=non-literal-null-conversion -Wstring-conversion -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wformat -Wformat-security -Wno-gnu-zero-variadic-macro-arguments -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-math-errno -pthread -pipe -g -Xclang -load -Xclang /builds/worker/workspace/build/src/obj-firefox/build/clang-plugin/libclang-plugin.so -Xclang -add-plugin -Xclang moz-check -O2 -fno-omit-frame-pointer -Wno-sign-compare -Wno-unused-function -Wno-unreachable-code -Wno-unneeded-internal-declaration  -MD -MP -MF .deps/rdopt.o.pp   /builds/worker/workspace/build/src/third_party/aom/av1/encoder/rdopt.c
[task 2018-06-03T16:14:06.431Z] 16:14:06     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/media/libaom'
Flags: needinfo?(mikokm)
Duplicate of this bug: 1466513
Flags: needinfo?(mikokm)
Pushed by mikokm@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/a0d11b55d595
Part 1: Fix warnings for std::move() use r=froydnj
https://hg.mozilla.org/integration/autoland/rev/f02640343be7
Part 2: Don't suppress pessimizing-move and self-move warnings r=froydnj
https://hg.mozilla.org/mozilla-central/rev/a0d11b55d595
https://hg.mozilla.org/mozilla-central/rev/f02640343be7
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla62
Duplicate of this bug: 1466563
Duplicate of this bug: 1466309
You need to log in before you can comment on or make changes to this bug.