diff options
Diffstat (limited to 'test/Analysis/diagnostics/sarif-multi-diagnostic-test.c')
-rw-r--r-- | test/Analysis/diagnostics/sarif-multi-diagnostic-test.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/Analysis/diagnostics/sarif-multi-diagnostic-test.c b/test/Analysis/diagnostics/sarif-multi-diagnostic-test.c new file mode 100644 index 000000000000..459128a05fa0 --- /dev/null +++ b/test/Analysis/diagnostics/sarif-multi-diagnostic-test.c @@ -0,0 +1,29 @@ +// RUN: %clang_analyze_cc1 -analyzer-checker=core,alpha.security.taint,debug.TaintTest %s -verify -analyzer-output=sarif -o - | %diff_sarif %S/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif - +#include "../Inputs/system-header-simulator.h" + +int atoi(const char *nptr); + +void f(void) { + char s[80]; + scanf("%s", s); + int d = atoi(s); // expected-warning {{tainted}} +} + +void g(void) { + void (*fp)(int); + fp(12); // expected-warning {{Called function pointer is an uninitialized pointer value}} +} + +int h(int i) { + if (i == 0) + return 1 / i; // expected-warning {{Division by zero}} + return 0; +} + +int main(void) { + f(); + g(); + h(0); + return 0; +} + |