xref: /llvm-project/llvm/test/tools/llvm-symbolizer/input-base.test (revision 1792852f86dc75efa1f44d46b1a0daf386d64afa)
1# llvm-symbolizer infers the number base from the form of the address.
2RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 0x1234 | FileCheck %s
3RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 0X1234 | FileCheck %s
4RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 4660 | FileCheck %s
5RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 011064 | FileCheck %s
6RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 0b1001000110100 | FileCheck %s
7RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 0B1001000110100 | FileCheck %s
8RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 0o11064 | FileCheck %s
9
10# llvm-symbolizer / StringRef::getAsInteger only accepts the 0o prefix in lowercase.
11RUN: llvm-symbolizer -e %p/Inputs/addr.exe -a 0O1234 | FileCheck %s --check-prefix=INVALID
12
13# llvm-addr2line always requires hexadecimal, but accepts an optional 0x prefix.
14RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 0x1234 | FileCheck %s
15RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 0X1234 | FileCheck %s
16RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 1234 | FileCheck %s
17RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 01234 | FileCheck %s
18RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 0b1010 | FileCheck %s --check-prefix=HEXADECIMAL-NOT-BINARY
19RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 0B1010 | FileCheck %s --check-prefix=HEXADECIMAL-NOT-BINARY
20RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 0o1234 | FileCheck %s --check-prefix=INVALID-NOT-OCTAL
21RUN: llvm-addr2line -e %p/Inputs/addr.exe -a 0O1234 | FileCheck %s --check-prefix=INVALID-NOT-OCTAL
22
23CHECK: 0x1234
24CHECK-NEXT: ??
25
26INVALID:      ??
27INVALID-NEXT: ??:0
28
29HEXADECIMAL-NOT-BINARY: 0xb1010
30HEXADECIMAL-NOT-BINARY: ??
31
32INVALID-NOT-OCTAL: ??:0
33