Add undefined behavior sanitizer option

This commit is contained in:
rexy712 2020-03-23 11:54:18 -07:00
parent 8e7fb0433b
commit 53e3e5bf78
5 changed files with 53 additions and 24 deletions

View File

@ -23,7 +23,7 @@ SOURCE_DIRS::=src
SOURCES::=
OBJDIR::=obj
DEPDIR::=$(OBJDIR)/dep
LIBDIRS::=
LIBDIRS::=lib
INCLUDE_DIRS::=include
CFLAGS::=-std=c18 -Wall -pedantic -Wextra
CXXFLAGS::=-std=c++17 -Wall -pedantic -Wextra
@ -32,6 +32,7 @@ LANG::=$(EXT)
MAIN_EXECUTABLE::=tester
RELEASE?=0
MEMCHK?=0
UNDEFCHK?=0
SAVEFLAGS?=1
ifneq ($(WINDOWS),1)
@ -109,14 +110,18 @@ endif
ifeq ($(RELEASE),1)
#a lot of false strict aliasing warnings from gcc 9
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
else ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
else
#default target
COMPILER_FLAGS+=-O0 -g3 -ggdb
ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
endif
ifeq ($(UNDEFCHK),1)
LDFLAGS+=-fsanitize=undefined
COMPILER_FLAGS+=-fsanitize=undefined
endif
endif
ifeq ($(SAVEFLAGS),1)

View File

@ -35,6 +35,7 @@ POST_TARGETS::=
CLEAN_TARGETS::=
RELEASE?=0
MEMCHK?=0
UNDEFCHK?=0
SAVECFLAGS?=1
VERBOSE=0
@ -106,13 +107,18 @@ ifeq ($(RELEASE),1)
#a lot of false strict aliasing warnings from gcc 9
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
POST_TARGETS+= do_strip
else ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
else
#default target
COMPILER_FLAGS+=-O0 -g3 -ggdb
ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
endif
ifeq ($(UNDEFCHK),1)
LDFLAGS+=-fsanitize=undefined
COMPILER_FLAGS+=-fsanitize=undefined
endif
endif
ifeq ($(SAVECFLAGS),1)

View File

@ -34,6 +34,7 @@ SHARED?=1
STATIC?=0
RELEASE?=0
MEMCHK?=0
UNDEFCHK?=0
SAVEFLAGS?=1
ifneq ($(WINDOWS),1)
@ -121,13 +122,18 @@ endif
ifeq ($(RELEASE),1)
#a lot of false strict aliasing warnings from gcc 9
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
else ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
else
#default target
COMPILER_FLAGS+=-O0 -g3 -ggdb
ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
endif
ifeq ($(UNDEFCHK),1)
LDFLAGS+=-fsanitize=undefined
COMPILER_FLAGS+=-fsanitize=undefined
endif
endif
ifeq ($(SAVEFLAGS),1)

View File

@ -37,6 +37,7 @@ SHARED?=1
STATIC?=0
RELEASE?=0
MEMCHK?=0
UNDEFCHK?=0
SAVEFLAGS?=1
ifneq ($(WINDOWS),1)
@ -114,13 +115,18 @@ ifeq ($(RELEASE),1)
#a lot of false strict aliasing warnings from gcc 9
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
POST_TARGETS+= do_strip
else ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
else
#default target
COMPILER_FLAGS+=-O0 -g3 -ggdb
ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
endif
ifeq ($(UNDEFCHK),1)
LDFLAGS+=-fsanitize=undefined
COMPILER_FLAGS+=-fsanitize=undefined
endif
endif
ifeq ($(SAVEFLAGS),1)

View File

@ -35,6 +35,7 @@ POST_TARGETS::=
CLEAN_TARGETS::=
RELEASE?=0
MEMCHK?=0
UNDEFCHK?=0
SAVEFLAGS?=1
ifneq ($(WINDOWS),1)
@ -105,13 +106,18 @@ endif
ifeq ($(RELEASE),1)
#a lot of false strict aliasing warnings from gcc 9
COMPILER_FLAGS+=-O2 -Wno-strict-aliasing
else ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-O0 -g3 -ggdb -fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
else
#default target
COMPILER_FLAGS+=-O0 -g3 -ggdb
ifeq ($(MEMCHK),1)
#use asan to check memory leaks/invalid accesses
LDFLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
COMPILER_FLAGS+=-fsanitize=address -fno-omit-frame-pointer -fno-optimize-sibling-calls
endif
ifeq ($(UNDEFCHK),1)
LDFLAGS+=-fsanitize=undefined
COMPILER_FLAGS+=-fsanitize=undefined
endif
endif
ifeq ($(SAVEFLAGS),1)