File: multiple-symbols-mangling.s

package info (click to toggle)
llvm-toolchain-16 1%3A16.0.6-15~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,634,792 kB
  • sloc: cpp: 6,179,261; ansic: 1,216,205; asm: 741,319; python: 196,614; objc: 75,325; f90: 49,640; lisp: 32,396; pascal: 12,286; sh: 9,394; perl: 7,442; ml: 5,494; awk: 3,523; makefile: 2,723; javascript: 1,206; xml: 886; fortran: 581; cs: 573
file content (42 lines) | stat: -rw-r--r-- 1,477 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// 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 <bbbb()>:
@ NO-B-NOT:                bbbb
@ A:             00000000 <aaaa>:
@ 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