etl/.github/workflows/gcc-c++23.yml
John Wellbelove 5287fe4b3b
Allow etl::vector to store pointers to functions and member functions (#1492)
* Refactored vector.h

Deleted ivectorpointer.h

* Minor changes

* Fixed code incompatible with C++03

* Clang-format changes

* Removed redundant double-qualified name

* Fixed is_is_object_pointer_v to is_object_pointer_v

* Added new test files to meson.build

* Added overflow checks to vector_ext copy and move constructors and assignments

Added assert throw tests.

* Added diagnostic pushes to eliminate GCC warning false positives

* Changed the GCC C++23 Github action to use GCC14

* Applied clang-format

* Added guard to pop_heap

* Added guard to adjust_heap

* Attempt to fix GCC diagnostic

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* clang-format

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Missing newline at end of file

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Attempt to fix GCC diagnostic

Re-enable ranges algorithm tests

* Attempt to fix GCC diagnostic

* clang-format

* Changed gcc --version to gcc-14 --version

---------

Co-authored-by: John Wellbelove <john.wellbelove@etlcpp.com>
Co-authored-by: Roland Reichwein <Roland.Reichwein@bmw.de>
2026-07-08 09:06:50 +01:00

98 lines
2.9 KiB
YAML

name: gcc-c++23
on:
push:
branches: [ master, development, pull-request/* ]
pull_request:
branches: [ master, development, pull-request/* ]
types: [opened, synchronize, reopened]
jobs:
build-gcc-cpp23-linux-stl:
name: GCC C++23 Linux - STL
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04]
steps:
- uses: actions/checkout@v4
- name: Build
run: |
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
export CC=gcc-14
export CXX=g++-14
cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./
gcc-14 --version
make -j "$(getconf _NPROCESSORS_ONLN)"
- name: Run tests
run: ./test/etl_tests -v
build-gcc-cpp23-linux-no-stl:
name: GCC C++23 Linux - No STL
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04]
steps:
- uses: actions/checkout@v4
- name: Build
run: |
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
export CC=gcc-14
export CXX=g++-14
cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./
gcc-14 --version
make -j "$(getconf _NPROCESSORS_ONLN)"
- name: Run tests
run: ./test/etl_tests -v
build-gcc-cpp23-linux-stl-force-cpp03:
name: GCC C++23 Linux - STL - Force C++03
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04]
steps:
- uses: actions/checkout@v4
- name: Build
run: |
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
export CC=gcc-14
export CXX=g++-14
cmake -DBUILD_TESTS=ON -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./
gcc-14 --version
make -j "$(getconf _NPROCESSORS_ONLN)"
- name: Run tests
run: ./test/etl_tests -v
build-gcc-cpp23-linux-no-stl-force-cpp03:
name: GCC C++23 Linux - No STL - Force C++03
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04]
steps:
- uses: actions/checkout@v4
- name: Build
run: |
export ASAN_OPTIONS=alloc_dealloc_mismatch=0,detect_leaks=0
export CC=gcc-14
export CXX=g++-14
cmake -DBUILD_TESTS=ON -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_CXX_STANDARD=23 -DETL_OPTIMISATION=-O3 ./
gcc-14 --version
make -j "$(getconf _NPROCESSORS_ONLN)"
- name: Run tests
run: ./test/etl_tests -v