1// RUN: %clang_cc1  -analyze -analyzer-checker=alpha.security.taint,debug.TaintTest %s -verify
2// expected-no-diagnostics
3
4typedef struct _FILE FILE;
5typedef __typeof(sizeof(int)) size_t;
6extern FILE *stdin;
7typedef long ssize_t;
8ssize_t getline(char ** __restrict, size_t * __restrict, FILE * __restrict);
9int  printf(const char * __restrict, ...);
10void free(void *ptr);
11
12struct GetLineTestStruct {
13  ssize_t getline(char ** __restrict, size_t * __restrict, FILE * __restrict);
14};
15
16void getlineTest(void) {
17  FILE *fp;
18  char *line = 0;
19  size_t len = 0;
20  ssize_t read;
21  struct GetLineTestStruct T;
22
23  while ((read = T.getline(&line, &len, stdin)) != -1) {
24    printf("%s", line); // no warning
25  }
26  free(line);
27}
28