| # 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: ?? |