diff --git a/debuginfo-tests/win_cdb/global-constant.cpp b/debuginfo-tests/win_cdb/global-constant.cpp new file mode 100644 --- /dev/null +++ b/debuginfo-tests/win_cdb/global-constant.cpp @@ -0,0 +1,32 @@ +// RUN: %clang_cl %s -o %t.exe -fuse-ld=lld -Z7 +// RUN: grep DE[B]UGGER: %s | sed -e 's/.*DE[B]UGGER: //' > %t.script +// RUN: %cdb -cf %t.script %t.exe | FileCheck %s --check-prefixes=DEBUGGER,CHECK + +// Check that global constants have debug info. + +const float TestPi = 3.14; +struct S { + static const char TestCharA = 'a'; +}; +enum TestEnum : int { + ENUM_POS = 2147000000, + ENUM_NEG = -2147000000, +}; +void useConst(int) {} +int main() { + useConst(TestPi); + useConst(S::TestCharA); + useConst(ENUM_NEG); + // DEBUGGER: g + // DEBUGGER: ?? TestPi + // CHECK: float 3.140000105 + // DEBUGGER: ?? S::TestCharA + // CHECK: char 0n97 'a' + // DEBUGGER: ?? ENUM_NEG + // CHECK: TestEnum ENUM_NEG (0n-2147000000) + // DEBUGGER: ?? ENUM_POS + // CHECK: Couldn't resolve error at 'ENUM_POS' + // DEBUGGER: q + __debugbreak(); + return 0; +}