diff options
Diffstat (limited to 'user/rttr/gcc9.patch')
-rw-r--r-- | user/rttr/gcc9.patch | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/user/rttr/gcc9.patch b/user/rttr/gcc9.patch new file mode 100644 index 000000000..4e438859e --- /dev/null +++ b/user/rttr/gcc9.patch @@ -0,0 +1,103 @@ +From 7edbd580cfad509a3253c733e70144e36f02ecd4 Mon Sep 17 00:00:00 2001 +From: Axel Menzel <info@axelmenzel.de> +Date: Sun, 8 Aug 2021 12:27:15 +0200 +Subject: [PATCH] add github actions workflow & disable gcc9 warnings + +Additional: disable initializer list warning +--- + .github/workflows/linux.yml | 23 +++++++++++++++++++ + src/rttr/detail/base/core_prerequisites.h | 15 ++++++++++++ + src/rttr/detail/variant/variant_data_policy.h | 3 ++- + 3 files changed, 40 insertions(+), 1 deletion(-) + create mode 100644 .github/workflows/linux.yml + +diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml +new file mode 100644 +index 00000000..c232943e +--- /dev/null ++++ b/.github/workflows/linux.yml +@@ -0,0 +1,23 @@ ++name: Linux ++ ++on: [push] ++env: ++ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) ++ BUILD_TYPE: Release ++ ++jobs: ++ build: ++ runs-on: ubuntu-latest ++ ++ steps: ++ - uses: actions/checkout@v2 ++ - uses: seanmiddleditch/gha-setup-ninja@master ++ ++ - name: Configure CMake ++ run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DBUILD_EXAMPLES=OFF -G Ninja ++ ++ - name: Build ++ run: cmake --build ${{github.workspace}}/build ++ ++ - name: Test ++ run: cmake --build ${{github.workspace}}/build --target run_tests +diff --git a/src/rttr/detail/base/core_prerequisites.h b/src/rttr/detail/base/core_prerequisites.h +index 6aa29d77..601ddeb9 100644 +--- a/src/rttr/detail/base/core_prerequisites.h ++++ b/src/rttr/detail/base/core_prerequisites.h +@@ -278,6 +278,15 @@ namespace rttr + # define RTTR_END_DISABLE_OVERRIDE_WARNING + #endif + ++#if RTTR_COMP_VER >= 900 ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING _Pragma ("GCC diagnostic push") \ ++ _Pragma ("GCC diagnostic ignored \"-Winit-list-lifetime\"") ++# define RTTR_END_DISABLE_INIT_LIST_WARNING _Pragma ("GCC diagnostic pop") ++# else ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING ++# define RTTR_END_DISABLE_INIT_LIST_WARNING ++#endif ++ + # define RTTR_DECLARE_PLUGIN_CTOR __attribute__((constructor)) + # define RTTR_DECLARE_PLUGIN_DTOR __attribute__((destructor)) + +@@ -313,6 +322,10 @@ namespace rttr + # define RTTR_END_DISABLE_OVERRIDE_WARNING + #endif + ++ ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING ++# define RTTR_END_DISABLE_INIT_LIST_WARNING ++ + # define RTTR_DECLARE_PLUGIN_CTOR __attribute__((__constructor__)) + # define RTTR_DECLARE_PLUGIN_DTOR __attribute__((__destructor__)) + +@@ -332,6 +345,8 @@ namespace rttr + # define RTTR_DECLARE_PLUGIN_DTOR + # define RTTR_BEGIN_DISABLE_OVERRIDE_WARNING + # define RTTR_END_DISABLE_OVERRIDE_WARNING ++# define RTTR_BEGIN_DISABLE_INIT_LIST_WARNING ++# define RTTR_END_DISABLE_INIT_LIST_WARNING + + #else + # pragma message("WARNING: unknown compiler, don't know how to disable deprecated warnings") +diff --git a/src/rttr/detail/variant/variant_data_policy.h b/src/rttr/detail/variant/variant_data_policy.h +index 39dbb2f9..8eeaafbe 100644 +--- a/src/rttr/detail/variant/variant_data_policy.h ++++ b/src/rttr/detail/variant/variant_data_policy.h +@@ -434,7 +434,7 @@ struct variant_data_policy_big : variant_data_base_policy<T, variant_data_policy + { + delete &value; + } +- ++RTTR_BEGIN_DISABLE_INIT_LIST_WARNING + static RTTR_INLINE void clone(const T& value, variant_data& dest) + { + reinterpret_cast<T*&>(dest) = new T(value); +@@ -450,6 +450,7 @@ struct variant_data_policy_big : variant_data_base_policy<T, variant_data_policy + { + reinterpret_cast<T*&>(dest) = new T(std::forward<U>(value)); + } ++RTTR_END_DISABLE_INIT_LIST_WARNING + }; + + ///////////////////////////////////////////////////////////////////////////////////////// |