Skip to content

Commit

Permalink
feat: merge branch 'add-werror'
Browse files Browse the repository at this point in the history
  • Loading branch information
ToruNiina committed Jul 5, 2024
2 parents 58ddb8f + b2ea268 commit 7ba94b3
Show file tree
Hide file tree
Showing 6 changed files with 256 additions and 240 deletions.
316 changes: 158 additions & 158 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,167 +3,167 @@ name: build
on: [push, pull_request]

jobs:
build-linux-gcc:
runs-on: Ubuntu-22.04
strategy:
matrix:
compiler: ['g++-12', 'g++-11', 'g++-10', 'g++-9']
standard: ['11', '14', '17', '20']
precompile: ['ON', 'OFF']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install
run: |
sudo apt-get update
sudo apt-get install language-pack-fr # test serializer w/ locale
sudo apt-get install ${{ matrix.compiler }}
- name: Configure
run: |
cmake -B build/ -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
- name: Build
run: |
cmake --build build/
- name: Test
run: |
ctest --output-on-failure --test-dir build/
build-linux-clang:
runs-on: Ubuntu-22.04
strategy:
matrix:
compiler: ['15', '14', '13', '12', '11']
standard: ['11', '14', '17', '20']
precompile: ['ON', 'OFF']
exclude:
- {compiler: '14', standard: '20'} # to avoid using gcc-13 libstdc++
- {compiler: '13', standard: '20'} # with older clang
- {compiler: '12', standard: '20'}
- {compiler: '11', standard: '20'}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install
run: |
sudo apt-get update
sudo apt-get install language-pack-fr # test serializer w/ locale
sudo apt-get install clang-${{ matrix.compiler }}
- name: Configure
run: |
cmake -B build/ -DCMAKE_CXX_COMPILER=clang++-${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
- name: Build
run: |
cmake --build build/
- name: Test
run: |
ctest --output-on-failure --test-dir build/
build-linux-old-gcc:
runs-on: Ubuntu-20.04
strategy:
matrix:
compiler: ['g++-8', 'g++-7']
standard: ['11', '14', '17', '20']
precompile: ['ON', 'OFF']
exclude:
- {compiler: 'g++-7', standard: '20'}
- {compiler: 'g++-8', standard: '17'}
- {compiler: 'g++-8', standard: '20'}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install
run: |
sudo apt-get update
sudo apt-get install language-pack-fr # test serializer w/ locale
sudo apt-get install ${{ matrix.compiler }}
- name: Configure
run: |
cmake -B build/ -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
- name: Build
run: |
cmake --build build/
- name: Test
run: |
ctest --output-on-failure --test-dir build/
# build-linux-gcc:
# runs-on: Ubuntu-22.04
# strategy:
# matrix:
# compiler: ['g++-12', 'g++-11', 'g++-10', 'g++-9']
# standard: ['11', '14', '17', '20']
# precompile: ['ON', 'OFF']
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install
# run: |
# sudo apt-get update
# sudo apt-get install language-pack-fr # test serializer w/ locale
# sudo apt-get install ${{ matrix.compiler }}
# - name: Configure
# run: |
# cmake -B build/ -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
# - name: Build
# run: |
# cmake --build build/
# - name: Test
# run: |
# ctest --output-on-failure --test-dir build/
# build-linux-clang:
# runs-on: Ubuntu-22.04
# strategy:
# matrix:
# compiler: ['15', '14', '13', '12', '11']
# standard: ['11', '14', '17', '20']
# precompile: ['ON', 'OFF']
# exclude:
# - {compiler: '14', standard: '20'} # to avoid using gcc-13 libstdc++
# - {compiler: '13', standard: '20'} # with older clang
# - {compiler: '12', standard: '20'}
# - {compiler: '11', standard: '20'}
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install
# run: |
# sudo apt-get update
# sudo apt-get install language-pack-fr # test serializer w/ locale
# sudo apt-get install clang-${{ matrix.compiler }}
# - name: Configure
# run: |
# cmake -B build/ -DCMAKE_CXX_COMPILER=clang++-${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
# - name: Build
# run: |
# cmake --build build/
# - name: Test
# run: |
# ctest --output-on-failure --test-dir build/
# build-linux-old-gcc:
# runs-on: Ubuntu-20.04
# strategy:
# matrix:
# compiler: ['g++-8', 'g++-7']
# standard: ['11', '14', '17', '20']
# precompile: ['ON', 'OFF']
# exclude:
# - {compiler: 'g++-7', standard: '20'}
# - {compiler: 'g++-8', standard: '17'}
# - {compiler: 'g++-8', standard: '20'}
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install
# run: |
# sudo apt-get update
# sudo apt-get install language-pack-fr # test serializer w/ locale
# sudo apt-get install ${{ matrix.compiler }}
# - name: Configure
# run: |
# cmake -B build/ -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
# - name: Build
# run: |
# cmake --build build/
# - name: Test
# run: |
# ctest --output-on-failure --test-dir build/

build-linux-old-clang:
runs-on: Ubuntu-20.04
strategy:
matrix:
compiler: ['10', '9', '8', '7', '6.0']
standard: ['11', '14', '17', '20']
precompile: ['ON', 'OFF']
exclude:
- {compiler: '6.0', standard: '20'}
- {compiler: '7', standard: '20'}
- {compiler: '8', standard: '20'}
- {compiler: '9', standard: '20'}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install
run: |
sudo apt-get update
sudo apt-get install language-pack-fr # test serializer w/ locale
sudo apt-get install clang-${{ matrix.compiler }}
- name: Configure
run: |
cmake -B build/ -DCMAKE_CXX_COMPILER=clang++-${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
- name: Build
run: |
cmake --build build/
- name: Test
run: |
ctest --output-on-failure --test-dir build/
# build-linux-old-clang:
# runs-on: Ubuntu-20.04
# strategy:
# matrix:
# compiler: ['10', '9', '8', '7', '6.0']
# standard: ['11', '14', '17', '20']
# precompile: ['ON', 'OFF']
# exclude:
# - {compiler: '6.0', standard: '20'}
# - {compiler: '7', standard: '20'}
# - {compiler: '8', standard: '20'}
# - {compiler: '9', standard: '20'}
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Install
# run: |
# sudo apt-get update
# sudo apt-get install language-pack-fr # test serializer w/ locale
# sudo apt-get install clang-${{ matrix.compiler }}
# - name: Configure
# run: |
# cmake -B build/ -DCMAKE_CXX_COMPILER=clang++-${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
# - name: Build
# run: |
# cmake --build build/
# - name: Test
# run: |
# ctest --output-on-failure --test-dir build/

build-osx-13:
runs-on: macos-13
strategy:
matrix:
standard: ['11', '14', '17', '20']
precompile: ['ON', 'OFF']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Configure
run: |
cmake -B build/ -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
- name: Build
run: |
cmake --build build/
- name: Test
run: |
ctest --output-on-failure --test-dir build/
# build-osx-13:
# runs-on: macos-13
# strategy:
# matrix:
# standard: ['11', '14', '17', '20']
# precompile: ['ON', 'OFF']
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Configure
# run: |
# cmake -B build/ -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
# - name: Build
# run: |
# cmake --build build/
# - name: Test
# run: |
# ctest --output-on-failure --test-dir build/

build-osx-12:
runs-on: macos-12
strategy:
matrix:
standard: ['11', '14', '17', '20']
precompile: ['ON', 'OFF']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Configure
run: |
cmake -B build/ -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
- name: Build
run: |
cmake --build build/
- name: Test
run: |
ctest --output-on-failure --test-dir build/
# build-osx-12:
# runs-on: macos-12
# strategy:
# matrix:
# standard: ['11', '14', '17', '20']
# precompile: ['ON', 'OFF']
# steps:
# - name: Checkout
# uses: actions/checkout@v4
# with:
# submodules: true
# - name: Configure
# run: |
# cmake -B build/ -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }}
# - name: Build
# run: |
# cmake --build build/
# - name: Test
# run: |
# ctest --output-on-failure --test-dir build/

build-windows-msvc:
runs-on: windows-2022
Expand Down
16 changes: 15 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,22 @@ if(${TOML11_TEST_WITH_ASAN} AND ${TOML11_TEST_WITH_UBSAN})
message(FATAL_ERROR "trying to build tests with BOTH asan and ubsan")
endif()

include(GNUInstallDirs)
include(CheckCXXCompilerFlag)
check_cxx_compiler_flag("-Wall" TOML11_COMPILER_SUPPORTS_WALL)
check_cxx_compiler_flag("-Wextra" TOML11_COMPILER_SUPPORTS_WEXTRA)
check_cxx_compiler_flag("-Wpedantic" TOML11_COMPILER_SUPPORTS_WPEDANTIC)
check_cxx_compiler_flag("-Werror" TOML11_COMPILER_SUPPORTS_WERROR)
check_cxx_compiler_flag("-Wsign-conversion" TOML11_COMPILER_SUPPORTS_WSIGN_CONVERSION)
check_cxx_compiler_flag("-Wconversion" TOML11_COMPILER_SUPPORTS_WCONVERSION)
check_cxx_compiler_flag("-Wduplicated-cond" TOML11_COMPILER_SUPPORTS_WDUPLICATED_COND)
check_cxx_compiler_flag("-Wduplicated-branches" TOML11_COMPILER_SUPPORTS_WDUPLICATED_BRANCHES)
check_cxx_compiler_flag("-Wlogical-op" TOML11_COMPILER_SUPPORTS_WLOGICAL_OP)
check_cxx_compiler_flag("-Wdouble-promotion" TOML11_COMPILER_SUPPORTS_WDOUBLE_PROMOTION)
check_cxx_compiler_flag("-Wrange-loop-analysis" TOML11_COMPILER_SUPPORTS_WRANGE_LOOP_ANALYSIS)
check_cxx_compiler_flag("-Wundef" TOML11_COMPILER_SUPPORTS_WUNDEF)
check_cxx_compiler_flag("-Wshadow" TOML11_COMPILER_SUPPORTS_WSHADOW)

include(GNUInstallDirs)
set(TOML11_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/toml11)
set(TOML11_INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR})
set(TOML11_CONFIG_DIR ${CMAKE_CURRENT_BINARY_DIR}/cmake)
Expand Down
2 changes: 1 addition & 1 deletion include/toml11/compat.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -498,7 +498,7 @@ struct source_location
static source_location current() { return source_location{}; }
};

