// RUN: %clang_analyze_cc1 -triple x86_64-unknown-freebsd %s
#include"Inputs/system-header-simulator.h"#defineM_ZERO0x0100#defineNULL((void*)0)void*malloc(size_t,void*,int);voidfree(void*);structtest{};voidfoo(struct test *);voidtest_zeroed(void){struct test **list,*t;int i;
list =malloc(sizeof(*list)*10,NULL, M_ZERO);if(list ==NULL)return;for(i =0; i <10; i++){
t = list[i];foo(t);}free(list);// no-warning
}voidtest_nonzero(void){struct test **list,*t;int i;
list =malloc(sizeof(*list)*10,NULL,0);if(list ==NULL)return;for(i =0; i <10; i++){
t = list[i];// expected-warning{{undefined}}
foo(t);}free(list);}voidtest_indeterminate(intflags){struct test **list,*t;int i;
list =malloc(sizeof(*list)*10,NULL, flags);if(list ==NULL)return;for(i =0; i <10; i++){
t = list[i];// expected-warning{{undefined}}
foo(t);}free(list);}