3 from __future__
import print_function
8 raise Exception('Specify either "asan", "fuzzer", "msan", "sancov", "sourcecov" or "ubsan" as argument.')
10 sanitizer
= sys
.argv
[1]
11 if sanitizer
== "ubsan":
13 raise Exception('ubsan requires another argument.')
14 print('-fsanitize='+sys
.argv
[2]+' -fno-sanitize-recover='+sys
.argv
[2] + ' ', end
='')
15 print('-fno-sanitize=nonnull-attribute -fno-sanitize=enum ', end
='')
17 if sanitizer
== "asan":
18 print('-fsanitize=address -fsanitize-address-use-after-scope ', end
='')
19 print('-fno-omit-frame-pointer -fno-optimize-sibling-calls ', end
='')
21 if sanitizer
== "msan":
22 print('-fsanitize=memory -fsanitize-memory-track-origins ', end
='')
23 print('-fno-omit-frame-pointer -fno-optimize-sibling-calls ', end
='')
25 if sanitizer
== "sancov":
27 raise Exception('sancov requires another argument (edge|bb|func).')
28 print('-fsanitize-coverage='+sys
.argv
[2]+' ', end
='')
30 if sanitizer
== "sourcecov":
31 print('-fprofile-instr-generate -fcoverage-mapping', end
='')
33 if sanitizer
== "fuzzer":
34 print('-fsanitize=fuzzer-no-link ', end
='')
37 raise Exception('Specify either "asan", "fuzzer", "msan", "sancov", "sourcecov" or "ubsan" as argument.')
39 if __name__
== '__main__':