[Lldb-commits] [PATCH] D84126: Enable -Wsuggest-override in the LLVM build

2020-07-23 Thread Logan Smith via Phabricator via lldb-commits
logan-5 created this revision.
logan-5 added reviewers: dblaikie, rnk, aaron.ballman, ldionne.
Herald added subscribers: llvm-commits, libcxx-commits, lldb-commits, 
lebedev.ri, dexonsmith, mgorny.
Herald added a reviewer: lebedev.ri.
Herald added projects: LLDB, libc++, libc++abi, LLVM.
Herald added a reviewer: libc++.
Herald added a reviewer: libc++abi.

This patch adds Clang's new (and GCC's old) `-Wsuggest-override` to the warning 
flags for the LLVM build. The warning is a stronger form of 
`-Winconsistent-missing-override` which warns _everywhere_ that `override` is 
missing, not just in places where it's inconsistent within a class.

Some directories in the monorepo need the warning disabled for compatibility's, 
or sanity's, sake; in particular, libcxx/libcxxabi (I've added @ldionne as a 
reviewer to confirm this), and any code implementing or interoperating with 
googletest, googlemock, or google benchmark (which do not themselves use 
`override`). This patch adds `-Wno-suggest-override` to the relevant 
CMakeLists.txt's to accomplish this.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D84126

Files:
  libcxx/CMakeLists.txt
  libcxxabi/CMakeLists.txt
  lldb/unittests/CMakeLists.txt
  llvm/cmake/modules/HandleLLVMOptions.cmake
  llvm/utils/benchmark/CMakeLists.txt
  llvm/utils/unittest/CMakeLists.txt


Index: llvm/utils/unittest/CMakeLists.txt
===
--- llvm/utils/unittest/CMakeLists.txt
+++ llvm/utils/unittest/CMakeLists.txt
@@ -43,6 +43,9 @@
 if(CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG)
   add_definitions("-Wno-covered-switch-default")
 endif()
+if(CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+  add_definitions("-Wno-suggest-override")
+endif()
 
 set(LLVM_REQUIRES_RTTI 1)
 add_definitions( -DGTEST_HAS_RTTI=0 )
Index: llvm/utils/benchmark/CMakeLists.txt
===
--- llvm/utils/benchmark/CMakeLists.txt
+++ llvm/utils/benchmark/CMakeLists.txt
@@ -156,6 +156,10 @@
 add_cxx_compiler_flag(-fno-exceptions)
   endif()
 
+  if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+add_cxx_compiler_flag(-Wno-suggest-override)
+  endif()
+
   if (HAVE_CXX_FLAG_FSTRICT_ALIASING)
 if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel") #ICC17u2: Many false 
positives for Wstrict-aliasing
   add_cxx_compiler_flag(-Wstrict-aliasing)
Index: llvm/cmake/modules/HandleLLVMOptions.cmake
===
--- llvm/cmake/modules/HandleLLVMOptions.cmake
+++ llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -672,6 +672,9 @@
   # Enable -Wdelete-non-virtual-dtor if available.
   add_flag_if_supported("-Wdelete-non-virtual-dtor" 
DELETE_NON_VIRTUAL_DTOR_FLAG)
 
+  # Enable -Wsuggest-override if available.
+  add_flag_if_supported("-Wsuggest-override" SUGGEST_OVERRIDE_FLAG)
+
   # Check if -Wcomment is OK with an // comment ending with '\' if the next
   # line is also a // comment.
   set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
Index: lldb/unittests/CMakeLists.txt
===
--- lldb/unittests/CMakeLists.txt
+++ lldb/unittests/CMakeLists.txt
@@ -5,6 +5,10 @@
 include_directories(${LLDB_SOURCE_ROOT})
 include_directories(${LLDB_PROJECT_ROOT}/unittests)
 
+if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+  add_definitions("-Wno-suggest-override")
+endif()
+
 set(LLDB_GTEST_COMMON_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/gtest_common.h)
 if (MSVC)
   list(APPEND LLVM_COMPILE_FLAGS /FI ${LLDB_GTEST_COMMON_INCLUDE})
Index: libcxxabi/CMakeLists.txt
===
--- libcxxabi/CMakeLists.txt
+++ libcxxabi/CMakeLists.txt
@@ -283,6 +283,8 @@
 add_compile_flags_if_supported(-Wwrite-strings)
 add_compile_flags_if_supported(-Wundef)
 
+add_compile_flags_if_supported(-Wno-suggest-override)
+
 if (LIBCXXABI_ENABLE_WERROR)
   add_compile_flags_if_supported(-Werror)
   add_compile_flags_if_supported(-WX)
Index: libcxx/CMakeLists.txt
===
--- libcxx/CMakeLists.txt
+++ libcxx/CMakeLists.txt
@@ -578,6 +578,7 @@
 target_add_compile_flags_if_supported(${target} PRIVATE
   -Wno-user-defined-literals
   -Wno-covered-switch-default
+  -Wno-suggest-override
   -Wno-ignored-attributes # FIXME: Caused by _LIBCPP_NODEBUG_TYPE not 
being supported on older clangs
 )
 if (LIBCXX_TARGETING_CLANG_CL)
@@ -602,7 +603,8 @@
 target_add_compile_flags_if_supported(${target} PRIVATE
   -Wno-literal-suffix
   -Wno-c++14-compat
-  -Wno-noexcept-type)
+  -Wno-noexcept-type
+  -Wno-suggest-override)
   endif()
   if (LIBCXX_ENABLE_WERROR)
 target_add_compile_flags_if_supported(${target} PRIVATE -Werror)


