C. Compiler-flags cheat sheet
# Everyday development
clang -std=c17 -Wall -Wextra -Wpedantic -Werror -g -O0 \
-fsanitize=address,undefined -o app app.c
# Thread-safety checking
clang -std=c17 -g -fsanitize=thread -o app app.c
# Fuzzing
clang -std=c17 -g -fsanitize=fuzzer,address -o fuzz_target fuzz.c
# Release / hardened build
clang -std=c17 -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-strong \
-fPIE -pie -Wl,-z,relro,-z,now -o app app.c
# Static analysis
clang-tidy app.c -- -std=c17
scan-build clang -std=c17 -c app.c
cppcheck --enable=all --std=c17 app.c