1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -fsyntax-only -verify %s
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// PR3592
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostatic void* malloc(int);
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostatic void* malloc(int size) {
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return ((void*)0); /*do not use heap in this file*/
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid *calloc(int, int, int); // expected-warning{{incompatible redeclaration of library function 'calloc' will be ignored}} \
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// expected-note{{'calloc' is a builtin with type 'void *}}
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid f1(void) {
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  calloc(0, 0, 0);
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaovoid f2() {
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  int index = 1;
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostatic int index;
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f3() {
23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return index << 2;
24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotypedef int rindex;
27