Index: llvm/utils/unittest/CMakeLists.txt
===
--- llvm/utils/unittest/CMakeLists.txt
+++ llvm/utils/unittest

[Lldb-commits] [PATCH] D84126: Enable -Wsuggest-override in the LLVM build

2020-07-23 Thread Logan Smith via Phabricator via lldb-commits
logan-5 added a comment.

All the failures related to this patch are now resolved as far as I can tell. 
I'm very sorry for the trouble.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84126/new/

https://reviews.llvm.org/D84126



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D84126: Enable -Wsuggest-override in the LLVM build

2020-07-23 Thread Logan Smith via Phabricator via lldb-commits
logan-5 added a comment.

In D84126#2165585 , @nemanjai wrote:

> There is a lot of instances where this warning fires in the unit tests since 
> gtest does not appear to use the `override` keyword. This in turn causes 
> failures on bootstrap builds that use `-Werror`.
>  An example: 
> http://lab.llvm.org:8011/builders/ppc64le-lld-multistage-test/builds/10717
>
> Can we either get this pulled until the failures in bootstrap are fixed or 
> quickly fix the code that causes the failures?


I've got fixes for these failures waiting on review 
(https://reviews.llvm.org/D84244). Perhaps I'll go ahead and commit them now, 
then revert them and fix it differently if the reviewers request it.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84126/new/

https://reviews.llvm.org/D84126



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D84126: Enable -Wsuggest-override in the LLVM build

2020-07-23 Thread Logan Smith via Phabricator via lldb-commits
logan-5 added a comment.

In D84126#2166952 , @erichkeane wrote:

> I'd suggest disabling this unless the GCC version is >9.1.


I've got a patch addressing exactly this issue here, hoping to get it landed 
soon: https://reviews.llvm.org/D84292

Thanks again everyone for your patience. After this experience, I can promise 
next time I do anything like this, it'll go much more smoothly.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84126/new/

https://reviews.llvm.org/D84126



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D84126: Enable -Wsuggest-override in the LLVM build

2020-07-24 Thread Logan Smith via Phabricator via lldb-commits
logan-5 added a comment.

In D84126#2171469 , @labath wrote:

> Instead of adding -Wno-suggest-override to every user it might be cleaner to 
> add the flag to the INTERFACE_COMPILE_OPTIONS property of the relevant 
> targets (gtest, gmock, and gbenchmark ?). That way, anything which links 
> against these will inherit it automatically.


Thanks, that's a good idea -- I'll look into that as a follow-up patch.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84126/new/

https://reviews.llvm.org/D84126



___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [PATCH] D83847: [lldb][NFC] Add 'override' where missing in source/ and tools/

2020-07-14 Thread Logan Smith via Phabricator via lldb-commits
logan-5 created this revision.
logan-5 added a reviewer: clayborg.
logan-5 added a project: LLDB.
Herald added a subscriber: lldb-commits.

These were found by Clang's new `-Wsuggest-override`.

This patch doesn't touch any code in unittests/, since much of it intentionally 
doesn't use `override` to avoid massive warning spam from 
`-Winconsistent-missing-override` due to the use of `MOCK_***` macros.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D83847

Files:
  lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.h
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.h
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.h
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.h
  lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.h
  lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.h
  lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.h
  lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h
  lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h
  lldb/source/Symbol/FuncUnwinders.cpp
  lldb/tools/debugserver/source/MacOSX/i386/DNBArchImplI386.h
  lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h

Index: lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h
===
--- lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h
+++ lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h
@@ -30,39 +30,39 @@
 
   static void Initialize();
 
-  virtual bool GetRegisterValue(uint32_t set, uint32_t reg,
-DNBRegisterValue *value);
-  virtual bool SetRegisterValue(uint32_t set, uint32_t reg,
-const DNBRegisterValue *value);
-  virtual nub_size_t GetRegisterContext(void *buf, nub_size_t buf_len);
-  virtual nub_size_t SetRegisterContext(const void *buf, nub_size_t buf_len);
-  virtual uint32_t SaveRegisterState();
-  virtual bool RestoreRegisterState(uint32_t save_id);
-
-  virtual kern_return_t GetRegisterState(int set, bool force);
-  virtual kern_return_t SetRegisterState(int set);
-  virtual bool RegisterSetStateIsValid(int set) const;
-
-  virtual uint64_t GetPC(uint64_t failValue); // Get program counter
-  virtual kern_return_t SetPC(uint64_t value);
-  virtual uint64_t GetSP(uint64_t failValue); // Get stack pointer
-  virtual void ThreadWillResume();
-  virtual bool ThreadDidStop();
-  virtual bool NotifyException(MachException::Data &exc);
-
-  virtual uint32_t NumSupportedHardwareBreakpoints();
-  virtual uint32_t NumSupportedHardwareWatchpoints();
-
-  virtual uint32_t EnableHardwareBreakpoint(nub_addr_t addr, nub_size_t size,
-bool also_set_on_task);
-  virtual bool DisableHardwareBreakpoint(uint32_t hw_break_index,
- bool also_set_on_task);
-  virtual uint32_t EnableHardwareWatchpoint(nub_addr_t addr, nub_size_t size,
-bool read, bool write,
-bool also_set_on_task);
-  virtual bool DisableHardwareWatchpoint(uint32_t hw_break_index,
- bool also_set_on_task);
-  virtual uint32_t GetHardwareWatchpointHit(nub_addr_t &addr);
+  bool GetRegisterValue(uint32_t set, uint32_t reg,
+DNBRegisterValue *value) override;
+  bool SetRegisterValue(uint32_t set, uint32_t reg,
+const DNBRegisterValue *value) override;
+  nub_size_t GetRegisterContext(void *buf, nub_size_t buf_len) override;
+  nub_size_t SetRegisterContext(const void *buf, nub_size_t buf_len) override;
+  uint32_t SaveRegisterState() override;
+  bool RestoreRegisterState(uint32_t save_id) override;
+
+  kern_return_t GetRegisterState(int set, bool force) override;
+  kern_return_t SetRegisterState(int set) override;
+  bool RegisterSetStateIsValid(int set) const override;
+
+  uint64_t GetPC(uint64_t failValue) override; // Get program counter
+  kern_return_t SetPC(uint64_t value) override;
+  uint64_t GetSP(uint64_t failValue) override; // Get stack pointer
+  void ThreadWillResume() override;
+  bool ThreadDidStop() override;
+  bool NotifyException(MachException::Data &exc) override;
+
+  uint32_t NumSupportedHardwareBreakpoints() override;
+  uint32_t NumSupportedHardwareWatchpoints() override;
+
+  uint32_t EnableHardwareBreakpoint(nub_addr_t addr, nub_size_t size,
+bool also_set_on_task) override;
+  bool DisableHardwareBreakpoint(uint32_t hw_break_index,
+ bool also_set_on_task) override;
+  uint32_t EnableHardwareWatchpoint(nub_addr_t addr, nub_size_t size,
+bool read, bool write,
+bool also_set_on_task) override;

[Lldb-commits] [PATCH] D83847: [lldb][NFC] Add 'override' where missing in source/ and tools/

2020-07-15 Thread Logan Smith via Phabricator via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rG44b43a52dc17: [lldb][NFC] Add 'override' where 
missing in source/ and tools/ (authored by logan-5).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83847/new/

https://reviews.llvm.org/D83847

Files:
  lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm.h
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_arm64.h
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_i386.h
  lldb/source/Plugins/Process/MacOSX-Kernel/RegisterContextKDP_x86_64.h
  lldb/source/Plugins/Process/MacOSX-Kernel/ThreadKDP.h
  lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.h
  lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.h
  lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.h
  lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h
  lldb/source/Symbol/FuncUnwinders.cpp
  lldb/tools/debugserver/source/MacOSX/i386/DNBArchImplI386.h
  lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h

Index: lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h
===
--- lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h
+++ lldb/tools/debugserver/source/MacOSX/x86_64/DNBArchImplX86_64.h
@@ -30,39 +30,39 @@
 
   static void Initialize();
 
-  virtual bool GetRegisterValue(uint32_t set, uint32_t reg,
-DNBRegisterValue *value);
-  virtual bool SetRegisterValue(uint32_t set, uint32_t reg,
-const DNBRegisterValue *value);
-  virtual nub_size_t GetRegisterContext(void *buf, nub_size_t buf_len);
-  virtual nub_size_t SetRegisterContext(const void *buf, nub_size_t buf_len);
-  virtual uint32_t SaveRegisterState();
-  virtual bool RestoreRegisterState(uint32_t save_id);
-
-  virtual kern_return_t GetRegisterState(int set, bool force);
-  virtual kern_return_t SetRegisterState(int set);
-  virtual bool RegisterSetStateIsValid(int set) const;
-
-  virtual uint64_t GetPC(uint64_t failValue); // Get program counter
-  virtual kern_return_t SetPC(uint64_t value);
-  virtual uint64_t GetSP(uint64_t failValue); // Get stack pointer
-  virtual void ThreadWillResume();
-  virtual bool ThreadDidStop();
-  virtual bool NotifyException(MachException::Data &exc);
-
-  virtual uint32_t NumSupportedHardwareBreakpoints();
-  virtual uint32_t NumSupportedHardwareWatchpoints();
-
-  virtual uint32_t EnableHardwareBreakpoint(nub_addr_t addr, nub_size_t size,
-bool also_set_on_task);
-  virtual bool DisableHardwareBreakpoint(uint32_t hw_break_index,
- bool also_set_on_task);
-  virtual uint32_t EnableHardwareWatchpoint(nub_addr_t addr, nub_size_t size,
-bool read, bool write,
-bool also_set_on_task);
-  virtual bool DisableHardwareWatchpoint(uint32_t hw_break_index,
- bool also_set_on_task);
-  virtual uint32_t GetHardwareWatchpointHit(nub_addr_t &addr);
+  bool GetRegisterValue(uint32_t set, uint32_t reg,
+DNBRegisterValue *value) override;
+  bool SetRegisterValue(uint32_t set, uint32_t reg,
+const DNBRegisterValue *value) override;
+  nub_size_t GetRegisterContext(void *buf, nub_size_t buf_len) override;
+  nub_size_t SetRegisterContext(const void *buf, nub_size_t buf_len) override;
+  uint32_t SaveRegisterState() override;
+  bool RestoreRegisterState(uint32_t save_id) override;
+
+  kern_return_t GetRegisterState(int set, bool force) override;
+  kern_return_t SetRegisterState(int set) override;
+  bool RegisterSetStateIsValid(int set) const override;
+
+  uint64_t GetPC(uint64_t failValue) override; // Get program counter
+  kern_return_t SetPC(uint64_t value) override;
+  uint64_t GetSP(uint64_t failValue) override; // Get stack pointer
+  void ThreadWillResume() override;
+  bool ThreadDidStop() override;
+  bool NotifyException(MachException::Data &exc) override;
+
+  uint32_t NumSupportedHardwareBreakpoints() override;
+  uint32_t NumSupportedHardwareWatchpoints() override;
+
+  uint32_t EnableHardwareBreakpoint(nub_addr_t addr, nub_size_t size,
+bool also_set_on_task) override;
+  bool DisableHardwareBreakpoint(uint32_t hw_break_index,
+ bool also_set_on_task) override;
+  uint32_t EnableHardwareWatchpoint(nub_addr_t addr, nub_size_t size,
+bool read, bool write,
+bool also_set_on_task) override;
+  bool DisableHardwareWatchpoint(uint32_t hw_break_index,
+ bool also_set_on_task) override;
+  uint32_t GetHardw

[Lldb-commits] [PATCH] D84126: Enable -Wsuggest-override in the LLVM build

2020-07-20 Thread Logan Smith via Phabricator via lldb-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rG8b16e45f66e2: Enable -Wsuggest-override in the LLVM build 
(authored by logan-5).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84126/new/

https://reviews.llvm.org/D84126

Files:
  libcxx/CMakeLists.txt
  libcxxabi/CMakeLists.txt
  lldb/unittests/CMakeLists.txt
  llvm/cmake/modules/HandleLLVMOptions.cmake
  llvm/utils/benchmark/CMakeLists.txt
  llvm/utils/unittest/CMakeLists.txt


Index: llvm/utils/unittest/CMakeLists.txt
===
--- llvm/utils/unittest/CMakeLists.txt
+++ llvm/utils/unittest/CMakeLists.txt
@@ -43,6 +43,9 @@
 if(CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG)
   add_definitions("-Wno-covered-switch-default")
 endif()
+if(CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+  add_definitions("-Wno-suggest-override")
+endif()
 
 set(LLVM_REQUIRES_RTTI 1)
 add_definitions( -DGTEST_HAS_RTTI=0 )
Index: llvm/utils/benchmark/CMakeLists.txt
===
--- llvm/utils/benchmark/CMakeLists.txt
+++ llvm/utils/benchmark/CMakeLists.txt
@@ -156,6 +156,10 @@
 add_cxx_compiler_flag(-fno-exceptions)
   endif()
 
+  if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+add_cxx_compiler_flag(-Wno-suggest-override)
+  endif()
+
   if (HAVE_CXX_FLAG_FSTRICT_ALIASING)
 if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel") #ICC17u2: Many false 
positives for Wstrict-aliasing
   add_cxx_compiler_flag(-Wstrict-aliasing)
Index: llvm/cmake/modules/HandleLLVMOptions.cmake
===
--- llvm/cmake/modules/HandleLLVMOptions.cmake
+++ llvm/cmake/modules/HandleLLVMOptions.cmake
@@ -672,6 +672,9 @@
   # Enable -Wdelete-non-virtual-dtor if available.
   add_flag_if_supported("-Wdelete-non-virtual-dtor" 
DELETE_NON_VIRTUAL_DTOR_FLAG)
 
+  # Enable -Wsuggest-override if available.
+  add_flag_if_supported("-Wsuggest-override" SUGGEST_OVERRIDE_FLAG)
+
   # Check if -Wcomment is OK with an // comment ending with '\' if the next
   # line is also a // comment.
   set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
Index: lldb/unittests/CMakeLists.txt
===
--- lldb/unittests/CMakeLists.txt
+++ lldb/unittests/CMakeLists.txt
@@ -5,6 +5,10 @@
 include_directories(${LLDB_SOURCE_ROOT})
 include_directories(${LLDB_PROJECT_ROOT}/unittests)
 
+if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+  add_definitions("-Wno-suggest-override")
+endif()
+
 set(LLDB_GTEST_COMMON_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/gtest_common.h)
 if (MSVC)
   list(APPEND LLVM_COMPILE_FLAGS /FI ${LLDB_GTEST_COMMON_INCLUDE})
Index: libcxxabi/CMakeLists.txt
===
--- libcxxabi/CMakeLists.txt
+++ libcxxabi/CMakeLists.txt
@@ -283,6 +283,8 @@
 add_compile_flags_if_supported(-Wwrite-strings)
 add_compile_flags_if_supported(-Wundef)
 
+add_compile_flags_if_supported(-Wno-suggest-override)
+
 if (LIBCXXABI_ENABLE_WERROR)
   add_compile_flags_if_supported(-Werror)
   add_compile_flags_if_supported(-WX)
Index: libcxx/CMakeLists.txt
===
--- libcxx/CMakeLists.txt
+++ libcxx/CMakeLists.txt
@@ -578,6 +578,7 @@
 target_add_compile_flags_if_supported(${target} PRIVATE
   -Wno-user-defined-literals
   -Wno-covered-switch-default
+  -Wno-suggest-override
   -Wno-ignored-attributes # FIXME: Caused by _LIBCPP_NODEBUG_TYPE not 
being supported on older clangs
 )
 if (LIBCXX_TARGETING_CLANG_CL)
@@ -602,7 +603,8 @@
 target_add_compile_flags_if_supported(${target} PRIVATE
   -Wno-literal-suffix
   -Wno-c++14-compat
-  -Wno-noexcept-type)
+  -Wno-noexcept-type
+  -Wno-suggest-override)
   endif()
   if (LIBCXX_ENABLE_WERROR)
 target_add_compile_flags_if_supported(${target} PRIVATE -Werror)


Index: llvm/utils/unittest/CMakeLists.txt
===
--- llvm/utils/unittest/CMakeLists.txt
+++ llvm/utils/unittest/CMakeLists.txt
@@ -43,6 +43,9 @@
 if(CXX_SUPPORTS_COVERED_SWITCH_DEFAULT_FLAG)
   add_definitions("-Wno-covered-switch-default")
 endif()
+if(CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+  add_definitions("-Wno-suggest-override")
+endif()
 
 set(LLVM_REQUIRES_RTTI 1)
 add_definitions( -DGTEST_HAS_RTTI=0 )
Index: llvm/utils/benchmark/CMakeLists.txt
===
--- llvm/utils/benchmark/CMakeLists.txt
+++ llvm/utils/benchmark/CMakeLists.txt
@@ -156,6 +156,10 @@
 add_cxx_compiler_flag(-fno-exceptions)
   endif()
 
+  if (CXX_SUPPORTS_SUGGEST_OVERRIDE_FLAG)
+add_cxx_compiler_flag(-Wno-suggest-override)
+  endif()
+
   if (HAVE_CXX_FLAG_FSTRICT_ALIASING)
 if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "Intel") #ICC17u2: Many false positives for Wstrict-aliasing