23 lines
652 B
Bash
Executable file
23 lines
652 B
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
#
|
|
# Check for assertions with obvious side effects.
|
|
|
|
export LC_ALL=C
|
|
|
|
EXIT_CODE=0
|
|
|
|
# PRE31-C (SEI CERT C Coding Standard):
|
|
# "Assertions should not contain assignments, increment, or decrement operators."
|
|
OUTPUT=$(git grep -E '[^_]assert\(.*(\+\+|\-\-|[^=!<>]=[^=!<>]).*\);' -- "*.cpp" "*.h")
|
|
if [[ ${OUTPUT} != "" ]]; then
|
|
echo "Assertions should not have side effects:"
|
|
echo
|
|
echo "${OUTPUT}"
|
|
EXIT_CODE=1
|
|
fi
|
|
|
|
exit ${EXIT_CODE}
|