1a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor// RUN: %clang_cc1 -triple i386-pc-linux-gnu -emit-llvm %s -o - | FileCheck %s 2a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor// PR8864 3a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor 4a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregorstruct Foo { 5a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor friend bool TryFoo(Foo *f2) { return TryFoo(0, f2); } 6a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor 7a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor// CHECK: define{{.*}}Z6TryFooP3Foo 8a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor// CHECK-NOT: ret 9a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor// CHECK: call{{.*}}Z6TryFooiP3Foo 10a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor// CHECK: ret 11a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor 12a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor friend bool TryFoo(int, Foo *f3); 13a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor}; 14a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregorbool TryFoo(Foo *f5); 15a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregorint main(void) { 16a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor Foo f; 17a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor TryFoo(&f); 18a29bf41b8f49578207ce36f6b21ff9bb7ee77babDouglas Gregor} 19