mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-05-13 17:37:00 +00:00

Generate DILabel metadata and call llvm.dbg.label after label statement to associate the metadata with the label. After fixing PR37395. After fixing problems in LiveDebugVariables. After fixing NULL symbol problems in AddressPool when enabling split-dwarf-file. After fixing PR39094. After landing D54199 and D54465 to fix Chromium build failed. Differential Revision: https://reviews.llvm.org/D45045 llvm-svn: 352025
29 lines
847 B
C
29 lines
847 B
C
// This test will test the correctness of generating DILabel and
|
|
// llvm.dbg.label when the label is in inlined functions.
|
|
//
|
|
// RUN: %clang_cc1 -O2 %s -o - -emit-llvm -debug-info-kind=limited | FileCheck %s
|
|
inline int f1(int a, int b) {
|
|
int sum;
|
|
|
|
top:
|
|
sum = a + b;
|
|
return sum;
|
|
}
|
|
|
|
extern int ga, gb;
|
|
|
|
int f2(void) {
|
|
int result;
|
|
|
|
result = f1(ga, gb);
|
|
// CHECK: call void @llvm.dbg.label(metadata [[LABEL_METADATA:!.*]]), !dbg [[LABEL_LOCATION:!.*]]
|
|
|
|
return result;
|
|
}
|
|
|
|
// CHECK: distinct !DISubprogram(name: "f1", {{.*}}, retainedNodes: [[ELEMENTS:!.*]])
|
|
// CHECK: [[ELEMENTS]] = !{{{.*}}, [[LABEL_METADATA]]}
|
|
// CHECK: [[LABEL_METADATA]] = !DILabel({{.*}}, name: "top", {{.*}}, line: 8)
|
|
// CHECK: [[INLINEDAT:!.*]] = distinct !DILocation(line: 18,
|
|
// CHECK: [[LABEL_LOCATION]] = !DILocation(line: 8, {{.*}}, inlinedAt: [[INLINEDAT]])
|