Skip to content

Commit eb1e7e6

Browse files
authored
Merge pull request #897 from redboltz/re_enable_werror
Propagated CXXFLAGS.
2 parents 71687c4 + 544978b commit eb1e7e6

File tree

6 files changed

+51
-5
lines changed

6 files changed

+51
-5
lines changed

.github/workflows/gha.yml

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,26 +41,30 @@ jobs:
4141
export ARCH="64"
4242
export CHAR_SIGN="unsigned"
4343
export API_VERSION="1"
44+
export SANITIZE="-fsanitize=undefined"
4445
fi
4546
if [ ${{ matrix.pattern }} == 1 ]; then
4647
ACTION="ci/build_cmake.sh"
4748
export CXX17="ON"
4849
export ARCH="64"
4950
export CHAR_SIGN="signed"
5051
export API_VERSION="3"
52+
export SANITIZE="-fsanitize=undefined"
5153
fi
5254
if [ ${{ matrix.pattern }} == 2 ]; then
5355
ACTION="ci/build_cmake.sh"
5456
export CXX17="ON"
5557
export ARCH="64"
5658
export CHAR_SIGN="signed"
5759
export API_VERSION="2"
60+
export SANITIZE="-fsanitize=undefined"
5861
fi
5962
if [ ${{ matrix.pattern }} == 3 ]; then
6063
ACTION="ci/build_cmake.sh"
6164
export ARCH="64"
6265
export CHAR_SIGN="unsigned"
6366
export API_VERSION="2"
67+
export SANITIZE="-fsanitize=undefined"
6468
fi
6569
6670
# install gtest
@@ -78,7 +82,7 @@ jobs:
7882
cd ..
7983
8084
# build and test
81-
CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/clang/lib${ARCH}/cmake" CXXFLAGS="-Werror -g" ${ACTION}
85+
CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/clang/lib${ARCH}/cmake" CXXFLAGS="-Werror -g ${SANITIZE}" ${ACTION}
8286
cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2
8387
8488
linux:
@@ -114,13 +118,15 @@ jobs:
114118
export ARCH="64"
115119
export CHAR_SIGN="unsigned"
116120
export API_VERSION="2"
121+
export SANITIZE="-fsanitize=undefined"
117122
fi
118123
if [ ${{ matrix.pattern }} == 1 ]; then
119124
export CXX=clang++
120125
ACTION="ci/build_cmake.sh"
121126
export ARCH="32"
122127
export CHAR_SIGN="signed"
123128
export API_VERSION="2"
129+
export SANITIZE="-fsanitize=undefined"
124130
fi
125131
if [ ${{ matrix.pattern }} == 2 ]; then
126132
export CXX=clang++
@@ -130,6 +136,7 @@ jobs:
130136
export CHAR_SIGN="signed"
131137
export API_VERSION="3"
132138
export X3_PARSE="ON"
139+
export SANITIZE="-fsanitize=undefined"
133140
fi
134141
if [ ${{ matrix.pattern }} == 3 ]; then
135142
export CXX=clang++
@@ -146,6 +153,7 @@ jobs:
146153
export ARCH="64"
147154
export CHAR_SIGN="signed"
148155
export API_VERSION="2"
156+
export SANITIZE="-fsanitize=undefined"
149157
fi
150158
if [ ${{ matrix.pattern }} == 5 ]; then
151159
export CXX=g++
@@ -155,27 +163,31 @@ jobs:
155163
export CHAR_SIGN="unsigned"
156164
export API_VERSION="3"
157165
export X3_PARSE="ON"
166+
export SANITIZE="-fsanitize=undefined"
158167
fi
159168
if [ ${{ matrix.pattern }} == 6 ]; then
160169
export CXX=g++
161170
ACTION="ci/build_cmake.sh"
162171
export ARCH="64"
163172
export CHAR_SIGN="unsigned"
164173
export API_VERSION="2"
174+
export SANITIZE="-fsanitize=undefined"
165175
fi
166176
if [ ${{ matrix.pattern }} == 7 ]; then
167177
export CXX=g++
168178
ACTION="ci/build_cmake.sh"
169179
export ARCH="32"
170180
export CHAR_SIGN="signed"
171181
export API_VERSION="1"
182+
export SANITIZE="-fsanitize=undefined"
172183
fi
173184
if [ ${{ matrix.pattern }} == 8 ]; then
174185
export CXX=g++
175186
ACTION="ci/build_cmake.sh"
176187
export ARCH="32"
177188
export CHAR_SIGN="signed"
178189
export API_VERSION="2"
190+
export SANITIZE="-fsanitize=undefined"
179191
fi
180192
if [ ${{ matrix.pattern }} == 9 ]; then
181193
export CXX=clang++
@@ -184,6 +196,7 @@ jobs:
184196
export SAN="UBSAN"
185197
export MSGPACK_FUZZ_REGRESSION="ON"
186198
export CTEST_OUTPUT_ON_FAILURE=1
199+
export SANITIZE="-fsanitize=undefined"
187200
fi
188201
if [ ${{ matrix.pattern }} == 10 ]; then
189202
export CXX=clang++
@@ -192,6 +205,7 @@ jobs:
192205
export SAN="ASAN"
193206
export MSGPACK_FUZZ_REGRESSION="ON"
194207
export CTEST_OUTPUT_ON_FAILURE=1
208+
export SANITIZE="-fsanitize=undefined"
195209
fi
196210
197211
# install gtest
@@ -214,7 +228,7 @@ jobs:
214228
fi
215229
216230
# build and test
217-
CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib${ARCH}/cmake" CXXFLAGS="-Werror -g" MSGPACK_SAN="${SAN}" ${ACTION}
231+
CMAKE_CXX_COMPILER="${CXX}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib${ARCH}/cmake" CXXFLAGS="-Werror -g ${SANITIZE}" MSGPACK_SAN="${SAN}" ${ACTION}
218232
cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2
219233
windows:
220234
runs-on: windows-2016

