Skip to content

Do not confuse defines and designated initializers as float literals … #297

Do not confuse defines and designated initializers as float literals …

Do not confuse defines and designated initializers as float literals … #297

Workflow file for this run

name: CI-unixish
on: [push, pull_request]
jobs:
build:
strategy:
matrix:
compiler: [clang++, g++]
os: [ubuntu-20.04, ubuntu-22.04, macos-11, macos-12]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install missing software on ubuntu
if: matrix.os == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install valgrind
- name: make simplecpp
run: make -j$(nproc) CXX=${{ matrix.compiler }}
- name: make test
run: make -j$(nproc) test CXX=${{ matrix.compiler }}
- name: selfcheck
run: |
make -j$(nproc) selfcheck CXX=${{ matrix.compiler }}
- name: Run valgrind
if: matrix.os == 'ubuntu-22.04'
run: |
make clean
# this valgrind version doesn't support DWARF 5 yet
make -j$(nproc) CXX=${{ matrix.compiler }} CXXFLAGS="-gdwarf-4"
valgrind --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --gen-suppressions=all --error-exitcode=42 ./testrunner
valgrind --leak-check=full --num-callers=50 --show-reachable=yes --track-origins=yes --gen-suppressions=all --error-exitcode=42 ./simplecpp simplecpp.cpp -e
- name: Run with libstdc++ debug mode
if: matrix.os == 'ubuntu-22.04' && matrix.compiler == 'g++'
run: |
make clean
make -j$(nproc) test selfcheck CXX=${{ matrix.compiler }} CXXFLAGS="-g3 -D_GLIBCXX_DEBUG"
- name: Run with libc++ debug mode
if: matrix.os == 'ubuntu-22.04' && matrix.compiler == 'clang++'
run: |
make clean
make -j$(nproc) test selfcheck CXX=${{ matrix.compiler }} CXXFLAGS="-stdlib=libc++ -g3 -D_LIBCPP_ENABLE_ASSERTIONS=1" LDFLAGS="-lc++"
- name: Run AddressSanitizer
if: matrix.os == 'ubuntu-22.04'
run: |
make clean
make -j$(nproc) test selfcheck CXX=${{ matrix.compiler }} CXXFLAGS="-O2 -g3 -fsanitize=address" LDFLAGS="-fsanitize=address"
env:
ASAN_OPTIONS: detect_stack_use_after_return=1
- name: Run UndefinedBehaviorSanitizer
if: matrix.os == 'ubuntu-22.04'
run: |
make clean
make -j$(nproc) test selfcheck CXX=${{ matrix.compiler }} CXXFLAGS="-O2 -g3 -fsanitize=undefined -fno-sanitize=signed-integer-overflow" LDFLAGS="-fsanitize=undefined -fno-sanitize=signed-integer-overflow"
# TODO: requires instrumented libc++
- name: Run MemorySanitizer
if: false && matrix.os == 'ubuntu-22.04' && matrix.compiler == 'clang++'
run: |
make clean
make -j$(nproc) test selfcheck CXX=${{ matrix.compiler }} CXXFLAGS="-O2 -g3 -stdlib=libc++ -fsanitize=memory" LDFLAGS="-lc++ -fsanitize=memory"