| // RUN: %clang_cc1 -fsyntax-only -verify %s | |
| // expected-no-diagnostics | |
| // Make sure that friend declarations don't introduce ambiguous | |
| // declarations. | |
| // Test case courtesy of Shantonu Sen. | |
| // Bug 4784. | |
| class foo; | |
| extern "C" { | |
| int c_func(foo *a); | |
| }; | |
| int cpp_func(foo *a); | |
| class foo { | |
| public: | |
| friend int c_func(foo *a); | |
| friend int cpp_func(foo *a); | |
| int caller(); | |
| private: | |
| int x; | |
| }; | |
| int c_func(foo *a) { | |
| return a->x; | |
| } | |
| int cpp_func(foo *a) { | |
| return a->x; | |
| } | |
| int foo::caller() { | |
| c_func(this); | |
| cpp_func(this); | |
| return 0; | |
| } |