Daniel Dunbar | a572887 | 2009-12-15 20:14:24 +0000 | [diff] [blame] | 1 | // RUN: %clang_cc1 -fsyntax-only -verify -pedantic %s |
Steve Naroff | 4a74678 | 2008-01-09 22:43:08 +0000 | [diff] [blame] | 2 | |
| 3 | char *funk(int format); |
| 4 | enum Test {A=-1}; |
| 5 | char *funk(enum Test x); |
| 6 | |
Douglas Gregor | a41a8c5 | 2010-04-22 00:20:18 +0000 | [diff] [blame] | 7 | int eli(float b); // expected-note {{previous declaration is here}} \ |
| 8 | // expected-note{{passing argument to parameter 'b' here}} |
Steve Naroff | ffce4d5 | 2008-01-09 23:34:55 +0000 | [diff] [blame] | 9 | int b(int c) {return 1;} |
| 10 | |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 11 | int foo(); |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 12 | int foo() { |
| 13 | int eli(int (int)); // expected-error {{conflicting types for 'eli'}} |
Douglas Gregor | d4eea83 | 2010-04-09 00:35:39 +0000 | [diff] [blame] | 14 | eli(b); // expected-error{{passing 'int (int)' to parameter of incompatible type 'float'}} |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 15 | return 0; |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 16 | } |
| 17 | |
| 18 | int bar(); |
Chris Lattner | 5f4a682 | 2008-11-23 23:12:31 +0000 | [diff] [blame] | 19 | int bar(int i) // expected-note {{previous definition is here}} |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 20 | { |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 21 | return 0; |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 22 | } |
Chris Lattner | 5280408 | 2008-02-17 19:31:09 +0000 | [diff] [blame] | 23 | int bar() // expected-error {{redefinition of 'bar'}} |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 24 | { |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 25 | return 0; |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 26 | } |
| 27 | |
Chris Lattner | 5f4a682 | 2008-11-23 23:12:31 +0000 | [diff] [blame] | 28 | int foobar(int); // note {{previous declaration is here}} |
Chris Lattner | c41c123 | 2008-11-21 01:05:35 +0000 | [diff] [blame] | 29 | int foobar() // error {{conflicting types for 'foobar'}} |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 30 | { |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 31 | return 0; |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 32 | } |
| 33 | |
Chris Lattner | 5f4a682 | 2008-11-23 23:12:31 +0000 | [diff] [blame] | 34 | int wibble(); // expected-note {{previous declaration is here}} |
Steve Naroff | 837618c | 2008-01-16 15:01:34 +0000 | [diff] [blame] | 35 | float wibble() // expected-error {{conflicting types for 'wibble'}} |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 36 | { |
Mike Stump | 1eb4433 | 2009-09-09 15:08:12 +0000 | [diff] [blame] | 37 | return 0.0f; |
Chris Lattner | 5519644 | 2007-11-20 19:04:50 +0000 | [diff] [blame] | 38 | } |