clang-tidy: fix bugprone-exception-escape lints

This commit is contained in:
Ben Boeckel
2022-05-17 14:22:01 -04:00
committed by Brad King
parent aa3649eb04
commit c8c9d7de03

View File

@@ -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)