// 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) // Unused constants shouldn't show up in the globals stream. // DEBUGGER: ?? ENUM_POS // CHECK: Couldn't resolve error at 'ENUM_POS' // DEBUGGER: q __debugbreak(); return 0; }