1*8a64d80aSDavid Spickett // REQUIRES: lld
2*8a64d80aSDavid Spickett 
3*8a64d80aSDavid Spickett // RUN: %clang %s -g -c -o %t.o --target=x86_64-pc-linux -gno-pubnames
4*8a64d80aSDavid Spickett // RUN: ld.lld %t.o -o %t
5*8a64d80aSDavid Spickett // RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \
6*8a64d80aSDavid Spickett // RUN:   FileCheck %s
7*8a64d80aSDavid Spickett //
8*8a64d80aSDavid Spickett // RUN: %clang %s -g -c -o %t --target=x86_64-apple-macosx
9*8a64d80aSDavid Spickett // RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \
10*8a64d80aSDavid Spickett // RUN:   FileCheck %s
11*8a64d80aSDavid Spickett 
12*8a64d80aSDavid Spickett // RUN: %clang %s -c -o %t.o --target=x86_64-pc-linux -gdwarf-5 -gpubnames
13*8a64d80aSDavid Spickett // RUN: ld.lld %t.o -o %t
14*8a64d80aSDavid Spickett // RUN: llvm-readobj --sections %t | FileCheck %s --check-prefix NAMES
15*8a64d80aSDavid Spickett // RUN: lldb-test symbols --name=foo --find=function --function-flags=method %t | \
16*8a64d80aSDavid Spickett // RUN:   FileCheck %s
17*8a64d80aSDavid Spickett 
18*8a64d80aSDavid Spickett // NAMES: Name: .debug_names
19*8a64d80aSDavid Spickett 
20*8a64d80aSDavid Spickett // CHECK-DAG: name = "A::foo()", mangled = "_ZN1A3fooEv"
21*8a64d80aSDavid Spickett // CHECK-DAG: name = "B::foo()", mangled = "_ZN1B3fooEv"
22*8a64d80aSDavid Spickett // CHECK-DAG: name = "C::foo()", mangled = "_ZN1C3fooEv"
23*8a64d80aSDavid Spickett 
24*8a64d80aSDavid Spickett struct A {
25*8a64d80aSDavid Spickett   void foo();
26*8a64d80aSDavid Spickett };
foo()27*8a64d80aSDavid Spickett void A::foo() {}
28*8a64d80aSDavid Spickett 
29*8a64d80aSDavid Spickett class B {
30*8a64d80aSDavid Spickett   void foo();
31*8a64d80aSDavid Spickett };
foo()32*8a64d80aSDavid Spickett void B::foo() {}
33*8a64d80aSDavid Spickett 
34*8a64d80aSDavid Spickett union C {
35*8a64d80aSDavid Spickett   void foo();
36*8a64d80aSDavid Spickett };
foo()37*8a64d80aSDavid Spickett void C::foo() {}
38*8a64d80aSDavid Spickett 
_start()39*8a64d80aSDavid Spickett extern "C" void _start() {}
40