## Show that the --disassemble-symbols switch takes demangled names when ## --demangle is specified, otherwise the switch takes mangled names. # RUN: yaml2obj %s -o %t.o ## --disassemble-symbols without --demangle. # RUN: llvm-objdump --disassemble-symbols=_Z3foov %t.o | FileCheck %s --check-prefix=MANGLED # RUN: llvm-objdump --disassemble-symbols='foo()' %t.o 2>&1 \ # RUN: | FileCheck %s --check-prefix=MANGLED-MISS # RUN: llvm-objdump --disassemble-symbols=foo %t.o 2>&1 \ # RUN: | FileCheck %s --check-prefix=MANGLED-MISS # RUN: llvm-objdump --disassemble-symbols='i,f' %t.o | FileCheck %s --check-prefix=NOMANGLE ## --disassemble-symbols with --demangle. # RUN: llvm-objdump -C --disassemble-symbols='foo()' %t.o | FileCheck %s --check-prefix=DEMANGLED # RUN: llvm-objdump -C --disassemble-symbols='_Z3foov' %t.o 2>&1 \ # RUN: | FileCheck %s --check-prefix=DEMANGLED-MISS # RUN: llvm-objdump -C --disassemble-symbols='i,f' %t.o | FileCheck %s --check-prefix=NOMANGLE # RUN: llvm-objdump -C --disassemble-symbols='std::allocator<wchar_t>::allocator()' %t.o 2>&1 \ # RUN: | FileCheck %s --check-prefix=DEMANGLED-MULTI # MANGLED: <_Z3foov>: # MANGLED-MISS: warning: '{{.*}}': failed to disassemble missing symbol foo # DEMANGLED: <foo()>: # DEMANGLED-MISS: warning: '{{.*}}': failed to disassemble missing symbol _Z3foov # NOMANGLE: <i>: # NOMANGLE: <f>: # DEMANGLED-MULTI: <std::allocator<wchar_t>::allocator()>: # DEMANGLED-MULTI: <std::allocator<wchar_t>::allocator()>: --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS Flags: [SHF_ALLOC, SHF_EXECINSTR] Address: 0x1000 Content: 9090909090 Symbols: - Name: _Z3foov Value: 0x1000 Section: .text - Name: i Value: 0x1001 Section: .text - Name: f Value: 0x1002 Section: .text - Name: _ZNSaIwEC1Ev Value: 0x1003 Section: .text - Name: _ZNSaIwEC2Ev Value: 0x1004 Section: .text