1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyunifdef CONFIG_UBSAN 3*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=shift) 4*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero) 5*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable) 6*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=vla-bound) 7*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow) 8*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) 9*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size) 10*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=bool) 11*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=enum) 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunifdef CONFIG_UBSAN_ALIGNMENT 14*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) 15*4882a593Smuzhiyunendif 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun # -fsanitize=* options makes GCC less smart than usual and 18*4882a593Smuzhiyun # increase number of 'maybe-uninitialized false-positives 19*4882a593Smuzhiyun CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized) 20*4882a593Smuzhiyunendif 21