// This test demonstrates that the alphabetical-order tie breaking between // multiple symbols defined at the same address is based on the raw symbol // name, not its demangled version. @ REQUIRES: arm-registered-target @ RUN: llvm-mc -triple armv8a-unknown-linux -filetype=obj %s -o %t.o // All the run lines below should generate some subset of this // display, with different parts included: @ COMMON: Disassembly of section .text: @ @ RAW-B: 00000000 <_Z4bbbbv>: @ NICE-B: 00000000 : @ NO-B-NOT: bbbb @ A: 00000000 : @ COMMON: 0: e0800080 add r0, r0, r0, lsl #1 @ COMMON: 4: e12fff1e bx lr // The default disassembly chooses just the alphabetically later symbol, which // is aaaa, because the leading _ on a mangled name sorts before lowercase // ASCII. @ RUN: llvm-objdump --triple armv8a -d %t.o | FileCheck --check-prefixes=COMMON,NO-B,A %s // With the --show-all-symbols option, bbbb is also shown, in its raw form. @ RUN: llvm-objdump --triple armv8a --show-all-symbols -d %t.o | FileCheck --check-prefixes=COMMON,RAW-B,A %s // With --demangle as well, bbbb is demangled, but that doesn't change its // place in the sorting order. @ RUN: llvm-objdump --triple armv8a --show-all-symbols --demangle -d %t.o | FileCheck --check-prefixes=COMMON,NICE-B,A %s .text .globl aaaa .globl _Z4bbbv aaaa: _Z4bbbbv: add r0, r0, r0, lsl #1 bx lr