xref: /llvm-project/cross-project-tests/debuginfo-tests/dexter-tests/global-constant.cpp (revision 45a40c163932d12b72b33bd1d8a84519392b5d39)
11364750dSJames Henderson // REQUIRES: system-windows
21364750dSJames Henderson //
3*45a40c16SStephen Tozer // RUN: %clang_cl /Z7 /Zi %s -o %t
4*45a40c16SStephen Tozer // RUN: %dexter --fail-lt 1.0 -w --binary %t --debugger 'dbgeng' -- %s
51364750dSJames Henderson 
61364750dSJames Henderson // Check that global constants have debug info.
71364750dSJames Henderson 
81364750dSJames Henderson const float TestPi = 3.14;
91364750dSJames Henderson struct S {
101364750dSJames Henderson   static const char TestCharA = 'a';
111364750dSJames Henderson };
121364750dSJames Henderson enum TestEnum : int {
131364750dSJames Henderson   ENUM_POS = 2147000000,
141364750dSJames Henderson   ENUM_NEG = -2147000000,
151364750dSJames Henderson };
useConst(int)161364750dSJames Henderson void useConst(int) {}
main()171364750dSJames Henderson int main() {
181364750dSJames Henderson   useConst(TestPi);
191364750dSJames Henderson   useConst(S::TestCharA);
201364750dSJames Henderson   useConst(ENUM_NEG); // DexLabel('stop')
211364750dSJames Henderson   return 0;
221364750dSJames Henderson }
231364750dSJames Henderson 
241364750dSJames Henderson // DexExpectWatchValue('TestPi', 3.140000104904175, on_line=ref('stop'))
251364750dSJames Henderson // DexExpectWatchValue('S::TestCharA', 97, on_line=ref('stop'))
261364750dSJames Henderson // DexExpectWatchValue('ENUM_NEG', -2147000000, on_line=ref('stop'))
271364750dSJames Henderson /* DexExpectProgramState({'frames': [{
281364750dSJames Henderson                'location': {'lineno' : ref('stop')},
291364750dSJames Henderson                'watches': {'ENUM_POS' : {'is_irretrievable': True}}
301364750dSJames Henderson }]}) */
31