From 66ecbc55e3681201f0accbb619bfb1f1a3b7bdc1 Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 10:40:06 +0200
Subject: [PATCH 01/11] Update std.cfg
---
cfg/std.cfg | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/cfg/std.cfg b/cfg/std.cfg
index a736d1ede38..20265ccd603 100644
--- a/cfg/std.cfg
+++ b/cfg/std.cfg
@@ -5119,6 +5119,7 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun
+
false
@@ -8217,6 +8218,7 @@ initializer list (7) string& replace (const_iterator i1, const_iterator i2, init
+ >
false
@@ -8667,6 +8669,7 @@ initializer list (7) string& replace (const_iterator i1, const_iterator i2, init
+
false
@@ -8815,6 +8818,7 @@ initializer list (7) string& replace (const_iterator i1, const_iterator i2, init
+
From 5d6135fb768728e45a0d8c846ed941b6c77bf424 Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 10:40:45 +0200
Subject: [PATCH 02/11] Update std.cpp
---
test/cfg/std.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp
index 9ce1a976a68..a150e9e46c5 100644
--- a/test/cfg/std.cpp
+++ b/test/cfg/std.cpp
@@ -5022,3 +5022,9 @@ void assertWithSideEffect_system()
// cppcheck-suppress [assertWithSideEffect,checkLibraryNoReturn] // TODO: #8329
assert(std::system("abc"));
}
+
+void assertWithSideEffect_std_map_at(const std::map& m) // #12695
+{
+ // cppcheck-suppress checkLibraryNoReturn
+ assert(m.at(0));
+}
From 5f40911077112569df6f0c42dc037fb1b7b144c3 Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 10:50:58 +0200
Subject: [PATCH 03/11] Update std.cfg
---
cfg/std.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cfg/std.cfg b/cfg/std.cfg
index 20265ccd603..3b1741f81fe 100644
--- a/cfg/std.cfg
+++ b/cfg/std.cfg
@@ -8218,7 +8218,7 @@ initializer list (7) string& replace (const_iterator i1, const_iterator i2, init
- >
+
false
From ed5b889c69e5855bc9219806add0d9ecb7b65ccc Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 12:50:54 +0200
Subject: [PATCH 04/11] Update std.cfg
---
cfg/std.cfg | 2 ++
1 file changed, 2 insertions(+)
diff --git a/cfg/std.cfg b/cfg/std.cfg
index 3b1741f81fe..dc88a689872 100644
--- a/cfg/std.cfg
+++ b/cfg/std.cfg
@@ -4806,6 +4806,7 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun
+
false
@@ -5378,6 +5379,7 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun
+
false
From 3028155994618d8a8eef4fde0ee9ca6a2026d1cc Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 13:47:06 +0200
Subject: [PATCH 05/11] Update std.cfg
---
cfg/std.cfg | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/cfg/std.cfg b/cfg/std.cfg
index dc88a689872..af2294a9d1b 100644
--- a/cfg/std.cfg
+++ b/cfg/std.cfg
@@ -5120,7 +5120,7 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun
-
+
false
@@ -8132,6 +8132,7 @@ initializer list (7) string& replace (const_iterator i1, const_iterator i2, init
+
false
From 449ef7aa392c505177ba558f782a84df37da85a3 Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 16:49:28 +0200
Subject: [PATCH 06/11] Update checkassert.cpp
---
lib/checkassert.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/checkassert.cpp b/lib/checkassert.cpp
index 0202ed7454a..523963e1e18 100644
--- a/lib/checkassert.cpp
+++ b/lib/checkassert.cpp
@@ -68,6 +68,8 @@ void CheckAssert::assertWithSideEffects()
return ac.second.iteratorInfo.container > 0; // bailout, takes iterators -> assume read access
}))
continue;
+ if (tmp->str() == "get" && Token::simpleMatch(tmp->astParent(), ".") && astIsSmartPointer(tmp->astParent()->astOperand1()))
+ continue;
sideEffectInAssertError(tmp, mSettings->library.getFunctionName(tmp));
}
continue;
From 9af0cbca9659da3c56f4ca2cbb663cb3d3bcfcb6 Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 19:19:24 +0200
Subject: [PATCH 07/11] Update checkassert.cpp
---
lib/checkassert.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/checkassert.cpp b/lib/checkassert.cpp
index 523963e1e18..3ed3ae12aa7 100644
--- a/lib/checkassert.cpp
+++ b/lib/checkassert.cpp
@@ -70,6 +70,9 @@ void CheckAssert::assertWithSideEffects()
continue;
if (tmp->str() == "get" && Token::simpleMatch(tmp->astParent(), ".") && astIsSmartPointer(tmp->astParent()->astOperand1()))
continue;
+ if (f->containerYield == Library::Container::Yield::START_ITERATOR || // bailout for std::begin/end
+ f->containerYield == Library::Container::Yield::END_ITERATOR)
+ continue;
sideEffectInAssertError(tmp, mSettings->library.getFunctionName(tmp));
}
continue;
From e01aaafc9565af2e5c6a3b864c44d9188590893f Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 19:24:12 +0200
Subject: [PATCH 08/11] Update std.cpp
---
test/cfg/std.cpp | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp
index a150e9e46c5..e3e93759af5 100644
--- a/test/cfg/std.cpp
+++ b/test/cfg/std.cpp
@@ -5028,3 +5028,16 @@ void assertWithSideEffect_std_map_at(const std::map& m) // #12695
// cppcheck-suppress checkLibraryNoReturn
assert(m.at(0));
}
+
+void assertWithSideEffect_std_unique_ptr_get((std::unique_ptr& p)
+{
+ // cppcheck-suppress checkLibraryNoReturn
+ assert(p.get());
+}
+
+void assertWithSideEffect_std_begin(const std::vector& v) {
+ // cppcheck-suppress [checkLibraryNoReturn, checkLibraryFunction] // TODO
+ assert(std::is_sorted(std::begin(v), std::end(v), [](const std::string& a, const std::string& b) {
+ return a.size() < b.size();
+ }));
+}
From 481d4e2f0c016e5d61321bf3d1eca897d6fd9df9 Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 19:28:50 +0200
Subject: [PATCH 09/11] Update std.cpp
---
test/cfg/std.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp
index e3e93759af5..6482b7a650e 100644
--- a/test/cfg/std.cpp
+++ b/test/cfg/std.cpp
@@ -5029,10 +5029,10 @@ void assertWithSideEffect_std_map_at(const std::map& m) // #12695
assert(m.at(0));
}
-void assertWithSideEffect_std_unique_ptr_get((std::unique_ptr& p)
+void assertWithSideEffect_std_unique_ptr_get(std::unique_ptr& p)
{
// cppcheck-suppress checkLibraryNoReturn
- assert(p.get());
+ assert(p.get());
}
void assertWithSideEffect_std_begin(const std::vector& v) {
From 8de52741716280f6b145348a6118612a39cd2fe1 Mon Sep 17 00:00:00 2001
From: chrchr-github <78114321+chrchr-github@users.noreply.github.com>
Date: Thu, 2 May 2024 19:34:24 +0200
Subject: [PATCH 10/11] Update std.cpp
---
test/cfg/std.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/test/cfg/std.cpp b/test/cfg/std.cpp
index 6482b7a650e..b949f9db9bc 100644
--- a/test/cfg/std.cpp
+++ b/test/cfg/std.cpp
@@ -5036,8 +5036,8 @@ void assertWithSideEffect_std_unique_ptr_get(std::unique_ptr& p)
}
void assertWithSideEffect_std_begin(const std::vector& v) {
- // cppcheck-suppress [checkLibraryNoReturn, checkLibraryFunction] // TODO
+ // cppcheck-suppress checkLibraryFunction // TODO
assert(std::is_sorted(std::begin(v), std::end(v), [](const std::string& a, const std::string& b) {
return a.size() < b.size();
- }));
+ })); // cppcheck-suppress checkLibraryNoReturn
}
From 930fee1f5d6a3fdd6b32bacf2a3453ade7044dcd Mon Sep 17 00:00:00 2001
From: chrchr-github
Date: Thu, 2 May 2024 22:31:33 +0200
Subject: [PATCH 11/11]
---
cfg/gtk.cfg | 3 +++
cfg/opengl.cfg | 1 +
cfg/qt.cfg | 1 +
cfg/sqlite3.cfg | 2 ++
cfg/std.cfg | 2 ++
5 files changed, 9 insertions(+)
diff --git a/cfg/gtk.cfg b/cfg/gtk.cfg
index 1e20a335128..492cf592988 100644
--- a/cfg/gtk.cfg
+++ b/cfg/gtk.cfg
@@ -1506,6 +1506,7 @@
+
false
@@ -1679,6 +1680,7 @@
+
false
@@ -4039,6 +4041,7 @@
+
false
diff --git a/cfg/opengl.cfg b/cfg/opengl.cfg
index 72dcaddb961..ec37abf5516 100644
--- a/cfg/opengl.cfg
+++ b/cfg/opengl.cfg
@@ -211,6 +211,7 @@
+
false
diff --git a/cfg/qt.cfg b/cfg/qt.cfg
index 824c4bf2881..8d599ed5d3d 100644
--- a/cfg/qt.cfg
+++ b/cfg/qt.cfg
@@ -72,6 +72,7 @@
+
false
diff --git a/cfg/sqlite3.cfg b/cfg/sqlite3.cfg
index 0b0a439b18c..6c1053b393f 100644
--- a/cfg/sqlite3.cfg
+++ b/cfg/sqlite3.cfg
@@ -966,6 +966,7 @@
+
false
@@ -988,6 +989,7 @@
+
false
diff --git a/cfg/std.cfg b/cfg/std.cfg
index af2294a9d1b..bcea6e88b28 100644
--- a/cfg/std.cfg
+++ b/cfg/std.cfg
@@ -5623,6 +5623,7 @@ The obsolete function 'gets' is called. With 'gets' you'll get a buffer overrun
+
arg1 < 'A' || arg1 > 'Z' ? arg1 : arg1 + 32
false
@@ -8175,6 +8176,7 @@ initializer list (7) string& replace (const_iterator i1, const_iterator i2, init
+
false