Add additional tests for C++17 and elevated warnings

pull/200/head
Jeffrey Walton 2016-06-15 19:35:28 -04:00
parent 2cc5084d7a
commit 2ad2086b6b
1 changed files with 57 additions and 0 deletions

View File

@ -3008,6 +3008,63 @@ if [ "$HAVE_CXX14" -ne "0" ] && [ "$SUN_COMPILER" -eq "0" ]; then
fi
fi
############################################
# Build with elevated warnings
if [ "$HAVE_CXX17" -ne "0" ] && [ "$SUN_COMPILER" -eq "0" ]; then
############################################
# C++17 debug build
echo
echo "************************************" | tee -a "$WARN_RESULTS"
echo "Testing: debug, c++17, elevated warnings" | tee -a "$WARN_RESULTS"
echo
unset CXXFLAGS
"$MAKE" clean > /dev/null 2>&1
rm -f adhoc.cpp > /dev/null 2>&1
if [ "$CXX" == "g++" ]; then
CXXFLAGS="-DDEBUG -g2 -O2 -std=c++17 -DCRYPTOPP_NO_BACKWARDS_COMPATIBILITY_562 -Wall -Wextra -Wno-unknown-pragmas -Wstrict-aliasing=3 -Wstrict-overflow -Waggressive-loop-optimizations -Wcast-align -Wwrite-strings -Wformat=2 -Wformat-security -Wtrampolines "
if [ "$GCC_51_OR_ABOVE" -ne "0" ]; then
CXXFLAGS+="-Wabi -Wodr"
fi
else
CXXFLAGS="-DDEBUG -g2 -O2 -std=c++17 -DCRYPTOPP_NO_BACKWARDS_COMPATIBILITY_562 -Wall -Wextra -Wno-unknown-pragmas -Wstrict-overflow -Wcast-align -Wwrite-strings -Wformat=2 -Wformat-security "
fi
export CXXFLAGS
"$MAKE" "${MAKEARGS[@]}" CXX="$CXX" static dynamic cryptest.exe 2>&1 | tee -a "$WARN_RESULTS"
if [ "${PIPESTATUS[0]}" -ne "0" ]; then
echo "ERROR: failed to make cryptest.exe" | tee -a "$WARN_RESULTS"
fi
############################################
# C++17 release build
echo
echo "************************************" | tee -a "$WARN_RESULTS"
echo "Testing: release, c++17, elevated warnings" | tee -a "$WARN_RESULTS"
echo
unset CXXFLAGS
"$MAKE" clean > /dev/null 2>&1
rm -f adhoc.cpp > /dev/null 2>&1
if [ "$CXX" == "g++" ]; then
CXXFLAGS="-DNDEBUG -g2 -O2 -std=c++17 -DCRYPTOPP_NO_BACKWARDS_COMPATIBILITY_562 -Wall -Wextra -Wno-unknown-pragmas -Wstrict-aliasing=3 -Wstrict-overflow -Waggressive-loop-optimizations -Wcast-align -Wwrite-strings -Wformat=2 -Wformat-security -Wtrampolines "
if [ "$GCC_51_OR_ABOVE" -ne "0" ]; then
CXXFLAGS+="-Wabi -Wodr"
fi
else
CXXFLAGS="-DNDEBUG -g2 -O2 -std=c++17 -DCRYPTOPP_NO_BACKWARDS_COMPATIBILITY_562 -Wall -Wextra -Wno-unknown-pragmas -Wstrict-overflow -Wcast-align -Wwrite-strings -Wformat=2 -Wformat-security "
fi
export CXXFLAGS
"$MAKE" "${MAKEARGS[@]}" CXX="$CXX" static dynamic cryptest.exe 2>&1 | tee -a "$WARN_RESULTS"
if [ "$?" -ne "0" ]; then
echo "ERROR: failed to make cryptest.exe" | tee -a "$WARN_RESULTS"
fi
fi
############################################
# If using GCC (likely Linux), then perform a quick check with Clang.
# This check was added after testing on Ubuntu 14.04 with Clang 3.4.