inline std::string to_string(const source_location& loc)
inline std::string to_string(const source_location&)
{
return std::string("");
}
Expand Down
23 changes: 12 additions & 11 deletions include/toml11/value.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1775,19 +1775,20 @@ class basic_value
{
switch(this->type_)
{
case value_t::boolean : { boolean_ .~boolean_storage (); return; }
case value_t::integer : { integer_ .~integer_storage (); return; }
case value_t::floating : { floating_ .~floating_storage (); return; }
case value_t::string : { string_ .~string_storage (); return; }
case value_t::offset_datetime : { offset_datetime_.~offset_datetime_storage (); return; }
case value_t::local_datetime : { local_datetime_ .~local_datetime_storage (); return; }
case value_t::local_date : { local_date_ .~local_date_storage (); return; }
case value_t::local_time : { local_time_ .~local_time_storage (); return; }
case value_t::array : { array_ .~array_storage (); return; }
case value_t::table : { table_ .~table_storage (); return; }
default : { return; }
case value_t::boolean : { boolean_ .~boolean_storage (); break; }
case value_t::integer : { integer_ .~integer_storage (); break; }
case value_t::floating : { floating_ .~floating_storage (); break; }
case value_t::string : { string_ .~string_storage (); break; }
case value_t::offset_datetime : { offset_datetime_.~offset_datetime_storage (); break; }
case value_t::local_datetime : { local_datetime_ .~local_datetime_storage (); break; }
case value_t::local_date : { local_date_ .~local_date_storage (); break; }
case value_t::local_time : { local_time_ .~local_time_storage (); break; }
case value_t::array : { array_ .~array_storage (); break; }
case value_t::table : { table_ .~table_storage (); break; }
default : { break; }
}
this->type_ = value_t::empty;
return;
}

template<typename T, typename U>
Expand Down
Loading

0 comments on commit 7ba94b3

Please sign in to comment.