1 // Compile with "cl /c /Zi /GR- symbolformat.cpp"
2 // Compile symbolformat-fpo.cpp (see file for instructions)
3 // Link with "link symbolformat.obj symbolformat-fpo.obj /debug /nodefaultlib
4 // /entry:main /out:symbolformat.exe"
6 int __cdecl
_purecall(void) { return 0; }
13 enum class TestEnumClass
{
19 virtual void PureFunc() = 0 {}
20 virtual void VirtualFunc() {}
27 struct B
: public A
, protected virtual VirtualBase
{
28 void PureFunc() override
{}
37 typedef int NestedTypedef
;
39 NestedEnum m_nested_enum
;
40 NestedTypedef m_typedef
;
47 unsigned long m_unsigned_long
;
49 unsigned __int64 m_unsigned_int64
;
52 void (*m_pfn_2_args
)(int, double);
53 int m_multidimensional_array
[2][3];
60 void *g_global_pointer
= nullptr;
62 typedef int int_array
[3];
63 int_array g_array
= { 1, 2, 3 };
64 int_array
*g_pointer_to_array
= &g_array
;
65 const int *g_pointer_to_const_int
= nullptr;
66 int * const g_const_pointer_to_int
= nullptr;
67 const int * const g_const_pointer_to_const_int
= nullptr;
69 int main(int argc
, char **argv
) {
70 // Force symbol references so the linker generates debug info
73 auto PureAddr
= &B::PureFunc
;
74 auto VirtualAddr
= &A::PureFunc
;
75 auto RegularAddr
= &A::RegularFunc
;
76 TestEnum Enum
= Value
;
77 TestEnumClass EnumClass
= TestEnumClass::Value10
;
79 ClassAType
*ClassA
= &b
;