From b6c4d93dcd85b8e2c512abf83c25c2270cead1c8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 3 Jun 2021 14:53:54 -0400 Subject: clang-analyzer: Suppress warnings in intentional use-after-move cases --- Tests/CMakeLib/testOptional.cxx | 2 ++ Tests/CMakeLib/testString.cxx | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/Tests/CMakeLib/testOptional.cxx b/Tests/CMakeLib/testOptional.cxx index 2d7dd7c..9d4b72a 100644 --- a/Tests/CMakeLib/testOptional.cxx +++ b/Tests/CMakeLib/testOptional.cxx @@ -301,12 +301,14 @@ static bool testMoveConstruct(std::vector& expected) cm::optional o3{}; const cm::optional o4{ std::move(o3) }; +#ifndef __clang_analyzer__ /* cplusplus.Move */ expected = { { Event::VALUE_CONSTRUCT, &*o1, nullptr, 4 }, { Event::MOVE_CONSTRUCT, &*o2, &*o1, 4 }, { Event::DESTRUCT, &*o2, nullptr, 4 }, { Event::DESTRUCT, &*o1, nullptr, 4 }, }; +#endif return true; } diff --git a/Tests/CMakeLib/testString.cxx b/Tests/CMakeLib/testString.cxx index ad800cf..5a9cad1 100644 --- a/Tests/CMakeLib/testString.cxx +++ b/Tests/CMakeLib/testString.cxx @@ -326,12 +326,14 @@ static bool testConstructMove() std::cout << "testConstructMove()\n"; cm::String s1 = std::string("abc"); cm::String s2 = std::move(s1); +#ifndef __clang_analyzer__ /* cplusplus.Move */ ASSERT_TRUE(s1.data() == nullptr); ASSERT_TRUE(s1.size() == 0); ASSERT_TRUE(s2.size() == 3); ASSERT_TRUE(std::strncmp(s2.data(), "abc", 3) == 0); ASSERT_TRUE(s1.is_stable()); ASSERT_TRUE(s2.is_stable()); +#endif return true; } @@ -356,12 +358,14 @@ static bool testAssignMove() cm::String s1 = std::string("abc"); cm::String s2; s2 = std::move(s1); +#ifndef __clang_analyzer__ /* cplusplus.Move */ ASSERT_TRUE(s1.data() == nullptr); ASSERT_TRUE(s1.size() == 0); ASSERT_TRUE(s2.size() == 3); ASSERT_TRUE(std::strncmp(s2.data(), "abc", 3) == 0); ASSERT_TRUE(s1.is_stable()); ASSERT_TRUE(s2.is_stable()); +#endif return true; } -- cgit v0.12