
An upcoming patch will extend llvm-symbolizer to provide the source line information for global variables. The goal is to move AddressSanitizer off of internal debug info for symbolization onto the DWARF standard (and doing a clean-up in the process). Currently, ASan reports the line information for constant strings if a memory safety bug happens around them. We want to keep this behaviour, so we need to emit debuginfo for these variables as well. Reviewed By: dblaikie, rnk, aprantl Differential Revision: https://reviews.llvm.org/D123534
21 lines
691 B
C
21 lines
691 B
C
// RUN: %clang_cc1 %s -debug-info-kind=standalone -S -emit-llvm -o - | FileCheck %s
|
|
|
|
// CHECK: DIGlobalVariable(name: "global",{{.*}} line: [[@LINE+1]]
|
|
int global = 42;
|
|
|
|
// CHECK: DIGlobalVariable({{.*}}line: [[@LINE+4]],{{.*}} type: [[TYPEID:![0-9]+]]
|
|
// CHECK: [[TYPEID]] = !DICompositeType(tag: DW_TAG_array_type, baseType: [[BASETYPE:![0-9]+]]
|
|
// CHECK: [[BASETYPE]] = !DIBasicType(name: "char"
|
|
const char* s() {
|
|
return "1234567890";
|
|
}
|
|
|
|
// Note: Windows has `q -> p -> r` ordering and Linux has `p -> q -> r`.
|
|
// CHECK-DAG: DILocalVariable(name: "p"
|
|
// CHECK-DAG: DILocalVariable(name: "q"
|
|
// CHECK-DAG: DILocalVariable(name: "r"
|
|
int sum(int p, int q) {
|
|
int r = p + q;
|
|
return r;
|
|
}
|