#!/usr/bin/env python2 from __future__ import print_function import sys def main(): if len(sys.argv) < 2: raise Exception('Specify either "asan", "msan", "sancov" or "ubsan" as argument.') sanitizer = sys.argv[1] if sanitizer == "ubsan": if len(sys.argv) < 3: raise Exception('ubsan requires another argument.') print('-fsanitize='+sys.argv[2]+' -fno-sanitize-recover=undefined ', end='') return if sanitizer == "asan": print('-fsanitize=address ', end='') print('-fno-omit-frame-pointer -fno-optimize-sibling-calls ', end='') return if sanitizer == "msan": print('-fsanitize=memory -fsanitize-memory-track-origins ', end='') print('-fno-omit-frame-pointer -fno-optimize-sibling-calls ', end='') return if sanitizer == "sancov": if len(sys.argv) < 3: raise Exception('sancov requires another argument (edge|bb|func).') print('-fsanitize-coverage='+sys.argv[2]+' ', end='') return raise Exception('Specify either "asan", "msan", "sancov" or "ubsan" as argument.') if __name__ == '__main__': main()