Browse Source

clang-tidy: fix `bugprone-exception-escape` lints

Ben Boeckel 3 years ago
parent
commit
c8c9d7de03
1 changed files with 9 additions and 3 deletions
  1. 9 3
      Source/cmListFileCache.h

+ 9 - 3
Source/cmListFileCache.h

@@ -110,16 +110,22 @@ public:
   cm::optional<std::string> DeferId;
 
   cmListFileContext() = default;
-  cmListFileContext(cmListFileContext&& /*other*/) = default;
+  // This move constructor is marked `noexcept` yet `clang-tidy` 14 reports it
+  // as being able to throw an exception. Suppress the warning as there doesn't
+  // seem to be any way for this to happen given the member types.
+  // NOLINTNEXTLINE(bugprone-exception-escape)
+  cmListFileContext(cmListFileContext&& /*other*/) noexcept = default;
   cmListFileContext(const cmListFileContext& /*other*/) = default;
   cmListFileContext& operator=(const cmListFileContext& /*other*/) = default;
 #if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
-  cmListFileContext& operator=(cmListFileContext&& /*other*/) = default;
+  cmListFileContext& operator=(cmListFileContext&& /*other*/) noexcept =
+    default;
 #else
   // The move assignment operators for several STL classes did not become
   // noexcept until C++17, which causes some tools to warn about this move
   // assignment operator throwing an exception when it shouldn't.
-  cmListFileContext& operator=(cmListFileContext&& /*other*/) = delete;
+  cmListFileContext& operator=(cmListFileContext&& /*other*/) noexcept =
+    delete;
 #endif
 
   cmListFileContext(std::string name, std::string filePath, long line)