1f51a89d39
These were ignored by git accidentally. We want ALL OF THEM since they all came in the llvm/clang source distribution.
38 lines
525 B
C++
38 lines
525 B
C++
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
|
|
|
// 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;
|
|
}
|