xref: /llvm-project/llvm/test/tools/llvm-objdump/X86/disassemble-functions-mangling.test (revision 0d673be13a30eb39e5f0a315ca467f9fe81820f4)
1## Show that the --disassemble-symbols switch takes demangled names when
2## --demangle is specified, otherwise the switch takes mangled names.
3
4# RUN: yaml2obj %s -o %t.o
5
6## --disassemble-symbols without --demangle.
7# RUN: llvm-objdump --disassemble-symbols=_Z3foov %t.o | FileCheck %s --check-prefix=MANGLED
8# RUN: llvm-objdump --disassemble-symbols='foo()' %t.o 2>&1 \
9# RUN:   | FileCheck %s --check-prefix=MANGLED-MISS
10# RUN: llvm-objdump --disassemble-symbols=foo %t.o 2>&1 \
11# RUN:   | FileCheck %s --check-prefix=MANGLED-MISS
12# RUN: llvm-objdump --disassemble-symbols='i,f' %t.o | FileCheck %s --check-prefix=NOMANGLE
13
14## --disassemble-symbols with --demangle.
15# RUN: llvm-objdump -C --disassemble-symbols='foo()' %t.o | FileCheck %s --check-prefix=DEMANGLED
16# RUN: llvm-objdump -C --disassemble-symbols='_Z3foov' %t.o 2>&1 \
17# RUN:   | FileCheck %s --check-prefix=DEMANGLED-MISS
18# RUN: llvm-objdump -C --disassemble-symbols='i,f' %t.o | FileCheck %s --check-prefix=NOMANGLE
19# RUN: llvm-objdump -C --disassemble-symbols='std::allocator<wchar_t>::allocator()' %t.o 2>&1 \
20# RUN:   | FileCheck %s --check-prefix=DEMANGLED-MULTI
21
22# MANGLED: <_Z3foov>:
23# MANGLED-MISS: warning: '{{.*}}': failed to disassemble missing symbol foo
24
25# DEMANGLED: <foo()>:
26# DEMANGLED-MISS: warning: '{{.*}}': failed to disassemble missing symbol _Z3foov
27
28# NOMANGLE: <i>:
29# NOMANGLE: <f>:
30
31# DEMANGLED-MULTI: <std::allocator<wchar_t>::allocator()>:
32# DEMANGLED-MULTI: <std::allocator<wchar_t>::allocator()>:
33
34--- !ELF
35FileHeader:
36  Class:   ELFCLASS64
37  Data:    ELFDATA2LSB
38  Type:    ET_EXEC
39  Machine: EM_X86_64
40Sections:
41  - Name:  .text
42    Type:  SHT_PROGBITS
43    Flags: [SHF_ALLOC, SHF_EXECINSTR]
44    Address: 0x1000
45    Content: 9090909090
46Symbols:
47  - Name:    _Z3foov
48    Value:   0x1000
49    Section: .text
50  - Name:    i
51    Value:   0x1001
52    Section: .text
53  - Name:    f
54    Value:   0x1002
55    Section: .text
56  - Name:    _ZNSaIwEC1Ev
57    Value:   0x1003
58    Section: .text
59  - Name:    _ZNSaIwEC2Ev
60    Value:   0x1004
61    Section: .text
62