Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 1 | ifdef CONFIG_UBSAN |
| 2 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=shift) |
| 3 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=integer-divide-by-zero) |
| 4 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=unreachable) |
| 5 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=vla-bound) |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 6 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow) |
| 7 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds) |
| 8 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size) |
| 9 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=returns-nonnull-attribute) |
| 10 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=bool) |
| 11 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=enum) |
| 12 | |
| 13 | ifdef CONFIG_UBSAN_ALIGNMENT |
| 14 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=alignment) |
| 15 | endif |
Christian Borntraeger | 725c4d2 | 2016-09-12 14:37:19 +0200 | [diff] [blame] | 16 | |
| 17 | ifdef CONFIG_UBSAN_NULL |
| 18 | CFLAGS_UBSAN += $(call cc-option, -fsanitize=null) |
| 19 | endif |
Arnd Bergmann | a76bcf5 | 2016-11-10 17:44:44 +0100 | [diff] [blame] | 20 | |
| 21 | # -fsanitize=* options makes GCC less smart than usual and |
| 22 | # increase number of 'maybe-uninitialized false-positives |
| 23 | CFLAGS_UBSAN += $(call cc-option, -Wno-maybe-uninitialized) |
Andrey Ryabinin | c6d3085 | 2016-01-20 15:00:55 -0800 | [diff] [blame] | 24 | endif |