blob: 8c011de28a02328a29344670546d87a36a2c8a3f [file] [log] [blame]
// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin10 -emit-llvm -o - | FileCheck %s
// CHECK: ; ModuleID
struct A {
inline void f();
};
// CHECK-NOT: define void @_ZN1A1fEv
void A::f() { }
template<typename> struct B { };
template<> struct B<char> {
inline void f();
};
// CHECK-NOT: _ZN1BIcE1fEv
void B<char>::f() { }
// We need a final CHECK line here.
// CHECK: define void @_Z1fv
void f() { }
// <rdar://problem/8740363>
inline void f1(int);
// CHECK: define linkonce_odr void @_Z2f1i
void f1(int) { }
void test_f1() { f1(17); }
// PR8789
namespace test1 {
template <typename T> class ClassTemplate {
private:
friend void T::func();
void g() {}
};
// CHECK: define linkonce_odr void @_ZN5test11C4funcEv(
class C {
public:
void func() {
ClassTemplate<C> ct;
ct.g();
}
};
void f() {
C c;
c.func();
}
}
// PR13252
namespace test2 {
struct A;
void f(const A& a);
struct A {
friend void f(const A& a) { }
};
void g() {
A a;
f(a);
}
// CHECK: define linkonce_odr void @_ZN5test21fERKNS_1AE
}