[clang-cl] Ignore /Wv and /Wv:17 flags
[llvm-project.git] / clang / test / Analysis / malloc-three-arg.c
blob005b8940a1a995cbce919644cb6745a07df4550b
1 // RUN: %clang_analyze_cc1 -triple x86_64-unknown-freebsd %s
3 #include "Inputs/system-header-simulator.h"
5 #define M_ZERO 0x0100
6 #define NULL ((void *)0)
8 void *malloc(size_t, void *, int);
10 struct test {
13 void foo(struct test *);
15 void test_zeroed(void) {
16 struct test **list, *t;
17 int i;
19 list = malloc(sizeof(*list) * 10, NULL, M_ZERO);
20 if (list == NULL)
21 return;
23 for (i = 0; i < 10; i++) {
24 t = list[i];
25 foo(t);
27 free(list); // no-warning
30 void test_nonzero(void) {
31 struct test **list, *t;
32 int i;
34 list = malloc(sizeof(*list) * 10, NULL, 0);
35 if (list == NULL)
36 return;
38 for (i = 0; i < 10; i++) {
39 t = list[i]; // expected-warning{{undefined}}
40 foo(t);
42 free(list);
45 void test_indeterminate(int flags) {
46 struct test **list, *t;
47 int i;
49 list = malloc(sizeof(*list) * 10, NULL, flags);
50 if (list == NULL)
51 return;
53 for (i = 0; i < 10; i++) {
54 t = list[i]; // expected-warning{{undefined}}
55 foo(t);
57 free(list);