1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/tools/llvm-symbolizer/input-base.test
Richard Smith be765b5d17 llvm-addr2line: assume addresses on the command line are hexadecimal rather than attempting to guess the base based on the form of the number.
Summary:
This matches the behavior of GNU addr2line. We previously treated
hexadecimal addresses as binary if they started with 0b, otherwise as
octal if they started with 0, otherwise as decimal.

This only affects llvm-addr2line; the behavior of llvm-symbolize is
unaffected.

Reviewers: ikudrin, rupprecht, jhenderson

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73306
2020-04-16 16:16:21 -07:00

34 lines
1.6 KiB
Plaintext

# llvm-symbolizer infers the number base from the form of the address.
RUN: llvm-symbolizer -e /dev/null -a 0x1234 | FileCheck %s
RUN: llvm-symbolizer -e /dev/null -a 0X1234 | FileCheck %s
RUN: llvm-symbolizer -e /dev/null -a 4660 | FileCheck %s
RUN: llvm-symbolizer -e /dev/null -a 011064 | FileCheck %s
RUN: llvm-symbolizer -e /dev/null -a 0b1001000110100 | FileCheck %s
RUN: llvm-symbolizer -e /dev/null -a 0B1001000110100 | FileCheck %s
RUN: llvm-symbolizer -e /dev/null -a 0o11064 | FileCheck %s
# llvm-symbolizer / StringRef::getAsInteger only accepts the 0o prefix in lowercase.
RUN: llvm-symbolizer -e /dev/null -a 0O1234 | FileCheck %s --check-prefix=INVALID-NOT-OCTAL-UPPER
# llvm-addr2line always requires hexadecimal, but accepts an optional 0x prefix.
RUN: llvm-addr2line -e /dev/null -a 0x1234 | FileCheck %s
RUN: llvm-addr2line -e /dev/null -a 0X1234 | FileCheck %s
RUN: llvm-addr2line -e /dev/null -a 1234 | FileCheck %s
RUN: llvm-addr2line -e /dev/null -a 01234 | FileCheck %s
RUN: llvm-addr2line -e /dev/null -a 0b1010 | FileCheck %s --check-prefix=HEXADECIMAL-NOT-BINARY
RUN: llvm-addr2line -e /dev/null -a 0B1010 | FileCheck %s --check-prefix=HEXADECIMAL-NOT-BINARY
RUN: llvm-addr2line -e /dev/null -a 0o1234 | FileCheck %s --check-prefix=INVALID-NOT-OCTAL-LOWER
RUN: llvm-addr2line -e /dev/null -a 0O1234 | FileCheck %s --check-prefix=INVALID-NOT-OCTAL-UPPER
CHECK: 0x1234
CHECK-NEXT: ??
HEXADECIMAL-NOT-BINARY: 0xb1010
HEXADECIMAL-NOT-BINARY: ??
INVALID-NOT-OCTAL-LOWER: 0o1234
INVALID-NOT-OCTAL-LOWER-NOT: ??
INVALID-NOT-OCTAL-UPPER: 0O1234
INVALID-NOT-OCTAL-UPPER-NOT: ??