| // RUN: %clang_cc1 -fsyntax-only -Wno-strict-prototypes -verify %s |
| |
| void blapp(int); // expected-note {{previous}} |
| void blapp() { } // expected-error {{conflicting types for 'blapp'}} |
| |
| void yarp(int, ...); // expected-note {{previous}} |
| void yarp(); // expected-error {{conflicting types for 'yarp'}} |
| |
| void blarg(int, ...); // expected-note {{previous}} |
| void blarg() {} // expected-error {{conflicting types for 'blarg'}} |
| |
| void blerp(short); // expected-note {{previous}} |
| void blerp(x) int x; {} // expected-error {{conflicting types for 'blerp'}} |
| |
| void foo(int); // expected-note {{previous}} |
| void foo(); |
| void foo() {} // expected-error {{conflicting types for 'foo'}} |
| |
| void glerp(int); |
| void glerp(x) short x; {} // Okay, promoted type is fine |
| |
| // All these cases are okay |
| void derp(int); |
| void derp(x) int x; {} |
| |
| void garp(int); |
| void garp(); |
| void garp(x) int x; {} |
| |
| // Ensure redeclarations that conflict with a builtin use a note which makes it |
| // clear that the previous declaration was a builtin. |
| float rintf() { // expected-warning {{incompatible redeclaration of library function 'rintf'}} \ |
| expected-note {{'rintf' is a builtin with type 'float (float)'}} |
| return 1.0f; |
| } |