// RUN: %clang_cc1 -fsyntax-only -verify %s void test_builtin_allow_sanitize_check() { // Test with no arguments. (void)__builtin_allow_sanitize_check(); // expected-error {{too few arguments to function call, expected 1, have 0}} // Test with non-string literal argument. char str[] = "address"; (void)__builtin_allow_sanitize_check(str); // expected-error {{expression is not a string literal}} (void)__builtin_allow_sanitize_check(123); // expected-error {{expression is not a string literal}} // Test with unsupported sanitizer name. (void)__builtin_allow_sanitize_check("unsupported"); // expected-error {{invalid argument 'unsupported' to __builtin_allow_sanitize_check}} // Test with supported sanitizer names. (void)__builtin_allow_sanitize_check("address"); (void)__builtin_allow_sanitize_check("thread"); (void)__builtin_allow_sanitize_check("memory"); (void)__builtin_allow_sanitize_check("hwaddress"); (void)__builtin_allow_sanitize_check("kernel-address"); (void)__builtin_allow_sanitize_check("kernel-memory"); (void)__builtin_allow_sanitize_check("kernel-hwaddress"); } #if !__has_builtin(__builtin_allow_sanitize_check) #error "missing __builtin_allow_sanitize_check" #endif