| 1 | // RUN: %clang_cc1 %s -fsyntax-only -pedantic -verify |
| 2 | // RUN: %clang_cc1 %s -fsyntax-only -pedantic -verify -DPREDECLARE |
| 3 | |
| 4 | #ifdef PREDECLARE |
| 5 | // PR16344 |
| 6 | // Clang has defined 'vfprint' in builtin list. If the following line occurs before any other |
| 7 | // `vfprintf' in this file, and we getPreviousDecl()->getTypeSourceInfo() on it, then we will |
| 8 | // get a null pointer since the one in builtin list doesn't has valid TypeSourceInfo. |
| 9 | int vfprintf(void) { return 0; } // expected-warning {{requires inclusion of the header <stdio.h>}} |
| 10 | #endif |
| 11 | |
| 12 | // PR4290 |
| 13 | // The following declaration is compatible with vfprintf, so we shouldn't |
| 14 | // reject. |
| 15 | int vfprintf(); |
| 16 | #ifndef PREDECLARE |
| 17 | // expected-warning@-2 {{requires inclusion of the header <stdio.h>}} |
| 18 | #endif |
| 19 | |