Using $ breaks demangling of the symbols. For example, $ c++filt _Z3foov\$123 _Z3foov$123 This causes problems for developers who would like to see nice stack traces etc., but also for automatic crash tracking systems which try to organize crashes based on the stack traces. Instead, use the period as suffix separator, since Itanium demanglers normally ignore such suffixes: $ c++filt _Z3foov.123 foo() [clone .123] This is already done in some places; try to do it everywhere. Differential revision: https://reviews.llvm.org/D97484
33 lines
1.1 KiB
LLVM
33 lines
1.1 KiB
LLVM
; RUN: opt -thinlto-bc -thinlto-split-lto-unit -o %t %s
|
|
; RUN: llvm-modextract -b -n 0 -o %t0 %t
|
|
; RUN: llvm-modextract -b -n 1 -o %t1 %t
|
|
; RUN: not llvm-modextract -b -n 2 -o - %t 2>&1 | FileCheck --check-prefix=ERROR %s
|
|
; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=M0 %s
|
|
; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=M1 %s
|
|
; RUN: llvm-bcanalyzer -dump %t0 | FileCheck --check-prefix=BCA0 %s
|
|
; RUN: llvm-bcanalyzer -dump %t1 | FileCheck --check-prefix=BCA1 %s
|
|
|
|
; ERROR: llvm-modextract: error: module index out of range; bitcode file contains 2 module(s)
|
|
|
|
; BCA0: <GLOBALVAL_SUMMARY_BLOCK
|
|
; BCA1-NOT: <GLOBALVAL_SUMMARY_BLOCK
|
|
|
|
; M0: @g = external global void ()*{{$}}
|
|
; M1: @g = global void ()* @f.13757e0fb71915e385efa4dc9d1e08fd, !type !0
|
|
@g = global void ()* @f, !type !0
|
|
|
|
; M0: define hidden void @f.13757e0fb71915e385efa4dc9d1e08fd()
|
|
; M1: declare hidden void @f.13757e0fb71915e385efa4dc9d1e08fd()
|
|
define internal void @f() {
|
|
call void @f2()
|
|
ret void
|
|
}
|
|
|
|
; M0: define internal void @f2()
|
|
define internal void @f2() {
|
|
ret void
|
|
}
|
|
|
|
; M1: !0 = !{i32 0, !"typeid"}
|
|
!0 = !{i32 0, !"typeid"}
|