From 68cf9d45e02595ff1b8d02069e8b7af9e4691e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Thu, 18 Jun 2026 13:31:36 +0200 Subject: [PATCH 1/8] gcc --- .github/workflows/CI-gcc-versions.yml | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/CI-gcc-versions.yml diff --git a/.github/workflows/CI-gcc-versions.yml b/.github/workflows/CI-gcc-versions.yml new file mode 100644 index 00000000000..a586a77aa82 --- /dev/null +++ b/.github/workflows/CI-gcc-versions.yml @@ -0,0 +1,38 @@ +# Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions +# Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners +name: CI-gcc-versions + +on: + push: + branches: + - 'main' + - 'releases/**' + - '2.*' + tags: + - '2.*' + pull_request: + +permissions: + contents: read + +jobs: + build: + + strategy: + matrix: + image: ["gcc:6.5", "gcc:7.5", "gcc:8.5", "gcc:9.5"] + fail-fast: false + + runs-on: ubuntu-22.04 + + container: + image: ${{ matrix.image }} + + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Build cppcheck + run: | + make -j$(nproc) CXXOPTS="-Werror" From a8d310fee1809db3073c4b078c9bb715b4a46669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 21 Jun 2026 09:46:15 +0200 Subject: [PATCH 2/8] use ghcr --- .github/workflows/CI-gcc-versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI-gcc-versions.yml b/.github/workflows/CI-gcc-versions.yml index a586a77aa82..fa3e9ce173e 100644 --- a/.github/workflows/CI-gcc-versions.yml +++ b/.github/workflows/CI-gcc-versions.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: - image: ["gcc:6.5", "gcc:7.5", "gcc:8.5", "gcc:9.5"] + image: ["ghcr.io/cppcheck-opensource/gcc:5.4", "ghcr.io/cppcheck-opensource/gcc:6.5", "ghcr.io/cppcheck-opensource/gcc:7.5", "ghcr.io/cppcheck-opensource/gcc:8.5", "ghcr.io/cppcheck-opensource/gcc:9.5"] fail-fast: false runs-on: ubuntu-22.04 From f3a1b2142a563ae47a7f6f2a1b6e0288dbd652ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 21 Jun 2026 10:34:41 +0200 Subject: [PATCH 3/8] docker --- .github/workflows/CI-gcc-versions.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/CI-gcc-versions.yml b/.github/workflows/CI-gcc-versions.yml index fa3e9ce173e..b5c7b9c8fb2 100644 --- a/.github/workflows/CI-gcc-versions.yml +++ b/.github/workflows/CI-gcc-versions.yml @@ -25,9 +25,6 @@ jobs: runs-on: ubuntu-22.04 - container: - image: ${{ matrix.image }} - steps: - uses: actions/checkout@v4 with: @@ -35,4 +32,4 @@ jobs: - name: Build cppcheck run: | - make -j$(nproc) CXXOPTS="-Werror" + docker run --rm -v ${{ github.workspace }}:/src -w /src ${{ matrix.image }} make -j$(nproc) CXXOPTS="-Werror" From e884b9df68d2f090d38703a51bd336eaf86c25c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 21 Jun 2026 11:49:04 +0200 Subject: [PATCH 4/8] rename --- .github/workflows/{CI-gcc-versions.yml => gcc-versions.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{CI-gcc-versions.yml => gcc-versions.yml} (100%) diff --git a/.github/workflows/CI-gcc-versions.yml b/.github/workflows/gcc-versions.yml similarity index 100% rename from .github/workflows/CI-gcc-versions.yml rename to .github/workflows/gcc-versions.yml From a5ffb5bda5accd2a3688d66df713fe3e6cd257f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 21 Jun 2026 11:49:42 +0200 Subject: [PATCH 5/8] make test --- .github/workflows/gcc-versions.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gcc-versions.yml b/.github/workflows/gcc-versions.yml index b5c7b9c8fb2..e119dbee98d 100644 --- a/.github/workflows/gcc-versions.yml +++ b/.github/workflows/gcc-versions.yml @@ -1,6 +1,6 @@ # Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions # Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners -name: CI-gcc-versions +name: gcc-versions on: push: @@ -32,4 +32,4 @@ jobs: - name: Build cppcheck run: | - docker run --rm -v ${{ github.workspace }}:/src -w /src ${{ matrix.image }} make -j$(nproc) CXXOPTS="-Werror" + docker run --rm -v ${{ github.workspace }}:/src -w /src ${{ matrix.image }} make -j$(nproc) CXXOPTS="-Werror" test From b82a16fc18680ff024f64645444e70aa87a7583e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 21 Jun 2026 12:05:16 +0200 Subject: [PATCH 6/8] fix --- test/testpath.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/testpath.cpp b/test/testpath.cpp index 69ee91fa391..0ebe343685f 100644 --- a/test/testpath.cpp +++ b/test/testpath.cpp @@ -516,7 +516,8 @@ class TestPath : public TestFixture { ASSERT_EQUALS(expected, Path::getAbsoluteFilePath(Path::join(cwd, "testabspath.txt"))); std::string cwd_up = Path::getPathFromFilename(cwd); - cwd_up.pop_back(); // remove trailing slash + if (cwd_up != "/") + cwd_up.pop_back(); // remove trailing slash ASSERT_EQUALS(cwd_up, Path::getAbsoluteFilePath(Path::join(cwd, ".."))); ASSERT_EQUALS(cwd_up, Path::getAbsoluteFilePath(Path::join(cwd, "../"))); ASSERT_EQUALS(cwd_up, Path::getAbsoluteFilePath(Path::join(cwd, "..\\"))); From b6c1336ede29f41d137bae7ca136f326f56cda66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 21 Jun 2026 13:11:25 +0200 Subject: [PATCH 7/8] comment [skip ci] --- .github/workflows/gcc-versions.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gcc-versions.yml b/.github/workflows/gcc-versions.yml index e119dbee98d..44bad02a4ee 100644 --- a/.github/workflows/gcc-versions.yml +++ b/.github/workflows/gcc-versions.yml @@ -1,5 +1,5 @@ -# Syntax reference https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions -# Environment reference https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners +# the gcc images we use here are copied from the official gcc images on docker hub + name: gcc-versions on: From 67d12302eb3240677f8243e3e01ccef25c3aec8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Sun, 21 Jun 2026 13:13:40 +0200 Subject: [PATCH 8/8] comment [skip ci] --- .github/workflows/gcc-versions.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/gcc-versions.yml b/.github/workflows/gcc-versions.yml index 44bad02a4ee..c1624f4f9b5 100644 --- a/.github/workflows/gcc-versions.yml +++ b/.github/workflows/gcc-versions.yml @@ -1,3 +1,4 @@ +# the purpose of this github action is to test that cppcheck source code can be compiled using old gcc versions. # the gcc images we use here are copied from the official gcc images on docker hub name: gcc-versions