mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
Fix -fno-delete-null-pointer-checks (#664)
Only use -fno-delete-null-pointer-checks if the supplied compiler knows the flag. Clang does not understand the flag, and does not need it.
This commit is contained in:
parent
7ccf0e0858
commit
012fb5f95d
@ -14,7 +14,19 @@ endif
|
||||
# if you want to publish the board into the sources as an uppercase #define
|
||||
BB = $(shell echo $(BOARD)|tr 'a-z' 'A-Z')
|
||||
CPUDEF = $(shell echo $(CPU)|tr 'a-z' 'A-Z')
|
||||
CFLAGS += -DBOARD=$(BB) -DCPU_$(CPUDEF) -fno-delete-null-pointer-checks
|
||||
CFLAGS += -DBOARD=$(BB) -DCPU_$(CPUDEF)
|
||||
|
||||
# Add `-fno-delete-null-pointer-checks` flag iff the compiler supports it.
|
||||
# GCC removes moves tests whether `x == NULL`, if previously `x` or even `x->y` was accessed.
|
||||
# 0x0 might be a sane memory location for embedded systems, so the test must not be removed.
|
||||
# Right now clang does not use the *delete-null-pointer* optimization, and does not understand the parameter.
|
||||
# Related issues: #628, #664.
|
||||
ifeq ($(shell $(CC) -fno-delete-null-pointer-checks -E - 2>/dev/null >/dev/null </dev/null ; echo $$?),0)
|
||||
ifeq ($(shell LANG=C $(CC) -fno-delete-null-pointer-checks -E - 2>&1 1>/dev/null </dev/null | grep warning: | grep -- -fno-delete-null-pointer-checks),)
|
||||
CFLAGS += -fno-delete-null-pointer-checks
|
||||
endif
|
||||
endif
|
||||
|
||||
export CFLAGS
|
||||
|
||||
export BINDIR =$(CURDIR)/bin/$(BOARD)/
|
||||
|
Loading…
Reference in New Issue
Block a user