diff options
Diffstat (limited to 'test/Analysis/security-syntax-checks.c')
-rw-r--r-- | test/Analysis/security-syntax-checks.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/Analysis/security-syntax-checks.c b/test/Analysis/security-syntax-checks.c new file mode 100644 index 0000000000..392a65ff5f --- /dev/null +++ b/test/Analysis/security-syntax-checks.c @@ -0,0 +1,20 @@ +// RUN: %clang_analyze_cc1 %s -verify \ +// RUN: -analyzer-checker=security.insecureAPI +// RUN: %clang_analyze_cc1 %s -verify -std=gnu11 \ +// RUN: -analyzer-checker=security.insecureAPI +// RUN: %clang_analyze_cc1 %s -verify -std=gnu99 \ +// RUN: -analyzer-checker=security.insecureAPI + +void builtin_function_call_crash_fixes(char *c) { + __builtin_strncpy(c, "", 6); + __builtin_memset(c, '\0', (0)); + __builtin_memcpy(c, c, 0); + +#if __STDC_VERSION__ > 199901 + // expected-warning@-5{{Call to function 'strncpy' is insecure as it does not provide security checks introduced in the C11 standard.}} + // expected-warning@-5{{Call to function 'memset' is insecure as it does not provide security checks introduced in the C11 standard.}} + // expected-warning@-5{{Call to function 'memcpy' is insecure as it does not provide security checks introduced in the C11 standard.}} +#else + // expected-no-diagnostics +#endif +} |