// 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; | |
} |