// 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 struct B { }; template<> struct B { inline void f(); }; // CHECK-NOT: _ZN1BIcE1fEv void B::f() { } // We need a final CHECK line here. // CHECK: define void @_Z1fv void f() { } // inline void f1(int); // CHECK: define linkonce_odr void @_Z2f1i void f1(int) { } void test_f1() { f1(17); } // PR8789 namespace test1 { template class ClassTemplate { private: friend void T::func(); void g() {} }; // CHECK: define linkonce_odr void @_ZN5test11C4funcEv( class C { public: void func() { ClassTemplate ct; ct.g(); } }; void f() { C c; c.func(); } }