Update to 2.5

- Remove the following patches, which are not needed anymore in 2.5:
  cppcheck-2.3-Fix-issue-10024-FP-nullPointerRedundantCheck-when-us.patch
  cppcheck-2.3-gcc11.patch
- Add patch: cppcheck-2.5-disable-test-testexprengine-array7.patch
- Add -DNO_UNIX_SIGNAL_HANDLING to CXXFLAGS
This commit is contained in:
Wolfgang Stöggl 2021-07-04 21:34:39 +02:00
parent 259fc737cb
commit 82d93b85ab
6 changed files with 27 additions and 99 deletions

1
.gitignore vendored
View File

@ -45,3 +45,4 @@ cppcheck-1.44.tar.bz2
/cppcheck-2.1.tar.gz
/cppcheck-2.2.tar.gz
/cppcheck-2.3.tar.gz
/cppcheck-2.5.tar.gz

View File

@ -1,64 +0,0 @@
From 5c4dc7f32978243db8ea10153b3cd84d116a1d10 Mon Sep 17 00:00:00 2001
From: Paul Fultz II <pfultz2@yahoo.com>
Date: Mon, 14 Dec 2020 04:13:47 -0600
Subject: [PATCH] Fix issue 10024: FP: nullPointerRedundantCheck when using a
goto statement (#2947)
(cherry picked from commit da1375c9a3f3a3b7eae7aece5e2ba03e59973aa0)
---
lib/reverseanalyzer.cpp | 2 ++
test/testnullpointer.cpp | 18 ++++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/lib/reverseanalyzer.cpp b/lib/reverseanalyzer.cpp
index a6a86f63e..31deda58d 100644
--- a/lib/reverseanalyzer.cpp
+++ b/lib/reverseanalyzer.cpp
@@ -124,6 +124,8 @@ struct ReverseTraversal {
}
if (Token::Match(tok, "return|break|continue"))
break;
+ if (Token::Match(tok, "%name% :"))
+ break;
// Evaluate LHS of assignment before RHS
if (Token* assignTok = assignExpr(tok)) {
Token* assignTop = assignTok;
diff --git a/test/testnullpointer.cpp b/test/testnullpointer.cpp
index 94d772911..8a3738fe9 100644
--- a/test/testnullpointer.cpp
+++ b/test/testnullpointer.cpp
@@ -106,6 +106,7 @@ private:
TEST_CASE(nullpointer63);
TEST_CASE(nullpointer64);
TEST_CASE(nullpointer65); // #9980
+ TEST_CASE(nullpointer66); // #10024
TEST_CASE(nullpointer_addressOf); // address of
TEST_CASE(nullpointerSwitch); // #2626
TEST_CASE(nullpointer_cast); // #4692
@@ -2032,6 +2033,23 @@ private:
ASSERT_EQUALS("", errout.str());
}
+ void nullpointer66() {
+ check("int f() {\n"
+ " int ret = 0;\n"
+ " int *v = nullptr;\n"
+ " if (!MyAlloc(&v)) {\n"
+ " ret = -1;\n"
+ " goto done;\n"
+ " }\n"
+ " DoSomething(*v);\n"
+ "done:\n"
+ " if (v)\n"
+ " MyFree(&v);\n"
+ " return ret;\n"
+ "}\n");
+ ASSERT_EQUALS("", errout.str());
+ }
+
void nullpointer_addressOf() { // address of
check("void f() {\n"
" struct X *x = 0;\n"
--
2.29.2

View File

@ -1,24 +0,0 @@
diff --git a/lib/programmemory.cpp b/lib/programmemory.cpp
index 753a5c846..bb9569624 100644
--- a/lib/programmemory.cpp
+++ b/lib/programmemory.cpp
@@ -5,6 +5,7 @@
#include "symboldatabase.h"
#include <algorithm>
#include <cassert>
+#include <limits>
#include <memory>
void ProgramMemory::setValue(nonneg int varid, const ValueFlow::Value &value)
diff --git a/test/testsymboldatabase.cpp b/test/testsymboldatabase.cpp
index 1d2bc8d54..399ea7593 100644
--- a/test/testsymboldatabase.cpp
+++ b/test/testsymboldatabase.cpp
@@ -31,6 +31,7 @@
#include <cstddef>
#include <cstdint>
#include <cstring>
+#include <limits>
#include <list>
#include <map>
#include <set>

View File

@ -0,0 +1,13 @@
diff --git a/test/testexprengine.cpp b/test/testexprengine.cpp
index f23671a3d..c6069b49c 100644
--- a/test/testexprengine.cpp
+++ b/test/testexprengine.cpp
@@ -92,7 +92,7 @@ private:
TEST_CASE(array4);
TEST_CASE(array5);
TEST_CASE(array6);
- TEST_CASE(array7);
+ // TEST_CASE(array7);
TEST_CASE(arrayInit1);
TEST_CASE(arrayInit2);
TEST_CASE(arrayInit3);

View File

@ -1,22 +1,20 @@
%undefine __cmake_in_source_build
Name: cppcheck
Version: 2.3
Release: 3%{?dist}
Version: 2.5
Release: 1%{?dist}
Summary: Tool for static C/C++ code analysis
License: GPLv3+
URL: http://cppcheck.wiki.sourceforge.net/
Source0: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
Source0: https://github.com/danmar/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# Fix location of translations
Patch0: cppcheck-2.2-translations.patch
# Select python3 explicitly
Patch1: cppcheck-1.88-htmlreport-python3.patch
# Fix for missing #include with gcc-11
Patch2: cppcheck-2.3-gcc11.patch
# da1375c9a3f3 ("Fix issue 10024: FP: nullPointerRedundantCheck
# when using a goto statement (#2947)")
Patch3: cppcheck-2.3-Fix-issue-10024-FP-nullPointerRedundantCheck-when-us.patch
# Disable one test, which fails under 32-bit archs i686 and armv7hl
# https://trac.cppcheck.net/ticket/10282
Patch2: cppcheck-2.5-disable-test-testexprengine-array7.patch
BuildRequires: gcc-c++
BuildRequires: pcre-devel
@ -63,8 +61,7 @@ from xml files first generated using cppcheck.
%setup -q
%patch0 -p1 -b .translations
%patch1 -p1 -b .python3
%patch2 -p1 -b .gcc11
%patch3 -p1 -b .nullptrcheck
%patch2 -p1 -b .array7
# Make sure bundled tinyxml2 is not used
rm -r externals/tinyxml2
# Generate the Qt online-help file
@ -78,6 +75,8 @@ pandoc man/manual.md -o man/manual.html -s --number-sections --toc
pandoc man/reference-cfg-format.md -o man/reference-cfg-format.html -s --number-sections --toc
# Binaries
# https://github.com/danmar/cppcheck/pull/3179#issuecomment-804365812
export CXXFLAGS="$RPM_OPT_FLAGS -DNO_UNIX_SIGNAL_HANDLING"
# Upstream doesn't support shared libraries (unversioned solib)
%cmake -DCMAKE_BUILD_TYPE=Release -DUSE_MATCHCOMPILER=yes -DUSE_Z3=yes -DHAVE_RULES=yes -DBUILD_GUI=1 -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTS=yes -DFILESDIR=%{_datadir}/Cppcheck -DUSE_BUNDLED_TINYXML2=OFF -DENABLE_OSS_FUZZ=OFF
%cmake_build
@ -119,6 +118,9 @@ cd %{_vpath_builddir}/bin
%{_bindir}/cppcheck-htmlreport
%changelog
* Sun Jul 04 2021 Wolfgang Stöggl <c72578@yahoo.de> - 2.5-1
- Update to 2.5.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

View File

@ -1 +1 @@
SHA512 (cppcheck-2.3.tar.gz) = ee15890f77c58847d4add7d555398e4bb83e3a73e942f218413b9830f05b2c975b49bf0aeb0092e0467f0cd7f26b9f05013f701dd80ee5e2aa3d2ef81945c4ed
SHA512 (cppcheck-2.5.tar.gz) = 21f78eb1beca0c4c2e37aad09caedaa5d9aa98d7947329c089f5bf15eff56cc11f5fdf540fa07fdd666af1d1543fbd3cea5286e8478efbc3e4694954236f9035