1 // RUN: %clang_cc1 -S -triple %itanium_abi_triple -std=c++11 -emit-llvm %s -o - | FileCheck %s
2 
3 namespace pr8852 {
4 void foo();
5 struct S {
foo()6   friend void foo() {}
7 };
8 
main()9 void main() {
10   foo();
11 }
12 // CHECK: define {{.*}} @_ZN6pr88523fooEv
13 }
14 
15 namespace pr9518 {
16 template<typename T>
17 struct provide {
f()18   friend T f() { return T(); }
19 };
20 
g()21 void g() {
22   void f();
23   provide<void> p;
24   f();
25 }
26 // CHECK: define {{.*}} @_ZN6pr95181fEv
27 }
28