[all-commits] [llvm/llvm-project] 385ba6: [cmake] Disable GCC 9's -Wredundant-move

Pavel Labath via All-commits all-commits at lists.llvm.org
Mon Dec 9 02:16:47 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 385ba6065a9f77b4744274a37c97c536f7250701
      https://github.com/llvm/llvm-project/commit/385ba6065a9f77b4744274a37c97c536f7250701
  Author: Pavel Labath <pavel at labath.sk>
  Date:   2019-12-09 (Mon, 09 Dec 2019)

  Changed paths:
    M llvm/cmake/modules/HandleLLVMOptions.cmake

  Log Message:
  -----------
  [cmake] Disable GCC 9's -Wredundant-move

Summary:
This new warning (enabled by -Wextra) fires when a std::move is
redundant, as the default compiler behavior would be to select a move
operation anyway (e.g., when returning a local variable). Unlike
-Wpessimizing-move, it has no performance impact -- it just adds noise.

Currently llvm has about 1500 of these warnings. Unfortunately, the
suggested fix -- removing std::move -- does not work because of some
older compilers we still support. Specifically clang<=3.8 will not use a
move operation if an implicit conversion is needed (Core issue 1579). In
code like "A f(ConvertibleToA a) { return a; }" it will prefer a copy,
or fail to compile if a copy is not possible.

This patch disables that warning to get a meaningful signal out of a GCC
9 build.

Reviewers: rnk, aaron.ballman, xbolva00

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70963




More information about the All-commits mailing list