ci/build_cmake.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ else
2626
export ARCH_FLAG="-m64"
2727
fi
2828

29-
cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_CXX17=${CXX17} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} -DCMAKE_CXX_FLAGS=${ARCH_FLAG} ${ZLIB32} -fsanitize=undefined ..
29+
cmake -DMSGPACK_CXX11=${CXX11} -DMSGPACK_CXX17=${CXX17} -DMSGPACK_32BIT=${BIT32} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DMSGPACK_DEFAULT_API_VERSION=${API_VERSION} -DMSGPACK_USE_X3_PARSE=${X3_PARSE} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS}" ${ZLIB32} ..
3030

3131
ret=$?
3232
if [ $ret -ne 0 ]

include/msgpack/v1/adaptor/boost/fusion.hpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,23 @@
2121
#include "msgpack/adaptor/cpp11/tuple.hpp"
2222
#endif // #if !defined (MSGPACK_USE_CPP03)
2323

24+
#if defined(__GNUC__)
25+
#pragma GCC diagnostic push
26+
#pragma GCC diagnostic ignored "-Wconversion"
27+
#endif // defined(__GNUC__)
28+
2429
#include <boost/fusion/support/is_sequence.hpp>
2530
#include <boost/fusion/sequence/intrinsic/size.hpp>
2631
#include <boost/fusion/algorithm/iteration/for_each.hpp>
2732
#include <boost/fusion/sequence/intrinsic/at.hpp>
2833
#include <boost/fusion/include/mpl.hpp>
34+
35+
36+
#if defined(__GNUC__)
37+
#pragma GCC diagnostic pop
38+
#endif // defined(__GNUC__)
39+
40+
2941
#include <boost/mpl/size.hpp>
3042

3143
namespace msgpack {

include/msgpack/v1/adaptor/boost/msgpack_variant.hpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,18 @@
2626
#include "msgpack/adaptor/vector.hpp"
2727
#include "msgpack/adaptor/map.hpp"
2828

29+
30+
#if defined(__GNUC__)
31+
#pragma GCC diagnostic push
32+
#pragma GCC diagnostic ignored "-Wconversion"
33+
#endif // defined(__GNUC__)
34+
2935
#include <boost/variant.hpp>
36+
37+
#if defined(__GNUC__)
38+
#pragma GCC diagnostic pop
39+
#endif // defined(__GNUC__)
40+
3041
#include <boost/operators.hpp>
3142

3243
namespace msgpack {

include/msgpack/v1/adaptor/boost/optional.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@
1414
#include "msgpack/adaptor/adaptor_base.hpp"
1515
#include "msgpack/adaptor/check_container_size.hpp"
1616

17+
#if defined(__GNUC__)
18+
#pragma GCC diagnostic push
19+
#pragma GCC diagnostic ignored "-Wconversion"
20+
#endif // defined(__GNUC__)
21+
1722
// To suppress warning on Boost.1.58.0
1823
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
1924
#pragma GCC diagnostic push
@@ -26,6 +31,10 @@
2631
#pragma GCC diagnostic pop
2732
#endif // defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) || defined(__clang__)
2833

34+
#if defined(__GNUC__)
35+
#pragma GCC diagnostic pop
36+
#endif // defined(__GNUC__)
37+
2938
namespace msgpack {
3039

3140
/// @cond

test/msgpack_cpp11.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,7 +1461,7 @@ TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_zero)
14611461
TEST(MSGPACK_TIMESPEC, timespec_pack_convert_32bit_sec)
14621462
{
14631463
std::stringstream ss;
1464-
timespec val1{ std::numeric_limits<decltype(std::declval<timespec>().tv_sec)>::is_signed ? INT32_MAX : UINT32_MAX, 0 };
1464+
timespec val1{ std::numeric_limits<decltype(std::declval<timespec>().tv_sec)>::is_signed ? time_t(INT32_MAX) : time_t(UINT32_MAX), 0 };
14651465

14661466
msgpack::pack(ss, val1);
14671467
std::string const& str = ss.str();
@@ -1477,7 +1477,7 @@ TEST(MSGPACK_TIMESPEC, timespec_pack_convert_32bit_sec)
14771477
TEST(MSGPACK_TIMESPEC, timespec_object_with_zone_32bit_sec)
14781478
{
14791479
msgpack::zone z;
1480-
timespec val1{ std::numeric_limits<decltype(std::declval<timespec>().tv_sec)>::is_signed ? INT32_MAX : UINT32_MAX, 0 };
1480+
timespec val1{ std::numeric_limits<decltype(std::declval<timespec>().tv_sec)>::is_signed ? time_t(INT32_MAX) : time_t(UINT32_MAX), 0 };
14811481
msgpack::object obj(val1, z);
14821482
timespec val2 = obj.as<timespec>();
14831483
EXPECT_EQ(val1.tv_sec, val2.tv_sec);

0 commit comments

Comments
 (0)