toxcore/other/analysis/run-gcc
iphydf 5a3a0b6453
cleanup: Add nonnull annotations to function definitions.
These help static analysis and ubsan. We should eventually have all
functions annotated like this with a cimple check to make sure every
pointer has an explicit nullability annotation. The `nullable`
annotation does nothing in GCC, but will be used by cimple to validate
that every parameter has defined nullability.
2022-02-08 17:57:47 +00:00

73 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
. other/analysis/gen-file.sh
set -e
run() {
echo "Running GCC in variant '$*'"
# TODO(iphydf): Get rid of all VLAs, then enable -fstack-protector -Wstack-protector
g++ -O3 -o /dev/null amalgamation.cc \
"${CPPFLAGS[@]}" \
"${LDFLAGS[@]}" \
"$@" \
-std=c++11 \
-fdiagnostics-color=always \
-Wall \
-Wextra \
-Werror \
-Wno-error=null-dereference \
-Wno-error=type-limits \
-Wno-aggressive-loop-optimizations \
-Wno-float-conversion \
-Wno-format-signedness \
-Wno-missing-field-initializers \
-Wno-nonnull-compare \
-Wno-padded \
-Wno-sign-compare \
-Wno-sign-conversion \
-Wno-switch-default \
-Wno-unused-parameter \
-Wstrict-aliasing=0 \
-Wstrict-overflow=1 \
\
-Wmissing-declarations \
-Wbool-compare \
-Wcast-align \
-Wcast-qual \
-Wchar-subscripts \
-Wdouble-promotion \
-Wduplicated-cond \
-Wempty-body \
-Wenum-compare \
-Wfloat-equal \
-Wformat=2 \
-Wframe-address \
-Wframe-larger-than=133168 \
-Wignored-qualifiers \
-Wignored-attributes \
-Winit-self \
-Winline \
-Wlarger-than=133120 \
-Wmaybe-uninitialized \
-Wmemset-transposed-args \
-Wmisleading-indentation \
-Wnonnull \
-Wnull-dereference \
-Wodr \
-Wredundant-decls \
-Wreturn-type \
-Wshadow \
-Wsuggest-attribute=format \
-Wundef \
-Wunsafe-loop-optimizations \
-Wunused-label \
-Wunused-local-typedefs \
-Wunused-value \
-Wunused-but-set-parameter \
-Wunused-but-set-variable \
-fopenmp
}
. other/analysis/variants.sh