6 CFLAGS
= -std
=c99
-O2
-Wall
-Wextra
-Werror \
7 -Walloca
-Wcast-qual
-Wconversion
-Wformat
=2 -Wformat-security
-Wvla \
8 -Wnull-dereference
-Wstack-protector
-Wstrict-overflow
=3 \
9 -Warray-bounds
-Warray-bounds-pointer-arithmetic
-Wassign-enum \
10 -Wbad-function-cast
-Wconditional-uninitialized
-Wconversion \
11 -Wfloat-equal
-Wformat-type-confusion
-Widiomatic-parentheses \
12 -Wimplicit-fallthrough
-Wloop-analysis
-Wpointer-arith \
13 -Wshift-sign-overflow
-Wshorten-64-to-32
-Wswitch-enum \
14 -Wtautological-constant-in-range-compare
-Wunreachable-code-aggressive \
16 -fstack-protector-strong
-fsanitize
=safe-stack
-fPIE \
17 -fstack-clash-protection
18 # CFLAGS = -fsanitize=address -fsanitize=leak -fno-omit-frame-pointer
19 # CFLAGS += -fsanitize=undefined -fsanitize=bounds-strict
20 # CFLAGS += -fsanitize=float-divide-by-zero -fsanitize=float-cast-overflow
21 # CFLAGS += -fsanitize=integer -fsanitize-no-recover
23 LDFLAGS
= -fsanitize
=safe-stack
-Wl
,-z
,relro
-Wl
,-z
,now
-Wl
,-z
,noexecstack \
34 $(CC
) $(LDFLAGS
) -o
$@
$(OBJS
) $(LDLIBS
)