From d98d6b56d9f0f05fbca243f148ee50c457d57ab9 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 27 May 2026 09:56:05 -0700 Subject: [PATCH] check in test input binaries, adjust torture test data path --- .../mule_main_9ff1e58f/inline_body.cpp | 8 + data/test_inputs/mule_main_9ff1e58f/mule_c.c | 126 + data/test_inputs/mule_main_9ff1e58f/mule_c.h | 10 + .../mule_main_9ff1e58f/mule_inline.cpp | 64 + .../mule_main_9ff1e58f/mule_main.cpp | 3270 +++++++++++++++++ .../mule_main_9ff1e58f/mule_main.pdb | 3 + .../mule_main_9ff1e58f/mule_main.rdi | 3 + .../mule_main_9ff1e58f/mule_main_9ff1e58f.exe | 3 + .../mule_main_9ff1e58f/mule_module.cpp | 60 + .../mule_main_9ff1e58f/mule_module.dll | Bin 0 -> 667648 bytes .../mule_main_9ff1e58f/mule_module.pdb | 3 + .../mule_main_9ff1e58f/mule_module.rdi | 3 + .../mule_main_9ff1e58f/mule_o2.cpp | 119 + src/torture/torture.c | 2 +- 14 files changed, 3673 insertions(+), 1 deletion(-) create mode 100644 data/test_inputs/mule_main_9ff1e58f/inline_body.cpp create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_c.c create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_c.h create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_inline.cpp create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_main.cpp create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_main.pdb create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_main.rdi create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_main_9ff1e58f.exe create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_module.cpp create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_module.dll create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_module.pdb create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_module.rdi create mode 100644 data/test_inputs/mule_main_9ff1e58f/mule_o2.cpp diff --git a/data/test_inputs/mule_main_9ff1e58f/inline_body.cpp b/data/test_inputs/mule_main_9ff1e58f/inline_body.cpp new file mode 100644 index 00000000..12514c38 --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/inline_body.cpp @@ -0,0 +1,8 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +bias = (bias^x)&7; +x -= bias; +x *= 2; +x *= x; +x += bias; \ No newline at end of file diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_c.c b/data/test_inputs/mule_main_9ff1e58f/mule_c.c new file mode 100644 index 00000000..286ad44d --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_c.c @@ -0,0 +1,126 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +/* +* Program to run in debugger organized to provide tests for +* single threaded stepping, breakpoints, evaluation. +*/ + +//////////////////////////////// +// NOTE(allen): Complex Types + +#include + +void +c_type_coverage_eval_tests(void){ +#if _WIN32 + _Fcomplex x = _FCbuild(0.f, 1.f); + _Dcomplex y = _Cbuild(0.f, -1.f); + +#else + float complex x = 0.f + 1.f*I; + double complex y = 0.0 - 1.0*I; + +#endif +} + +//////////////////////////////// +// NOTE(allen): Reuse Type Names From Another Module + +#include + +typedef struct Basics{ + double a; + float b; + unsigned long long c; + long long d; + unsigned int e; + int f; + unsigned short g; + short h; + unsigned char i; + char j; + + int z; +} Basics; + +typedef struct Basics_Stdint{ + double x1; + float x2; + uint64_t x3; + int64_t x4; + uint32_t x5; + int32_t x6; + uint16_t x7; + int16_t x8; + uint8_t x9; + int8_t x0; +} Basics_Stdint; + +typedef struct Pair{ + int i; + float f; +} Pair; + +void +c_versions_of_same_types(void){ + Basics basics = { 1.5f, 1.50000000000001, -1, 1, -2, 2, -4, 4, -8, 8, }; + Basics_Stdint basics_stdint = { 1.5f, 1.50000000000001, -1, 1, -2, 2, -4, 4, -8, 8, }; + Pair memory_[] = { + {100, 1.f}, + {101, 2.f}, + {102, 4.f}, + {103, 8.f}, + {104, 16.f}, + {105, 32.f}, + }; + + int x = memory_[3].i + basics.f; +} + +//////////////////////////////// +//~ NOTE(rjf): Bitfields + +typedef struct TypeWithBitfield TypeWithBitfield; +struct TypeWithBitfield +{ + int v : 14; + int w : 4; + int x : 32; + int y : 4; + int z : 10; +}; + +typedef struct BitfieldType64 BitfieldType64; +struct BitfieldType64 +{ + uint64_t size : 63; + uint64_t is_free : 1; +}; + +static int mut_xarray[4] = {100, 101, 102, 103}; +static float mut_farray[4] = {100.5f, 101.5f, 102.5f, 103.5f}; + +void +c_type_with_bitfield_usage(void) +{ + TypeWithBitfield b = {0}; + b.v = 100; + b.w = 6; + b.x = 434512; + b.y = 7; + b.z = 12; + int x = (b.v + b.x); + int y = (b.y - b.z); + int z = (b.w) + 5; + BitfieldType64 b64 = {0}; + b64.size = 524288; + b64.is_free = 1; + int abc = mut_xarray[0]; + mut_xarray[0] += 1; + abc += mut_xarray[0]; + abc += mut_xarray[1]; + abc += mut_xarray[2]; + float f = mut_farray[0] + mut_farray[1] + mut_farray[2] + mut_farray[3]; + int w = 0; +} diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_c.h b/data/test_inputs/mule_main_9ff1e58f/mule_c.h new file mode 100644 index 00000000..2a9c8bb8 --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_c.h @@ -0,0 +1,10 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +/* +* Program to run in debugger organized to provide tests for +* single threaded stepping, breakpoints, evaluation. +*/ + +void c_type_coverage_eval_tests(void); +void c_type_with_bitfield_usage(void); \ No newline at end of file diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_inline.cpp b/data/test_inputs/mule_main_9ff1e58f/mule_inline.cpp new file mode 100644 index 00000000..d9a0ad11 --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_inline.cpp @@ -0,0 +1,64 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +/* +** Make sure we have an inlined function +*/ + +#if defined(_MSC_VER) +# define FORCE_INLINE __forceinline +#elif defined(__clang__) || defined(__GNUC__) +# define FORCE_INLINE __attribute__((always_inline)) +#else +# error need force inline for this compiler +#endif + +//////////////////////////////// +// NOTE(allen): Inline Stepping + +unsigned int fixed_frac_bits = 5; +static unsigned int bias = 7; + +static FORCE_INLINE unsigned int +fixed_mul(unsigned int a, unsigned int b){ + unsigned int c = (((a - bias)*(b - bias)) >> fixed_frac_bits) + bias; + return(c); +} + +static FORCE_INLINE unsigned int +multi_file_inlinesite(unsigned int x){ + // force compiler to generate annotations for code that's inside another file +#include "inline_body.cpp" + return x >> fixed_frac_bits; +} + +static unsigned int test_value = 0; + +unsigned int +inline_stepping_tests(void){ + bias = 15; + + // NOTE(nick): Interesting that CL does not generate inline site symbols in order of apperance here unlike clang. + + // CL: + // BinaryAnnotations: CodeLengthAndCodeOffset d 0 + // BinaryAnnotation Length: 4 bytes (1 bytes padding) + // + // Clang: + // BinaryAnnotations: LineOffset 1 CodeLength d + // BinaryAnnotation Length: 4 bytes (0 bytes padding) + unsigned int x = fixed_mul(5001, 7121); + + // CL: + // BinaryAnnotations: CodeOffsetAndLineOffset d File 0 CodeOffsetAndLineOffset 22 LineOffset 1e + // CodeLengthAndCodeOffset 2 3 + // BinaryAnnotation Length: 12 bytes (1 bytes padding) + // + // Clang: + // BinaryAnnotations: File 18 LineOffset ffffffe6 CodeOffset d CodeOffsetAndLineOffset 22 + // File 0 LineOffset 1e CodeOffset 3 CodeLength 2 + // BinaryAnnotation Length: 16 bytes (0 bytes padding) + unsigned int z = multi_file_inlinesite(x); + return(z); +} + diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_main.cpp b/data/test_inputs/mule_main_9ff1e58f/mule_main.cpp new file mode 100644 index 00000000..69c9ba19 --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_main.cpp @@ -0,0 +1,3270 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +/* +** Program to run in debugger organized to provide tests for +** stepping, breakpoints, evaluation, cross-module calls. +*/ + +#if _WIN32 && _DEBUG +#pragma comment(linker, "/nodefaultlib:libcmt") +#pragma comment(lib, "libcmtd") +#endif + +#include +#include +#include +#include +#if !_WIN32 +# define RADDBG_MARKUP_STUBS +#endif +#define RADDBG_MARKUP_IMPLEMENTATION +#include "lib_raddbg_markup/raddbg_markup.h" + +//////////////////////////////// +// NOTE(allen): System For DLL Testing + +typedef void TestFunction(void); + +static void mule_init(void); +static TestFunction* mule_get_module_function(char *name); + +#if _WIN32 + +#include + +HMODULE mule_dll = 0; + +static void +mule_init(void){ + mule_dll = LoadLibraryA("mule_module.dll"); +} + +static TestFunction* +mule_get_module_function(char *name){ + TestFunction *result = (TestFunction*)GetProcAddress(mule_dll, name); + return(result); +} + +#else + +static void +mule_init(void){ + // TODO(allen): implement +} + +static TestFunction* +mule_get_module_function(char *name){ + // TODO(allen): implement + return(0); +} + +#endif + + +//////////////////////////////// +// NOTE(nick): Entry Point + +int +mule_main(int argc, char **argv); + +#if _WIN32 +#include +#include +int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){ + int argc = __argc; + char **argv = __argv; + int result = mule_main(argc, argv); + return(result); +} +#else +int main(int argc, char **argv){ + return(mule_main(argc, argv)); +} +#endif + +//////////////////////////////// +// NOTE(nick): BSS section test + +#if defined(__clang__) +# pragma clang section bss="muleBSS" +#elif defined(_MSC_VER) +// NOTE(nick): clang-cl is borken it allocates memory and sets Initialized Flag on the seciton. +// This is was reported by Jeff => https://bugs.llvm.org/show_bug.cgi?id=47939 +// +// This is still unresolved, last checked Sep 11, 2023. +# pragma bss_seg("muleBSS") +#else +# error "bss not defined" +#endif +char global_variable_in_bss[4096*10000]; + +//////////////////////////////// +// NOTE(allen): Inline Stepping (Built In Separate Unit) + +extern unsigned int fixed_frac_bits; +unsigned int inline_stepping_tests(void); + + +//////////////////////////////// +// NOTE(rjf): -O2 Optimized Code (Built In Separate Unit) + +void optimized_build_eval_tests(void); +void optimized_struct_parameters_eval_tests(void); + +//////////////////////////////// +// NOTE(allen): Type Coverage Eval + +#include + +struct Basics +{ + char a; + unsigned char b; + short c; + unsigned short d; + int e; + unsigned int f; + long long g; + unsigned long long h; + float i; + double j; + int z; +}; + +struct Basics_Stdint +{ + int8_t a; + uint8_t b; + int16_t c; + uint16_t d; + int32_t e; + uint32_t f; + int64_t g; + uint64_t h; + float i; + double j; +}; + +struct Pair +{ + int x; + float y; +}; + +struct Fixed_Array +{ + Pair pairs[10]; + int count; +}; + +struct Dynamic_Array +{ + Pair *pairs; + int count; +}; +raddbg_type_view(Dynamic_Array, slice($)); + +template +struct TemplatedDynamicArray +{ + T *v; + int count; +}; +raddbg_type_view(TemplatedDynamicArray, rows($, count, array(v, count))); + +template +struct OpaqueTemplatedDynamicArray +{ + void *v; + int count; +}; +raddbg_type_view(OpaqueTemplatedDynamicArray, array(cast(type *)v, count)); + +struct Struct_With_Embedded_Arrays +{ + int x; + float y; + Pair pairs[10]; + char z; +}; + +typedef unsigned int Custom_Index_Type; + +typedef void Function_No_Params_Type(void); +typedef void Function_Few_Params_Type(Pair *pairs, int count, Function_No_Params_Type *no_params_type); + +static Function_No_Params_Type *ty_no_params = 0; +static Function_Few_Params_Type *ty_few_params = 0; + +struct Callback{ + Function_Few_Params_Type *few_params; + Function_No_Params_Type *no_params; + Pair pair; +}; + +union Vector_R2 +{ + struct + { + float x; + float y; + }; + float v[2]; +}; +raddbg_type_view(Vector_R2, rows($, x, y)); + +typedef union Matrix4x4F32 Matrix4x4F32; +union Matrix4x4F32 +{ + float elements[4][4]; +}; +raddbg_type_view(Matrix4x4F32, columns($.elements, $[0], $[1], $[2], $[3])); + +union PackedF16 +{ + uint16_t v; + struct + { + uint16_t mantissa : 10; + uint16_t exponent : 5; + uint16_t sign : 1; + }; +}; +raddbg_type_view(PackedF16, + exponent == 0 ? (0.00006103515625f*mantissa/1024.f) : + (exponent == 31 && mantissa == 0 && sign == 1) ? "-infinity" : + (exponent == 31 && mantissa == 0 && sign == 1) ? "+infinity" : + (exponent == 31) ? "NaN" : + (exponent < 15) ? (1.f/(1<<(15 - exponent)) * (sign * -2 + 1.f) * (1.f + mantissa/1024.f)) : + (exponent > 15) ? ((1<<(exponent-15)) * (sign * -2 + 1.f) * (1.f + mantissa/1024.f)) : + ((sign * -2 + 1) * 1.f + mantissa/1024.f)); + +enum Kind +{ + Kind_Negative = -1, + Kind_None, + Kind_First, + Kind_Second, + Kind_Third, + Kind_Fourth, + Kind_COUNT, +}; + +enum Flag +{ + Flag_None = 0, + Flag_First = 1, + Flag_Second = 2, + Flag_Third = 4, + Flag_Fourth = 8, + Flag_AllMoreNarrow = 0xFF, + Flag_AllNarrow = 0xFFFF, + Flag_All = 0xFFFFFFFF, +}; + +struct Has_Enums +{ + Kind kind; + Flag flags; +}; + +struct Discriminated_Union +{ + Kind kind; + union + { + struct + { + int x; + int y; + Vector_R2 vector; + } first; + Pair second; + struct + { + Function_Few_Params_Type *few_params; + Pair pairs[4]; + } third; + struct + { + Kind sub_kind; + Flag flags; + } fourth; + }; +}; +raddbg_type_view(Discriminated_Union, + kind == Kind.First ? first : + kind == Kind.Second ? second : + kind == Kind.Third ? third : + kind == Kind.Fourth ? fourth : + $); + +struct Crazy_Union +{ + Kind kind; + union + { + struct + { + int first_and_third__x; + int first_and_third__y; + int first_and_third__z; + } first_and_third; + struct + { + char *second__name; + Pair second__pairs[16]; + } second; + }; + union + { + struct + { + char *first__name; + int first__x; + } first; + struct + { + char *third__name; + Function_Few_Params_Type *third__few_params; + } third; + }; +}; +raddbg_type_view(Crazy_Union, + kind == Kind.First ? rows($, first_and_third, first) : + kind == Kind.Second ? rows($, second) : + kind == Kind.Third ? rows($, first_and_third, third) : + kind == Kind.Fourth ? kind : + $); + +struct Linked_List{ + Linked_List *next; + Linked_List *prev; + int x; +}; + +enum{ + Anonymous_A, + Anonymous_B, + Anonymous_C, + Anonymous_D, +}; + +typedef uint32_t SizedKind; +enum SizedKindEnum +{ + SizedKind_A, + SizedKind_B, + SizedKind_C, + SizedKind_D, +}; + +typedef Kind Alias1; +typedef Flag Alias2; +typedef Has_Enums Alias3; +typedef Discriminated_Union Alias4; + +struct Has_A_Pre_Forward_Reference{ + struct Gets_Referenced_Forwardly *pointer; +}; + +struct Gets_Referenced_Forwardly{ + int x; + int y; +}; + +struct Has_A_Post_Forward_Reference{ + struct Gets_Referenced_Forwardly value; +}; + +struct TypeWithMemberFunction +{ + int x; + int y; + int z; + char *name; + __declspec(noinline) void SetInfo(int _x, int _y, char *_name) + { + x = _x; + y = _y; + z = 0; + name = _name; + OutputDebugStringA("setting info\n"); + } +}; + +static void +no_params1(void){ + +} + +static void +few_params1(Pair *pairs, int count, Function_No_Params_Type *no_params_type){ + +} + +// +// NOTE(rjf): this doesn't work because MSVC - despite GENERATING DEBUG INFO +// FOR THE MyByte TYPEDEF - does not actually *reference* this typedef +// anywhere, and instead treats all `MyByte *`s as `char *`s, thus completely +// eliminating the point of the typedef and view. :( +// +typedef char MyByte; +raddbg_type_view(MyByte *, no_string($)); + +static void +variadic_params(char *fmt, ...) +{ + int x = 0; +} + +static void +type_coverage_eval_tests(void) +{ + Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + Basics_Stdint basics_stdint = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + + uint32_t a = (1<<31); + int32_t b = (1<<31); + + uint32_t abcd = 0xaabbccdd; + int64_t abcd64 = (int64_t)abcd; + + char string[] = "Hello World!"; + char longer_text[] = + "Suppose there was some text\n" + "With multiple lines in it\r\n" + "\t> What ways might it be rendered?\n" + "\t> How would it deal with line endings?\r\n"; + wchar_t a_wide_string[] = + L"This is a string, but instead of being encoded in a stream of bytes,\n" + L"it is encoded in a stream of 2-byte packages!\n"; + char some_data_with_a_string[] = + { + 'H', 'e', 'l', 'l', 'o', 27, 27, 2, 27, 125, + }; + struct SomeDataStructured + { + char data[4]; + }; + SomeDataStructured *some_data = (SomeDataStructured *)&some_data_with_a_string[0]; + char *string_ptr = &string[0]; + + const char *const_string = "Hello, World!"; + const char const_string_array[] = "Hello, World!"; + const char *const const_ptr_const_string = "Hello, World!"; + + MyByte *non_string_byte_ptr = "Hello, World!"; + + void *pointer = &basics; + Basics *pointer_to_basics = &basics; + Basics **pointer_to_pointer_to_basics = &pointer_to_basics; + + Fixed_Array fixed = + { + { + { 3, 4.f}, + { 5, 6.f}, + { 7, 8.f}, + { 9, 10.f}, + {11, 12.f}, + {13, 14.f}, + {15, 16.f}, + {17, 18.f}, + {19, 20.f}, + }, + 9 + }; + Pair memory_[] = + { + {100, 1.f}, + {101, 2.f}, + {102, 4.f}, + {103, 8.f}, + {104, 16.f}, + {105, 32.f}, + }; + Dynamic_Array dynamic = + { + memory_, + 6 + }; + + TemplatedDynamicArray templated_dynamic = {dynamic.pairs, dynamic.count}; + TemplatedDynamicArray templated_dynamics[] = + { + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + {dynamic.pairs, dynamic.count}, + }; + + OpaqueTemplatedDynamicArray otd = {dynamic.pairs, dynamic.count}; + + raddbg_pin(columns(sequence(6), fixed.pairs[$], memory_[$])); + raddbg_pin(basics); + raddbg_pin(fixed); + raddbg_pin(pointer); + raddbg_pin(dynamic); + + Struct_With_Embedded_Arrays swea = {0}; + { + swea.x = 4; + swea.y = 23.5f; + swea.pairs[0].x = 100; + swea.pairs[0].y = 123.f; + swea.pairs[2].x = 300; + swea.pairs[2].y = 323.f; + swea.pairs[5].x = 600; + swea.pairs[5].y = 623.f; + swea.z = 'z'; + } + + Struct_With_Embedded_Arrays *swea_ptr = &swea; + int access_via_ptr_member = swea_ptr->x; + + Custom_Index_Type custom_index = 42; + Custom_Index_Type more_custom_indices[] = { + 04,13,22,31,40 + }; + + Function_No_Params_Type *ptr_no_params = no_params1; + Function_No_Params_Type **ptr_ptr_no_params = &ptr_no_params; + Function_Few_Params_Type *ptr_few_params = few_params1; + Function_Few_Params_Type **ptr_ptr_few_params = &ptr_few_params; + Callback callback = {few_params1, no_params1, {1, 2.f}}; + + Matrix4x4F32 matrix = + { + { + {1.f, 0.f, 0.f, 0.f}, + {0.f, 1.f, 0.f, 0.f}, + {0.f, 0.f, 1.f, 0.f}, + {0.f, 0.f, 0.f, 1.f}, + } + }; + + Vector_R2 vector = {1.f, 2.f}; + + Has_Enums has_enums = {(Kind)4, (Flag)7}; + + struct EnumBitfields + { + Kind k1 : 4; + Kind k2 : 3; + Kind k3 : 1; + Kind k4 : 16; + }; + + EnumBitfields enum_bitfields = {}; + enum_bitfields.k1 = Kind_First; + enum_bitfields.k2 = Kind_Second; + enum_bitfields.k3 = Kind_None; + enum_bitfields.k4 = Kind_Fourth; + + Crazy_Union crazy_union = {}; + + crazy_union.kind = Kind_First; + crazy_union.kind = Kind_Second; + crazy_union.kind = Kind_Third; + crazy_union.kind = Kind_Fourth; + + Discriminated_Union discriminated_union = {}; + + discriminated_union.kind = Kind_First; + discriminated_union.first.x = 16; + discriminated_union.first.y = 8; + discriminated_union.first.vector.x = 4.f; + discriminated_union.first.vector.y = 2.f; + + discriminated_union.kind = Kind_Second; + discriminated_union.second.x = 123; + discriminated_union.second.y = 3.14f; + + discriminated_union.kind = Kind_Third; + discriminated_union.third.few_params = few_params1; + discriminated_union.third.pairs[0] = memory_[0]; + discriminated_union.third.pairs[1] = memory_[1]; + discriminated_union.third.pairs[2] = memory_[2]; + discriminated_union.third.pairs[3] = memory_[3]; + + discriminated_union.kind = Kind_Fourth; + discriminated_union.fourth.sub_kind = Kind_First; + discriminated_union.fourth.flags = (Flag)7; + + Linked_List list = {&list, &list, 0}; + + struct SLLNode + { + SLLNode *next; + SLLNode *the_real_next_ptr; + int x; + }; + SLLNode node6 = {0, 0, 6}; + SLLNode node5 = {0, &node6, 5}; + SLLNode node4 = {0, &node5, 4}; + SLLNode node3 = {0, &node4, 3}; + SLLNode node2 = {0, &node3, 2}; + SLLNode node1 = {0, &node2, 1}; + raddbg_pin(list(node1, the_real_next_ptr)); + + node6.next = &node1; + + Alias1 a1 = has_enums.kind; + Alias2 a2 = has_enums.flags; + Alias3 a3 = has_enums; + Alias4 a4 = discriminated_union; + + Has_A_Pre_Forward_Reference r1 = {0}; + Has_A_Post_Forward_Reference r2 = {0}; + + Basics &basics_ref = basics; + const Basics *basics_const_ptr = &basics; + const Basics &basics_const_ref = basics; + + union + { + int x; + char y[4]; + } integer_slicing = {123456789}; + + typedef struct stks + { + void *left; + size_t len; + } stks; + stks stks_test[256] = {0}; + stks *stks_first = &stks_test[0]; + stks *stks_ptr = stks_first + 8; + + TypeWithMemberFunction twmf = {0}; + twmf.SetInfo(123, 456, "foobar"); + + TestFunction *function = mule_get_module_function("dll_type_eval_tests"); + function(); + + int abc = 0; + for(int i = 0; i < 1000; i += 1) + { + if(i == 500) + { + abc+= 1; + } + int a = i + abc; + int b = a*5; + } + + char *names[] = + { + "samwise gamgee", "mithrandir", "grima wormtongue", "theodred", "theoden", "eomer", "eowyn", + "arwen", "sauron", "baggins", "proudfoot", "hardbottle", "bag end", "hobbiton", + "bree", "imladris", "isengard", "moria", "mount doom", "helm's deep", "bracegirdle", + "buckleberry ferry", "amun sul", "frodo", "bilbo", "buckland", "fangorn", "elrond", + "numenor", "treebeard", "shadowfax", "brego", "erod", "azufel", "dunedain", + "saruman", "aragorn", "gandalf", "meriadoc brandybuck", "peregrine took", "faramir", "boromir", + "ecthelion", "denethor", "mithrandil", "isildur", "haldir", "elessar", "elendil", + "dead marsh", "rohan", "gondor", "anarion", "earendil", "cirith ungol", "minas morghul", + "minas tirith", "barad-dur", "rivendell", "pellenor", "ithilien", "anduril", "narsil", + "edoras", "mordor", "osgiliath", + }; + + for(int i = 0; i < sizeof(names)/sizeof(names[0]); i += 1) + { + OutputDebugStringA(names[i]); + OutputDebugStringA("\n"); + } + + if(1) + { + OutputDebugStringA("this is inside a branch!\n"); + OutputDebugStringA("foo"); + OutputDebugStringA("bar"); + OutputDebugStringA("baz"); + } + + const int32_t x1 = 3; + const int32_t y1 = -10; + const int32_t z1 = x1 + y1; + + std::string small_cplusplus_string = "smallstr"; + std::string cplusplus_string = "This is a C++ string!"; + + std::vector int_vector; + int_vector.push_back(1); + int_vector.push_back(2); + int_vector.push_back(3); + int_vector.push_back(4); + int_vector.push_back(5); + int_vector.push_back(6); + int_vector.push_back(7); + +#if 0 + std::unordered_map people = + { + {"Peter", 1}, + {"Oliver", 2}, + {"Jack", 3}, + }; +#endif + + std::vector *pint_vector = &int_vector; + std::vector &rint_vector = int_vector; + + std::vector dynamic_array_vector; + dynamic_array_vector.push_back(dynamic); + dynamic_array_vector.push_back(dynamic); + dynamic_array_vector.push_back(dynamic); + dynamic_array_vector.push_back(dynamic); + + SizedKind sized_kind = SizedKind_C; + + int x = (int)(Anonymous_D); + + variadic_params("foo", 123, 456); +} + +//////////////////////////////// +// NOTE(allen): Mutating Variables Eval + +static const int con_some_constant = 4; +static const float con_some_constant_f = 0.04f; + +static int mut_x = 0; +static int mut_y; +static int mut_xarray[4] = {0, 1, 2, 3}; +static int *mut_xptr; + +static float mut_f = 0; +static float mut_g; +static float mut_farray[4] = {0.5f, 1.5f, 2.5f, 3.5f}; +static float *mut_fptr; + +static float mut_arrayarray[3][3]; + +static Linked_List mut_link; + +static void +mutate_in_function(int *array, int count){ + for (int i = 0; i < count; i += 1){ + array[i] += 1; + } + + for (int i = 0; i < 4; i += 1){ + mut_farray[i] += 1.f; + } +} + +static void +mutating_variables_eval_tests(void){ + //////////////////////////////// + // NOTE(allen): Basics + + int array_literal[10] = { + 10, 20, 30, 40, 50, 60, 70, 80, 90, + }; + + Basics struct_literal = { + -1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001, + }; + + array_literal[0] = struct_literal.e = 9; + + int x = mut_x; + int y = x + 10 + con_some_constant; + mut_y = y; + mut_xarray[0] += 0; + mut_xarray[1] += x; + mut_xarray[2] += y; + mut_xarray[3] += x + y; + + mut_xptr = &mut_xarray[2]; + + *mut_xptr -= (y - x)/2; + *(mut_xptr - 1) += 11; + + float f = mut_f + .333f + con_some_constant_f; + float g = f + 10.1f; + mut_g = g; + mut_farray[0] += 0.000001f; + mut_farray[1] += f; + mut_farray[2] += g; + mut_farray[3] += f + g; + + mut_fptr = &mut_farray[3]; + + *mut_fptr -= (g - f)*0.5f; + *(mut_fptr - 1) += 1.f; + + float a = 0.777f; + for (int i = 0; i < 3; i += 1){ + float b = a*a - 1.f; + for (int j = 0; j < 3; j += 1){ + mut_arrayarray[i][j] = b; + b += 0.111f; + } + a += 0.333f; + } + + //////////////////////////////// + // NOTE(allen): Changes in functions + + mutate_in_function(array_literal, 10); + + mutate_in_function(array_literal, 10); + + //////////////////////////////// + // NOTE(allen): Changes through pointers + + Basics basic = struct_literal; + Basics advanced = struct_literal; + + Basics *struct_pointer = &basic; + + basic.a += 1; + advanced.a += 1; + struct_pointer->a += 1; + + struct_pointer = &advanced; + + basic.b += 1; + advanced.b += 1; + struct_pointer->b += 1; + + Linked_List links[5]; + for (int i = 0; i < 5; i += 1){ + links[i].next = &links[i + 1]; + links[i].prev = &links[i - 1]; + links[i].x = i; + } + links[0].prev = 0; + links[4].next = &mut_link; + mut_link.prev = &links[4]; + mut_link.next = 0; + mut_link.x = 1000; + + Linked_List *link_ptr = links; + + link_ptr = link_ptr->next; + + link_ptr = &links[4]; + link_ptr = &mut_link; + + Linked_List sentinel = {0}; + sentinel.x = -1; + sentinel.next = &links[0]; + links[0].prev = &sentinel; + sentinel.prev = &mut_link; + mut_link.next = &sentinel; + + link_ptr = &sentinel; +} + +//////////////////////////////// +// NOTE(allen): Global Eval + +struct NestedNodeInner{ + unsigned int small0; + unsigned int small1; + unsigned int big0; + unsigned int big1; +}; + +struct NestedNodeOuter{ + NestedNodeOuter *next; + NestedNodeInner *inner_nodes; + unsigned int inner_node_count; +}; + +static void +nested_types_eval_tests(void){ + // doing some setup + NestedNodeOuter *outer1 = (NestedNodeOuter*)malloc(sizeof(NestedNodeOuter)); + NestedNodeOuter *outer2 = (NestedNodeOuter*)malloc(sizeof(NestedNodeOuter)); + NestedNodeOuter *outer3 = (NestedNodeOuter*)malloc(sizeof(NestedNodeOuter)); + + outer1->next = outer2; + outer2->next = outer3; + outer3->next = 0; + + outer1->inner_nodes = (NestedNodeInner*)malloc(sizeof(NestedNodeInner)*10); + outer1->inner_node_count = 10; + + outer2->inner_nodes = (NestedNodeInner*)malloc(sizeof(NestedNodeInner)*10); + outer2->inner_node_count = 10; + + outer3->inner_nodes = (NestedNodeInner*)malloc(sizeof(NestedNodeInner)*10); + outer3->inner_node_count = 10; + + for (unsigned int i = 0; i < 10; i += 1){ + outer1->inner_nodes[i].small0 = i; + outer1->inner_nodes[i].small1 = 2*i; + outer1->inner_nodes[i].big0 = 0xFFFFFF + 0xF*i; + outer1->inner_nodes[i].big1 = 0xFFFFFF + 0xFF*i; + + outer2->inner_nodes[i].small0 = 1 + i; + outer2->inner_nodes[i].small1 = 3*i; + outer2->inner_nodes[i].big0 = 0x1000000 + 0x10*i; + outer2->inner_nodes[i].big1 = 0x1000000 + 0x101*i; + + outer3->inner_nodes[i].small0 = 2 + i; + outer3->inner_nodes[i].small1 = 4*i; + outer3->inner_nodes[i].big0 = 0x8000000 + 0xF0*i; + outer3->inner_nodes[i].big1 = 0x8000000 + 0xF0F*i; + } + + // okay eval it here + int x = 0; +} + +//////////////////////////////// +// NOTE(rjf): Struct Parameters Eval + +static void +struct_parameter_helper(Basics basics) +{ + basics.a += 1; + basics.a += 1; + basics.a += 1; +} + +static void +struct_parameters_eval_tests(void) +{ + Basics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + struct_parameter_helper(basics); +} + +//////////////////////////////// +// NOTE(allen): Global Eval + +static int g_abc = 100; +static float g_xyz = 21.f; +static Alias1 g_kind = Kind_First; + +static void +complicated_global_mutation(int *x){ + *x = (int)g_xyz; +} + +static void +cross_unit_global_mutation(void){ + fixed_frac_bits = 10; +} + +static int +function_with_duplicate_local_statics(void) +{ + static char *l_abc = "foobar"; + static int l_xyz = 123; + static Kind l_kind = Kind_First; + int x = l_xyz + (int)(int64_t)(l_abc); + return x; +} + +static void +global_eval_tests(void) +{ + g_abc = 11*11; + g_xyz = (float)g_abc - 21.f; + + int z = g_abc; + complicated_global_mutation(&z); + + complicated_global_mutation(&g_abc); + + if (g_kind == Kind_First){ + g_abc -= 1; + g_kind = Kind_None; + } + + cross_unit_global_mutation(); + + static int l_abc = 200; + static float l_xyz = 42.f; + static Alias1 l_kind = Kind_Second; + + l_abc = g_abc*2; + l_xyz = g_xyz*2; + l_kind = (Alias1)(g_kind + 1); + + function_with_duplicate_local_statics(); +} + +//////////////////////////////// +// NOTE(allen): Return Eval + +static int +complicated_return_expression(void){ + int x = 171717; + return((x % 13) <= 5?(x % 19)*11:(x - 500)%200); +} + +static void +return_eval_tests(void){ + complicated_return_expression(); +} + +//////////////////////////////// +// NOTE(allen): TLS Eval + +#if _WIN32 +# define thread_var __declspec(thread) +#else +# define thread_var __thread +#endif + +thread_var int tls_a = 100; +thread_var int tls_b = 999; + +static void +tls_eval_tests(void){ + tls_a = (tls_a + tls_b)/2; + tls_b = tls_b - tls_a; + + TestFunction *dll_tls_eval_test = mule_get_module_function("dll_tls_eval_test"); + if (dll_tls_eval_test != 0){ + dll_tls_eval_test(); + } +} + +//////////////////////////////// +// NOTE(allen): Complicated Type Coverage Eval + +struct Complicated_Type_Members{ + int x600[2][2][2][2]; + int *x601[2][2][2][2]; + int (*x602)[2][2][2][2]; + int (*x603[2])[2][2][2]; + int (*(*x604[2])[2])[2][2]; + int (*(*(*x605[2])[2])[2])[2]; + + int (*x33[2])(void); + int (*x34[3])(void); + int (*x35[2][2])(void); + + int (*(*z33)(void))[2]; + int (*(*z34)(void))[3]; + int (*(*z35)(void))[2][2]; + + int (*(*f2)(void))(void); + int (*(*(*f3)(void))(void))(void); + int (*(*f4)(int))(void); + int (*(*f5)(void))(int); + int (*(*f6)(int))(int); + int (*(*(*f7_growing)(char))(short))(int); + int (*(*(*f7_shrinking)(int))(short))(char); +}; + +static void +complicated_type_coverage_tests(void){ + Complicated_Type_Members m = {0}; + + int x1 = {0}; + int *x2 = {0}; + int **x3 = {0}; + + int x4a[2] = {0}; + int *x4[2] = {0}; + int x5a[3] = {0}; + int *x5[3] = {0}; + int *x6[2][2] = {0}; + int (*x7)[2] = {0}; + int (*x8)[3] = {0}; + int (*x9)[2][2] = {0}; + + int x600[2][2][2][2] = {0}; + int *x601[2][2][2][2] = {0}; + int (*x602)[2][2][2][2] = {0}; + int (*x603[2])[2][2][2] = {0}; + int (*(*x604[2])[2])[2][2] = {0}; + int (*(*(*x605[2])[2])[2])[2] = {0}; + + int x606_growing [2][3][4][5] = {0}; + int x606_shrinking[5][4][3][2] = {0}; + + int (*(*(*x607_growing [2])[3])[4])[5] = {0}; + int (*(*(*x607_shrinking[5])[4])[3])[2] = {0}; + + int **x10[2] = {0}; + int **x11[3] = {0}; + int **x12[2][2] = {0}; + int *(*x13)[2] = {0}; + int *(*x14)[3] = {0}; + int *(*x15)[2][2] = {0}; + int **x16[2] = {0}; + int **x17[3] = {0}; + int **x18[2][2] = {0}; + + int (*y1[2])[2] = {0}; + int (*y2[3])[2] = {0}; + int (*y3[2][2])[2] = {0}; + int (*y4[2])[3] = {0}; + int (*y5[3])[3] = {0}; + int (*y6[2][2])[3] = {0}; + int (*y7[2])[2][2] = {0}; + int (*y8[3])[2][2] = {0}; + int (*y9[2][2])[2][2] = {0}; + + int (*x19)(void) = {0}; + int (*x20)(int) = {0}; + int (*x21)(int, int) = {0}; + int (*x22)(int*, int) = {0}; + int (*x23)(int**, int) = {0}; + int (*x24)(int**, int*) = {0}; + int (*x25)(int**, int**) = {0}; + + int *(*x26)(void) = {0}; + int *(*x27)(int) = {0}; + int *(*x28)(int, int) = {0}; + int *(*x29)(int*, int) = {0}; + int *(*x30)(int**, int) = {0}; + int *(*x31)(int**, int*) = {0}; + int *(*x32)(int**, int**) = {0}; + + int (*x33[2])(void) = {0}; + int (*x34[3])(void) = {0}; + int (*x35[2][2])(void) = {0}; + + int (*x36[2])(int) = {0}; + int (*x37[3])(int) = {0}; + int (*x38[2][2])(int) = {0}; + + int (*x39[2])(int, int) = {0}; + int (*x40[3])(int, int) = {0}; + int (*x41[2][2])(int, int) = {0}; + + int (*x42[2])(int*, int) = {0}; + int (*x43[3])(int*, int) = {0}; + int (*x44[2][2])(int*, int) = {0}; + + int (*x45[2])(int**, int) = {0}; + int (*x46[3])(int**, int) = {0}; + int (*x47[2][2])(int**, int) = {0}; + + int (*x48[2])(int**, int*) = {0}; + int (*x49[3])(int**, int*) = {0}; + int (*x50[2][2])(int**, int*) = {0}; + + int (*x51[2])(int**, int**) = {0}; + int (*x52[3])(int**, int**) = {0}; + int (*x53[2][2])(int**, int**) = {0}; + + int (*(*z33)(void))[2] = {0}; + int (*(*z34)(void))[3] = {0}; + int (*(*z35)(void))[2][2] = {0}; + + int (*(*z36)(int))[2] = {0}; + int (*(*z37)(int))[3] = {0}; + int (*(*z38)(int))[2][2] = {0}; + + int (*(*z39)(int, int))[2] = {0}; + int (*(*z40)(int, int))[3] = {0}; + int (*(*z41)(int, int))[2][2] = {0}; + + int (*(*z42)(int*, int))[2] = {0}; + int (*(*z43)(int*, int))[3] = {0}; + int (*(*z44)(int*, int))[2][2] = {0}; + + int (*(*z45)(int**, int))[2] = {0}; + int (*(*z46)(int**, int))[3] = {0}; + int (*(*z47)(int**, int))[2][2] = {0}; + + int (*(*z48)(int**, int*))[2] = {0}; + int (*(*z49)(int**, int*))[3] = {0}; + int (*(*z50)(int**, int*))[2][2] = {0}; + + int (*(*z51)(int**, int**))[2] = {0}; + int (*(*z52)(int**, int**))[3] = {0}; + int (*(*z53)(int**, int**))[2][2] = {0}; + + int (*(*z303[2])(void)) = {0}; + int (*(*z304[3])(void)) = {0}; + int (*(*z305[2][2])(void)) = {0}; + + int (*(*z306[2])(int)) = {0}; + int (*(*z307[3])(int)) = {0}; + int (*(*z308[2][2])(int)) = {0}; + + int (*(*z309[2])(int, int)) = {0}; + int (*(*z400[3])(int, int)) = {0}; + int (*(*z401[2][2])(int, int)) = {0}; + + int (*(*z402[2])(int*, int)) = {0}; + int (*(*z403[3])(int*, int)) = {0}; + int (*(*z404[2][2])(int*, int)) = {0}; + + int (*(*z405[2])(int**, int)) = {0}; + int (*(*z406[3])(int**, int)) = {0}; + int (*(*z407[2][2])(int**, int)) = {0}; + + int (*(*z408[2])(int**, int*)) = {0}; + int (*(*z409[3])(int**, int*)) = {0}; + int (*(*z500[2][2])(int**, int*)) = {0}; + + int (*(*z501[2])(int**, int**)) = {0}; + int (*(*z502[3])(int**, int**)) = {0}; + int (*(*z503[2][2])(int**, int**)) = {0}; + + int (*(*f2)(void))(void) = {0}; + int (*(*(*f3)(void))(void))(void) = {0}; + int (*(*f4)(int))(void) = {0}; + int (*(*f5)(void))(int) = {0}; + int (*(*f6)(int))(int) = {0}; + int (*(*(*f7_growing)(char))(short))(int) = {0}; + int (*(*(*f7_shrinking)(int))(short))(char) = {0}; + + int (*f8)(int (*)(void)) = {0}; + int (*f9)(void (*)(int)) = {0}; + void (*f10)(int (*)(int)) = {0}; + int (*f11)(int, int (*)(void)) = {0}; + int (*f12)(int (*)(void), int) = {0}; + int (*f13)(int (*)(void), int (*)(void)) = {0}; + + int (*f14)(int (*)(void)) = {0}; + int (*f15)(int (*)(int (*)(void))) = {0}; + int (*f16)(int (*)(int (*)(int (*)(void)))) = {0}; + int (*f17)(int (*)(int (*)(int (*)(int (*)(void))))) = {0}; + + int (*f18)(int (*)(void)) = {0}; + int (*f19)(int (*(*)(void))(void)) = {0}; + int (*f20)(int (*(*(*)(void))(void))(void)) = {0}; + int (*f21)(int (*(*(*(*)(void))(void))(void))(void)) = {0}; + + int (*(*(*(*f22)(void))(void))(void))(void) = {0}; + int (*(*(*(*f23)(int [2]))(void))(void))(void) = {0}; + int (*(*(*(*f24)(int *[2]))(int [3]))(void))(void) = {0}; + int (*(*(*(*f25)(int (*)[2]))(int *[3]))(int [4]))(void) = {0}; + int (*(*(*(*f26)(int **(**)[2]))(int (*)[3]))(int *[4]))(int [5]) = {0}; + + int x = 0; +} + +//////////////////////////////// +// NOTE(allen): Extended Type Coverage Eval + +template +struct Template_Example{ + X x; + int y; +}; + +template +struct Template_Example2{ + X x; + Y y; +}; + +template +struct Template_Example3{ + X x; + Y y; + Template_Example3(X x, Y y) + { + this->x = x; + this->y = y; + } + ~Template_Example3() + { + int x = 2; + int y = 5; + int z = x + y; + } +}; + +struct SingleInheritanceBase +{ + int x; + int y; +}; + +struct SingleInheritanceDerived : SingleInheritanceBase +{ + int z; + int w; +}; + +struct Has_Members{ + int a; + int b; + uint64_t c; + uint64_t d; + Basics bas; + + int w(void){ return a; } + int x(void){ return b; } + uint64_t y(void){ return c; } + uint64_t z(void){ return d; } + Basics bas_f(void){ return bas; } +}; + +struct Has_Static_Members{ + int a; + int b; + static uint64_t c; + static uint64_t d; + + int w(void){ return a; } + int x(void){ return b; } + static uint64_t y(void){ return c; } + static uint64_t z(void){ return d; } +}; + +uint64_t Has_Static_Members::c = 0; +uint64_t Has_Static_Members::d = 0; + +struct Pointer_To_Member{ + int Has_Members::*member_ptr_int; + uint64_t Has_Members::*member_ptr_u64; + Basics Has_Members::*member_ptr_bas; + + int (Has_Members::*method_ptr_int)(void); + uint64_t (Has_Members::*method_ptr_u64)(void); + Basics (Has_Members::*method_ptr_bas)(void); +}; + +struct Has_Sub_Types{ + struct Sub_Type1{ + int x; + int y; + }; + + struct Sub_Type2{ + float x; + float y; + }; + + Sub_Type1 a; + Sub_Type2 b; +}; + +struct Conflicting_Type_Names{ + struct Sub_Type1{ + uint64_t z; + }; + + struct Sub_Type2{ + int64_t z; + }; + + Sub_Type1 a; + Sub_Type2 b; +}; + +struct Has_Private_Sub_Types{ + Has_Private_Sub_Types(char x1, char y1, + float x2, int y2, + int x3, float y3){ + this->a.x = x1; + this->a.y = y1; + this->b.x = x2; + this->b.y = y2; + this->c.x = x3; + this->c.y = y3; + } + + struct Public_Sub_Type{ + char x; + char y; + }; + Public_Sub_Type a; + + protected: + struct Protected_Sub_Type{ + float x; + int y; + }; + Protected_Sub_Type b; + + private: + struct Private_Sub_Type{ + int x; + float y; + }; + Private_Sub_Type c; +}; + +struct Vtable_Parent{ + virtual void a_virtual_function(void) = 0; + virtual void b_virtual_function(void) = 0; + virtual void c_virtual_function(void) = 0; + + void a_virtual_function(int r){ + for (int i = 0; i < r; i += 1){ + a_virtual_function(); + } + } +}; + +struct Vtable_Child : Vtable_Parent{ + int x; + int y; + + Vtable_Child(int a, int b){ + x = a; + y = b; + } + virtual void a_virtual_function(void){ + x = 0; + }; + virtual void b_virtual_function(void){ + y = 0; + }; + virtual void c_virtual_function(void){ + x = y; + }; +}; + +struct Vinheritance_Base{ + int x; + int y; + + virtual void a_virtual_function(void){ + x = 0; + }; + virtual void b_virtual_function(void){ + y = 0; + }; + virtual void x_virtual_function(void){ + y = x; + }; +}; + +struct Vinheritance_MidLeft : virtual Vinheritance_Base{ + float left; + + virtual void c1_virtual_function(void){ + left = 0; + }; + virtual void c2_virtual_function(void){ + left = 0; + }; +}; + +struct Vinheritance_MidRight : virtual Vinheritance_Base{ + float right; + + virtual void d_virtual_function(void){ + right = 0; + }; +}; + +struct Vinheritance_Child : Vinheritance_MidLeft, Vinheritance_MidRight{ + char *name; + + virtual void a_virtual_function(void){ + x = 1; + }; + virtual void c1_virtual_function(void){ + left = 1; + }; +}; + +struct Minheritance_Base{ + int x; + int y; +}; + +struct Minheritance_MidLeft : Minheritance_Base{ + float left; +}; + +struct Minheritance_MidRight : Minheritance_Base{ + float right; +}; + +struct Minheritance_Child : Minheritance_MidLeft, Minheritance_MidRight{ + char *name; +}; + +struct Pure +{ + virtual ~Pure() = default; + virtual void Foo() = 0; +}; + +struct PureChild : Pure +{ + virtual ~PureChild() = default; + virtual void Foo() {a += 1;} + double a = 0; +}; + +struct Base +{ + int x; + int y; + int z; + Base(){x = 1; y = 2; z = 3;} + virtual ~Base() = default; + virtual void Foo() = 0; +}; + +struct Derived : Base +{ + int r; + int g; + int b; + int a; + virtual ~Derived() = default; + virtual void Foo() + { + x += 1; + y += 1; + y += 1; + z += 1; + z += 1; + z += 1; + a += 1; + a += 1; + a += 1; + a += 1; + } +}; + +struct DerivedA : Base +{ + float a; + float b; + DerivedA() {a = 123.f; b = 123.f;} + virtual void Foo() {a += 1;} + virtual ~DerivedA() = default; +}; + +struct DerivedB : Base +{ + double c; + double d; + DerivedB() {c = 123.0; d = 123.0;} + virtual void Foo() {c += 1;} + virtual ~DerivedB() = default; +}; + +struct NonVirtualBase +{ + int x; + int y; + int z; +}; + +struct NonVirtualDerived : NonVirtualBase +{ + int r; + int g; + int b; + int a; +}; + +struct OverloadedMethods{ + int x; + int cool_method(void){ + return(x); + } + int cool_method(int z){ + int r = x; + x = z; + return(r); + } + void cool_method(int y, int z){ + if (x < z){ + x = y; + } + else{ + x = z; + } + } +}; + +struct HasStaticConstMembers +{ + int a; + int b; + static int c; + static int d; + static const int e = 789; + static const int f = 101112; +}; + +int HasStaticConstMembers::c = 123; +int HasStaticConstMembers::d = 456; + +struct Has_A_Constructor{ + int n; + int d; + Has_A_Constructor(int a, int b){ + int gcd = 1; + { + int x = a; + int y = b; + if (x < y){ + y = a; + x = b; + } + for (;y > 0;){ + int z = x%y; + x = y; + y = z; + } + gcd = x; + } + n = a/gcd; + d = b/gcd; + } + + static int N; + static int D; + ~Has_A_Constructor(){ + int m = N*d + n*D; + int e = d*D; + N = m; + D = d; + } +}; + +int Has_A_Constructor::N = 0; +int Has_A_Constructor::D = 1; + +struct Constructor_Gotcha_Test{ + int x; + int y; + void Constructor_Gotcha(void){ + x = y = 0; + } +}; + +struct Has_A_Friend{ + friend struct Modifies_Other; + int get_x(void){ return x; } + int get_y(void){ return y; } + + private: + int x; + int y; +}; + +struct Modifies_Other{ + int x; + int y; + + void talk_to_friend(Has_A_Friend *other){ + other->x = y; + other->y = x; + } +}; + +namespace UserNamespace{ + namespace SubA{ + struct Foo{ + int x; + int y; + }; + }; + namespace SubB{ + struct Foo{ + float u; + float v; + }; + }; + + SubA::Foo foo_a = {10, 20}; + SubB::Foo foo_b = {0.1f, 0.05f}; + + static void namespaced_function(void){ + foo_a.x = (int)(foo_a.y*foo_b.u); + foo_b.v = (float)(foo_a.x*foo_b.v); + } +}; + +static void +call_with_pass_by_reference(int &x){ + x += 1; +} + +static void +call_with_pass_by_const_reference(const int &x){ + int y = x; +} + +static void +extended_type_coverage_eval_tests(void){ + //////////////////////////////// + // NOTE(allen): Extensions to base type system. + { + int x = 0; + const int *x_ptr = &x; + int *const x_cptr = &x; + + call_with_pass_by_reference(x); + + call_with_pass_by_const_reference(x); + } + + //////////////////////////////// + // NOTE(allen): Extensions to user defined types + { + Template_Example temp_f = {1.f, 2}; + Template_Example temp_v = {(void*)&temp_f, 2}; + Template_Example > temp_tf = {temp_f, 2}; + Template_Example2 temp_if = {2, 1.f}; + Template_Example3 temp3_if(2, 1.f); + Template_Example3 temp3_vi((void *)&temp3_if, 1.f); + Template_Example3> temp3_itif(123, temp_if); + + SingleInheritanceDerived sid; + sid.x = 123; + sid.y = 456; + sid.z = 789; + sid.w = 999; + + Pointer_To_Member pointer_to_member = { + &Has_Members::a, &Has_Members::c, &Has_Members::bas, + &Has_Members::x, &Has_Members::z, &Has_Members::bas_f, + }; + + Has_Static_Members has_static_members = { 10, 20 }; + Has_Static_Members::c = 100; + Has_Static_Members::d = 110; + has_static_members.x(); + has_static_members.y(); + has_static_members.z(); + has_static_members.w(); + + Has_Sub_Types has_sub_types = { + {100, 200}, + {.1f, .2f}, + }; + + Conflicting_Type_Names conflicting_type_names = { + {10}, {-20}, + }; + + Has_Private_Sub_Types has_private_sub_types(1, 2, 4, 8, 16, 32); + + Vtable_Child vtable_child(1, 2); + vtable_child.a_virtual_function(); + + Vinheritance_Child vinheritance_child; + vinheritance_child.name = "foobar"; + vinheritance_child.left = 10.5f; + vinheritance_child.right = 13.0f; + vinheritance_child.x = -1; + vinheritance_child.y = -1; + + Minheritance_Child minheritance_child; + minheritance_child.name = "foobar"; + minheritance_child.left = 10.5f; + minheritance_child.right = 13.0f; + minheritance_child.Minheritance_MidLeft::x = -1; + minheritance_child.Minheritance_MidLeft::y = -1; + minheritance_child.Minheritance_MidRight::x = +1; + minheritance_child.Minheritance_MidRight::y = +1; + + Pure *child = new PureChild(); + child->Foo(); + child->Foo(); + child->Foo(); + delete child; + + Base *derived = new Derived(); + derived->Foo(); + derived->Foo(); + derived->Foo(); + delete derived; + + NonVirtualBase *non_virtual_derived = new NonVirtualDerived(); + non_virtual_derived->x += 1; + non_virtual_derived->x += 1; + non_virtual_derived->x += 1; + + std::unique_ptr ridiculous_cplusplus_base_class = std::make_unique(); + + std::vector> ridiculous_cplusplus_array; + for(int i = 0; i < 1024; i += 1) + { + if((i & 1) == 1) + { + ridiculous_cplusplus_array.push_back(std::make_unique()); + } + else + { + ridiculous_cplusplus_array.push_back(std::make_unique()); + } + } + + Base *base_array[1024] = {0}; + for(int i = 0; i < sizeof(base_array)/sizeof(base_array[0]); i += 1) + { + if((i & 1) == 1) + { + base_array[i] = new DerivedA(); + } + else + { + base_array[i] = new DerivedB(); + } + } + + OverloadedMethods overloaded_methods; + { + overloaded_methods.x = 0; + int a = overloaded_methods.cool_method(); + overloaded_methods.cool_method(-10, 100); + int b = overloaded_methods.cool_method(100); + overloaded_methods.cool_method(b*2, a*2); + int c = overloaded_methods.cool_method(a + b); + int z = c; + } + + Has_A_Constructor construct_me(360, 25); + + Has_A_Friend has_a_friend; + + Modifies_Other modifies_other; + modifies_other.x = 57; + modifies_other.y = 66; + + modifies_other.talk_to_friend(&has_a_friend); + + int x = has_a_friend.get_x(); + int y = has_a_friend.get_y(); + int z = x; + + HasStaticConstMembers static_const_members = {0}; + static_const_members.a = 123 + HasStaticConstMembers::c * HasStaticConstMembers::e; + static_const_members.b = 456 + HasStaticConstMembers::d * HasStaticConstMembers::f; + } + + //////////////////////////////// + // NOTE(allen): Namespaces + { + UserNamespace::namespaced_function(); + } +} + +//////////////////////////////// +//~ rjf: Templated Function Eval Tests + +typedef struct TemplateArg TemplateArg; +struct TemplateArg +{ + int x; + int y; + int z; + float a; + float b; + float c; + char *name; +}; + +template static T +templated_factorial(T t) +{ + T result = t; + if(t > 1) + { + result *= templated_factorial(t-1); + } + return result; +} + +template static T +compute_template_arg_info(T t) +{ + int sum = t.x + t.y + t.z; + int size = sizeof(t); + float sum_f = t.a + t.b + t.c; + OutputDebugStringA(t.name); + return t; +} + +static void +templated_function_eval_tests(void) +{ + int int_factorial = templated_factorial(10); + float float_factorial = templated_factorial(10); + TemplateArg arg = {1, 2, 3, 4.f, 5.f, 6.f, "my template arg"}; + compute_template_arg_info(arg); + int x = 0; +} + +//////////////////////////////// +//~ NOTE(allen): C Type Coverage + +extern "C"{ +#include "mule_c.h" +} + +//////////////////////////////// +//~ rjf: Basic Inline Line Info Tests + +#if defined(_MSC_VER) +# define FORCE_INLINE __forceinline +#elif defined(__clang__) +# define FORCE_INLINE __attribute__((always_inline)) +#else +# error need force inline for this compiler +#endif + +static FORCE_INLINE void +basic_inlinee(int inlinee_param_x, int inlinee_param_y, int inlinee_param_z) +{ + OutputDebugStringA("A\n"); + OutputDebugStringA("B\n"); + OutputDebugStringA("C\n"); + OutputDebugStringA("D\n"); +} + +static void +basic_inline_tests(void) +{ + OutputDebugStringA("{\n"); + basic_inlinee(12, 34, 56); + OutputDebugStringA("}\n"); +} + +//////////////////////////////// +//~ rjf: Fancy Visualization Eval Tests + +struct PackedBits +{ + unsigned char b1 : 1; + unsigned char b2 : 1; + unsigned char b3 : 1; + unsigned char b4 : 1; + unsigned char b5 : 1; + unsigned char b6 : 1; +}; +raddbg_type_view(unsigned char : 1, bool($)); + +struct Bitmap +{ + unsigned char *base; + int width; + int height; +}; +raddbg_type_view(Bitmap, bitmap(base, width, height)); + +static unsigned int +mule_bswap_u32(unsigned int x) +{ + unsigned int result = (((x & 0xFF000000) >> 24) | + ((x & 0x00FF0000) >> 8) | + ((x & 0x0000FF00) << 8) | + ((x & 0x000000FF) << 24)); + return result; +} + +static void +fancy_viz_eval_tests(void) +{ + //- rjf: windows -> GetLastError +#if _WIN32 + DWORD error_code = 0; + SetLastError(1234); + error_code = GetLastError(); + SetLastError(4567); + error_code = GetLastError(); + (void)error_code; +#endif + + //- rjf: booleans (checkboxes) + bool bool1 = 0; raddbg_pin(bool1); + bool bool2 = 1; raddbg_pin(bool2); + bool bool3 = 0; raddbg_pin(bool3); + PackedBits packed_bits = {}; + packed_bits.b1 = 1; + packed_bits.b3 = 1; + packed_bits.b5 = 1; + + //- rjf: sliders + float slide1 = 500.f; raddbg_pin(range1(slide1, 0, 1000)); + double slide2 = 0.75; raddbg_pin(range1(slide2, 0, 1.0)); + int slide3 = 25; raddbg_pin(range1(slide3, 0, 100)); + + //- rjf: colors + float example_color_4f32[4] = {1.00f, 0.85f, 0.25f, 1.00f}; + unsigned int example_color_u32 = 0xff6f30ff; + struct {float r, g, b, a;} example_color_struct = {0.50f, 0.95f, 0.75f, 1.00f}; + int x0 = 0; + raddbg_pin(color(example_color_4f32)); + raddbg_pin(color(example_color_u32)); + raddbg_pin(color(example_color_struct)); + + //- rjf: multiline text + char *long_string = ("This is an example of some very long text with line breaks\n" + "in it. This is a very common kind of data which is inspected\n" + "in the debugger while programming, and it is often a pain\n" + "when it is poorly supported.\n"); + char *code_string = ("#include \n" + "\n" + "int main(int argc, char**argv)\n" + "{\n" + " printf(\"Hello, World!\\n\");\n" + " return 0;\n" + "}\n\n"); + int x1 = 0; + raddbg_pin(text(long_string)); + raddbg_pin(text(code_string, lang=c)); + raddbg_pin(disasm(fancy_viz_eval_tests)); + + //- rjf: programmatic memory annotations + void *some_block_of_memory = malloc(256); + memset(some_block_of_memory, 0x27, 256); + raddbg_annotate_vaddr_range(some_block_of_memory, 256, "test memory annotation"); + + //- rjf: half-floats + PackedF16 f16s[] = + { + {0x0001}, // ~0.000000059604645 + {0x03ff}, // ~0.000060975552 + {0x0400}, // ~0.00006103515625 + {0x3555}, // ~0.33325195 + {0x3bff}, // ~0.99951172 + {0x3c00}, // 1 + {0x3c01}, // 1.00097656 + {0x7bff}, // 65504, + {0x7c00}, // +inf + {0xfc00}, // -inf + }; + + //- rjf: table index lookups + struct + { + char *name; + int x; + int y; + int z; + } + nodes[] = + { + {"---", 1, 7, 3}, + {"---", 5, 4, 2}, + {"second", 12, 41, 22}, + {"---", 8, 9, 1}, + {"---", 1, 1, 1}, + {"first", 50, 50, 50}, + {"fourth", 7, 7, 7}, + {"---", 7, 12, 1}, + {"third", 27, 43, 41}, + {"---", 2, 17, 50}, + }; + int node_indices[] = + { + 5, 2, 8, 6 + }; + raddbg_pin(columns(node_indices, nodes[$])); + + //- rjf: bitmaps + unsigned int background_color = 0x00000000; + unsigned int main_color = 0xff2424ff; + unsigned int shine_color = 0xff5693ff; + unsigned int shadow_color = 0xff238faf; + unsigned int bg = mule_bswap_u32(background_color); + unsigned int cl = mule_bswap_u32(main_color); + unsigned int sn = mule_bswap_u32(shine_color); + unsigned int sh = mule_bswap_u32(shadow_color); + unsigned int pixels[] = + { + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, cl, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, cl, cl, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, cl, cl, bg, cl, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, cl, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, cl, cl, cl, bg, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, cl, sn, sn, cl, cl, cl, sh, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, sh, sn, cl, cl, cl, sh, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, sh, cl, cl, cl, sh, sh, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, sh, sh, sh, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, bg, + }; + raddbg_pin(bitmap(pixels, 18, 18)); + for(int i = 0; i < sizeof(pixels)/sizeof(pixels[0]); i += 1) + { + unsigned int r = pixels[i]&0x000000ff; + unsigned int a = pixels[i]&0xff000000; + pixels[i] = pixels[i]>>8; + pixels[i] &= ~0xffff0000; + pixels[i] |= (r<<16); + pixels[i] |= (a); + } + for(int i = 0; i < sizeof(pixels)/sizeof(pixels[0]); i += 1) + { + unsigned int r = pixels[i]&0x000000ff; + unsigned int a = pixels[i]&0xff000000; + pixels[i] = pixels[i]>>8; + pixels[i] &= ~0xffff0000; + pixels[i] |= (r<<16); + pixels[i] |= (a); + } + for(int i = 0; i < sizeof(pixels)/sizeof(pixels[0]); i += 1) + { + unsigned int r = pixels[i]&0x000000ff; + unsigned int a = pixels[i]&0xff000000; + pixels[i] = pixels[i]>>8; + pixels[i] &= ~0xffff0000; + pixels[i] |= (r<<16); + pixels[i] |= (a); + } + int x2 = 0; + + //- rjf: type-viewed bitmaps + Bitmap foo = {(unsigned char *)&pixels[0], 18, 18}; + raddbg_pin(foo); + + //- rjf: name collisions with debugger rules + Function_Few_Params_Type *raw = 0; + char *text = "some_important_text_here\n"; + Bitmap bitmap = foo; + int x3 = 0; + + //- rjf: 3D geometry + float vertex_data[] = // pos.x, pos.y, pos.z, nor.x, nor.y, nor.z, tex.u, tex.v, col.r, col.g, col.b, ... + { + -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 10.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 2.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 2.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 8.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 8.0f, 0.973f, 0.480f, 0.002f, + -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 10.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 2.0f, 10.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 8.0f, 10.0f, 0.973f, 0.480f, 0.002f, + 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, -1.0f, 10.0f, 10.0f, 0.973f, 0.480f, 0.002f, + 1.0f, 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 2.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 2.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 8.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 8.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 2.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 8.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 10.0f, 10.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 10.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 2.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 2.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 8.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 8.0f, 0.612f, 0.000f, 0.069f, + 1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 10.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 2.0f, 10.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 8.0f, 10.0f, 0.612f, 0.000f, 0.069f, + -1.0f, -1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 10.0f, 10.0f, 0.612f, 0.000f, 0.069f, + -1.0f, 1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 10.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 2.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 2.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 8.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 8.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 2.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 8.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -1.0f, -1.0f, -1.0f, 0.0f, 0.0f, 10.0f, 10.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 2.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 8.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 10.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, 0.6f, 0.0f, 1.0f, 0.0f, 2.0f, 2.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 0.6f, 0.0f, 1.0f, 0.0f, 8.0f, 2.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -0.6f, 0.0f, 1.0f, 0.0f, 2.0f, 8.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -0.6f, 0.0f, 1.0f, 0.0f, 8.0f, 8.0f, 0.000f, 0.254f, 0.637f, + -1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 10.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 2.0f, 10.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 8.0f, 10.0f, 0.000f, 0.254f, 0.637f, + 1.0f, 1.0f, -1.0f, 0.0f, 1.0f, 0.0f, 10.0f, 10.0f, 0.000f, 0.254f, 0.637f, + -1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 2.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 8.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 1.0f, -1.0f, -1.0f, 0.0f, -1.0f, 0.0f, 10.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -0.6f, 0.0f, -1.0f, 0.0f, 2.0f, 2.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -0.6f, 0.0f, -1.0f, 0.0f, 8.0f, 2.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 0.6f, 0.0f, -1.0f, 0.0f, 2.0f, 8.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 0.6f, 0.0f, -1.0f, 0.0f, 8.0f, 8.0f, 0.001f, 0.447f, 0.067f, + -1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 10.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 2.0f, 10.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 8.0f, 10.0f, 0.001f, 0.447f, 0.067f, + 1.0f, -1.0f, 1.0f, 0.0f, -1.0f, 0.0f, 10.0f, 10.0f, 0.001f, 0.447f, 0.067f, + -0.6f, 0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, -0.6f, -1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + -0.6f, 0.6f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.973f, 0.480f, 0.002f, + 1.0f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 1.0f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.897f, 0.163f, 0.011f, + 0.6f, 0.6f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 1.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, -0.6f, 1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + 0.6f, 0.6f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 1.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.612f, 0.000f, 0.069f, + -1.0f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, 0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, -0.6f, -0.6f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, 0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -1.0f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 0.6f, -0.6f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 0.127f, 0.116f, 0.408f, + -0.6f, 1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, 1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + 0.6f, 0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.000f, 0.254f, 0.637f, + -0.6f, -0.6f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -0.6f, -0.6f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, 0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -0.6f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, -0.6f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + -0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -0.6f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + 0.6f, -1.0f, 0.6f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.001f, 0.447f, 0.067f, + }; + unsigned int index_data[] = + { + 0, 1, 9, 9, 8, 0, 1, 2, 5, 5, 4, 1, 6, 7, 10, 10, 9, 6, 2, 3, 11, 11, 10, 2, + 12, 13, 21, 21, 20, 12, 13, 14, 17, 17, 16, 13, 18, 19, 22, 22, 21, 18, 14, 15, 23, 23, 22, 14, + 24, 25, 33, 33, 32, 24, 25, 26, 29, 29, 28, 25, 30, 31, 34, 34, 33, 30, 26, 27, 35, 35, 34, 26, + 36, 37, 45, 45, 44, 36, 37, 38, 41, 41, 40, 37, 42, 43, 46, 46, 45, 42, 38, 39, 47, 47, 46, 38, + 48, 49, 57, 57, 56, 48, 49, 50, 53, 53, 52, 49, 54, 55, 58, 58, 57, 54, 50, 51, 59, 59, 58, 50, + 60, 61, 69, 69, 68, 60, 61, 62, 65, 65, 64, 61, 66, 67, 70, 70, 69, 66, 62, 63, 71, 71, 70, 62, + 72, 73, 74, 74, 75, 72, 76, 77, 78, 78, 79, 76, 80, 81, 82, 82, 83, 80, 84, 85, 86, 86, 87, 84, + 88, 89, 90, 90, 91, 88, 92, 93, 94, 94, 95, 92, 96, 97, 98, 98, 99, 96, 100, 101, 102, 102, 103, 100, + 104, 105, 106, 106, 107, 104, 108, 109, 110, 110, 111, 108, 112, 113, 114, 114, 115, 112, 116, 117, 118, 118, 119, 116, + 120, 121, 122, 122, 123, 120, 124, 125, 126, 126, 127, 124, 128, 129, 130, 130, 131, 128, 132, 133, 134, 134, 135, 132, + 136, 137, 138, 138, 139, 136, 140, 141, 142, 142, 143, 140, 144, 145, 146, 146, 147, 144, 148, 149, 150, 150, 151, 148, + 152, 153, 154, 154, 155, 152, 156, 157, 158, 158, 159, 156, 160, 161, 162, 162, 163, 160, 164, 165, 166, 166, 167, 164, + }; + int count = (sizeof index_data/4); + float *vtx = vertex_data; + int vtx_size = sizeof vertex_data; + raddbg_pin(geo3d(index_data, count = count, vtx = vtx, vtx_size = vtx_size)); + int x4 = 0; +} + +//////////////////////////////// +//~ rjf: Markup Tests + +static void +markup_tests(void) +{ + int x = 0; + raddbg_add_breakpoint(&x, sizeof(x), 0, 1, 0); + for(int i = 0; i < 10000; i += 1) + { + if(i == 5000) + { + x += 1; + } + } + raddbg_remove_breakpoint(&x, sizeof(x), 0, 1, 0); +} + +//////////////////////////////// +//~ NOTE(allen): Function Overload Resolution + +static int +overloaded_function(float y){ + int r = (int)(y + 0.5f); + return(r); +} + +static int +overloaded_function(float y, int x){ + int r = overloaded_function(y) + x; + return(r); +} + +static int +overloaded_function(int x){ + float y = (float)x; + int r = overloaded_function(y, 1); + return(r); +} + +//////////////////////////////// +// NOTE(allen): Control Flow Stepping + +static void +control_flow_stepping_tests(void){ + { + int a = 1; + if (a < 1){ + a += 1; + } + if (a < 2){ + a += 2; + } + } + + { + int a = 1; + if (a < 1) + { + a += 1; + } + if (a < 2) + { + a += 2; + } + } + + { + int a = 1; + if (a < 1) + a += 1; + if (a < 2) + a += 2; + } + + { + int a = 1; + int b = 2; + if (a <= b){ + if (a == b){ + b += 1; + } + else{ + a += 1; + } + } + else{ + if (a%2){ + a = b; + } + else{ + a = b - 1; + } + } + } + + { + int a = 1; + int b = 2; + if (a <= b) + { + if (a == b) + { + b += 1; + } + else + { + a += 1; + } + } + else + { + if (a%2) + { + a = b; + } + else + { + a = b - 1; + } + } + } + + { + int a = 1; + int b = 2; + if (a <= b) + if (a == b) + b += 1; + else + a += 1; + else + if (a%2) + a = b; + else + a = b - 1; + } + + { + int x = 0; + for (int i = 0; i < 10; i += 1){ + x += i; + } + } + + { + int x = 0; + for (int i = 0; i < 10; i += 1) + { + x += i; + } + } + + { + int x = 0; + for (int i = 0; i < 10; i += 1) + x += i; + } + + { + int x = 0; + for (int i = 0; i < 10; i += 1) x += i; + } + + { + int a = 1; + for (;a < 10;){ + switch (a){ + case 0: case 1: case 2: + { + a += 2; + }break; + + default: + case 4: + case 5: + { + a += 1; + }break; + + case 6: a += 1; break; + case 7: a += 1; + case 8: + case 9: a += 1; + } + } + } + + { + int i = 0; + while (i < 5){ + i += 1; + } + + while (i < 10) + { + i += 1; + } + + while (i < 15) + i += 1; + + while (i < 20) i += 1; + } + + { + int i = 0; + do + { + i += 1; + } while (i < 10); + } + + { + int i = 17; + + check_again: + if (i <= 1) goto done; + if ((i&1) == 0) goto even_case; + + // odd_case: + i = 3*i + 1; + + even_case: + i /= 2; + goto check_again; + + done:; + } + + { + int x = 15; + label_same_line:; x -= 1; if(x > 0) { goto label_same_line; } else { goto end_label_same_line; } + } + end_label_same_line:; +} + +//////////////////////////////// +// NOTE(allen): Indirect Call/Jump Stepping Tests + +typedef int FunctionType(int); + +static int +function_foo(int a){ + if (a < 1){ + a += 1; + } + if (a < 2){ + a += 2; + } + return(a); +} + +static int +function_bar(int x){ + for (int i = 0; i < 10; i += 1){ + x += i; + } + return(x); +} + + +static void +indirect_call_jump_stepping_tests(void){ + int z = 1; + FunctionType *ptr = function_foo; + z = ptr(z); + if ((z & 1) == 0){ + ptr = function_bar; + } + z = ptr(z); + + switch (z&7){ + case 0: + { + z += 2; + ptr = function_bar; + }break; + + case 1: + { + z += 1; + ptr = function_bar; + }break; + + case 2: + { + z *= 2; + ptr = function_bar; + }break; + + case 3: + { + z -= 10; + ptr = function_foo; + }break; + + case 4: + { + z -= 5; + ptr = function_foo; + }break; + + case 5: + { + z = z ^ 0x10; + ptr = function_foo; + }break; + + case 6: + { + z = z & ~0x10; + ptr = function_foo; + }break; + + case 7: + { + z = z | 0x10; + ptr = function_foo; + }break; + } + + z = ptr(z); +} + +//////////////////////////////// +// NOTE(rjf): alloca (Variable-Width Stack Changes) Stepping Tests + +static void +alloca_stepping_tests(void) +{ + int x = 1; + int y = 3; + int z = 5; + +#if _WIN32 + int *mem = (int *)_alloca((x+y+z)*sizeof(int)); + mem[0] = x; + mem[1] = y; + mem[2] = z; +#else + int *mem = (int *)__builtin_alloca((x+y+z)*sizeof(int)); + mem[0] = x; + mem[1] = y; + mem[2] = z; +#endif +} + +//////////////////////////////// +// NOTE(allen): Overloaded Line Stepping + +static int +function_get_integer(void){ + return(1); +} + +static void +function_with_multiple_parameters(int x, int y){ + x += y; +} + +static int +recursive_single_line(int x){ return(x <= 1?0:x + recursive_single_line(x/2)); } + +static int shared_1(int x) { return(x); } static int shared_2(int x) { return(1 + shared_1(x)); } + +static void +overloaded_line_stepping_tests(void){ + function_with_multiple_parameters(function_get_integer(), function_get_integer()); + function_with_multiple_parameters(function_get_integer(), function_get_integer()); + function_with_multiple_parameters(function_get_integer(), function_get_integer()); + + recursive_single_line(50); + recursive_single_line(50); + recursive_single_line(50); + + shared_2(5); + shared_2(5); + shared_2(5); + + function_get_integer(); shared_1(1); shared_1(2); + + if ((shared_2(10) && shared_2(-1)) || + shared_2(function_get_integer())){ + int x = 0; + } + else{ + int y = 0; + } +} + +//////////////////////////////// +// NOTE(allen): Long Jump Stepping + +#include + +static jmp_buf global_jump_buffer; +static int global_jump_x; + +static void +long_jump_from_function(void){ + int spin = 0; + for (; spin < 5; spin += 1); + longjmp(global_jump_buffer, 2); + global_jump_x = spin; +} + +static void +long_jump_wrapped_in_function(void){ + global_jump_x = 0; + int val = setjmp(global_jump_buffer); + if (val == 0){ + global_jump_x = 1; + longjmp(global_jump_buffer, 1); + } + else if (val == 1){ + if (global_jump_x == 1){ + global_jump_x = 2; + long_jump_from_function(); + } + } + else if (val == 2){ + global_jump_x = 3; + } +} + +static void +long_jump_stepping_tests(void){ + + long_jump_wrapped_in_function(); + + long_jump_wrapped_in_function(); + + long_jump_wrapped_in_function(); + +} + +//////////////////////////////// +// NOTE(allen): Recursion Stepping + +static int +recursive_call(int x){ + if (x <= 1){ + return(x); + } + + int r1 = recursive_call(x - 1); + int r2 = recursive_call(x - 2); + return(r1 + r2); +} + +static int +tail_recursive_call(int x, int m){ + if (x <= 1){ + return(m); + } + return(tail_recursive_call(x - 1, x*m)); +} + +static void +recursion_stepping_tests(void){ + + recursive_call(4); + + recursive_call(4); + + tail_recursive_call(5, 1); + + tail_recursive_call(5, 1); + +} + +//////////////////////////////// +// NOTE(rjf): Thread Stepping + +#if _WIN32 +DWORD thread_step_thread(void *p) +{ + int x = 0; + for(int i = 0; i < 100000; i += 1) + { + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + x += 1; + } + return 0; +} +#endif + +void thread_stepping_tests(void) +{ +#if _WIN32 + HANDLE h[8] = {0}; + for(int i = 0; i < sizeof(h)/sizeof(h[0]); i += 1) + { + DWORD id = 0; + h[i] = CreateThread(0, 0, thread_step_thread, 0, CREATE_SUSPENDED, &id); + raddbg_thread_id_name(id, "thread_step_thread_%i", i); + raddbg_thread_id_color_u32(id, 0xff9f23ff); + } + for(int i = 0; i < sizeof(h)/sizeof(h[0]); i += 1) + { + ResumeThread(h[i]); + } + for(int i = 0; i < sizeof(h)/sizeof(h[0]); i += 1) + { + WaitForSingleObject(h[i], INFINITE); + } +#endif +} + +//////////////////////////////// +// NOTE(rjf): Debug Strings + +static void +debug_string_tests(void) +{ + for(int i = 0; i < 100; i += 1) + { + printf("here is a number: %i\n", i); + fflush(stdout); + } +#if _WIN32 + for(int i = 0; i < 100; i += 1) + { + OutputDebugStringA("Hello, World!\n"); + } + char message[65409+1]; + memset(&message[0], '=', sizeof(message)); + for(int i = 1; i < sizeof(message); i += 128) + { + message[i] = '\n'; + } + message[sizeof(message) - 1] = 0; + OutputDebugStringA(message); +#endif +} + +//////////////////////////////// +//~ rjf: Thread Name Test + +#if _WIN32 +DWORD dummy_thread(void *p) +{ + Sleep(10); + return 0; +} +#endif + +static void +thread_name_tests(void) +{ +#if _WIN32 + DWORD id = 0; + HANDLE h = CreateThread(0, 0, dummy_thread, 0, CREATE_SUSPENDED, &id); + raddbg_thread_id_name(id, "dummy_thread"); + raddbg_thread_id_color_u32(id, 0xff1f23ff); + ResumeThread(h); + WaitForSingleObject(h, INFINITE); +#endif +} + +//////////////////////////////// +//~ rjf: Interrupt Stepping Tests + +#include + +static void +interrupt_stepping_tests(void) +{ + __debugbreak(); + __debugbreak(); + __debugbreak(); + __debugbreak(); + for(int i = 0; i < 1000; i += 1) + { + if(i == 999) + { + __debugbreak(); + } + } + for(int i = 0; i < 1000; i += 1) + { + if(i == 999) + { + assert(0); + } + } + int x = 0; +} + +//////////////////////////////// +//~ rjf: JIT Stepping Tests + +static void +jit_stepping_tests(void) +{ + OutputDebugString("A\n"); + VOID *code = VirtualAlloc(0, 0x1000, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE); + *((uint32_t*)code) = 0xC39090CC; + ((void (__fastcall *)()) code)(); + OutputDebugString("B\n"); +} + +//////////////////////////////// +// NOTE(allen): Exception Stepping + +static void +exception_filter_test(void) +{ + __try + { + RaiseException(0xc0000095, 0, 0, 0); + } + __except (EXCEPTION_EXECUTE_HANDLER) + { + OutputDebugStringA("did an exception\n"); + } +} + +int *global_null_read_pointer = 0; +static void +trip(void){ + *global_null_read_pointer = 0; +} + +static void +cpp_exception_in_function(void){ + int v = 0; + try{ + throw 1; + } + catch (...){ + v = 1; + } +} + +static void +cpp_throw_in_function(void){ + throw 1; +} + +static void +win32_exception_in_function(void){ +#if _WIN32 + int v = 0; + __try{ + trip(); + v = 1; + } + __except (EXCEPTION_EXECUTE_HANDLER){ + v = 2; + } + + v = 3; + __try{ + trip(); + v = 4; + } + __except (EXCEPTION_EXECUTE_HANDLER){ + v = 5; + } +#endif +} + +static void +cpp_recursive_exception(int x){ + try{ + if (x > 1){ + throw 1; + } + } + catch (...){ + x -= 1; + cpp_recursive_exception(x); + x += 1; + } +} + +static void +win32_recursive_exception(int x){ +#if _WIN32 + __try{ + if (x > 1){ + throw 1; + } + } + __except (EXCEPTION_EXECUTE_HANDLER){ + x -= 1; + win32_recursive_exception(x); + x += 1; + } +#endif +} + +static void +exception_stepping_tests(void){ + { + int v = 0; + try{ + throw 1; + } + catch (...){ + v = 1; + } + } + + { + int v = 0; + try{ + cpp_throw_in_function(); + } + catch (...){ + v = 1; + } + } + + cpp_exception_in_function(); + cpp_exception_in_function(); + +#if _WIN32 + win32_exception_in_function(); + win32_exception_in_function(); +#endif + + // NOTE(allen): Exception in catch tests + { + int v = 0; + try{ + v = 1; + throw 1; + } + catch (...){ + try{ + v = 2; + throw 2; + } + catch (...){ + v = 3; + } + } + } + + { + int v = 0; + try{ + v = 1; + throw 1; + } + catch (...){ + cpp_exception_in_function(); + } + } + +#if _WIN32 + { + int v = 0; + try{ + v = 1; + throw 1; + } + catch (...){ + win32_exception_in_function(); + } + } +#endif + + cpp_recursive_exception(4); + cpp_recursive_exception(4); + cpp_recursive_exception(4); + +#if _WIN32 + win32_recursive_exception(4); + win32_recursive_exception(4); + win32_recursive_exception(4); +#endif + + // NOTE(allen): Try in try tests + { + int v = 0; + try{ + try{ + v = 1; + throw 1; + } + catch (...){ + v = 2; + } + throw 2; + } + catch (...){ + v = 3; + } + } + + { + int v = 0; + try{ + try{ + v = 1; + cpp_throw_in_function(); + } + catch (...){ + v = 2; + } + throw 2; + } + catch (...){ + v = 3; + } + } + + { + int v = 0; + try{ + cpp_exception_in_function(); + throw 2; + } + catch (...){ + v = 3; + } + } + +#if _WIN32 + { + int v = 0; + try{ + win32_exception_in_function(); + throw 2; + } + catch (...){ + v = 3; + } + } +#endif + +} + +typedef void (*callback_t)(int a); +static void +dynamic_step_test(void){ +#if _WIN32 +#if defined(_x86_64) || defined( __x86_64__ ) || defined( _M_X64 ) || defined( _M_AMD64 ) + void *page = VirtualAlloc(0, 4096, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE); + char *ptr = (char*)page; + *ptr++ = 0x51; // push rcx + *ptr++ = 0x59; // pop rcx + *ptr++ = 0xC3; // ret + callback_t cb = (callback_t)page; + cb(1); +#endif +#endif +} + +//////////////////////////////// + +raddbg_entry_point(mule_main); + +int +mule_main(int argc, char** argv) +{ + raddbg_thread_name("mule_main_thread"); + raddbg_thread_color_rgba(0.4f, 0.9f, 0.2f, 1); + if(raddbg_is_attached()) + { + raddbg_log("raddbg is attached!\n"); + } + + mule_init(); + + type_coverage_eval_tests(); + + mutating_variables_eval_tests(); + + nested_types_eval_tests(); + + struct_parameters_eval_tests(); + + global_eval_tests(); + + return_eval_tests(); + + tls_eval_tests(); + + complicated_type_coverage_tests(); + + extended_type_coverage_eval_tests(); + + templated_function_eval_tests(); + + c_type_coverage_eval_tests(); + + c_type_with_bitfield_usage(); + + optimized_build_eval_tests(); + + optimized_struct_parameters_eval_tests(); + + fancy_viz_eval_tests(); + + exception_filter_test(); + + control_flow_stepping_tests(); + + indirect_call_jump_stepping_tests(); + + alloca_stepping_tests(); + + basic_inline_tests(); + + inline_stepping_tests(); + + overloaded_line_stepping_tests(); + + overloaded_function(100); + + dynamic_step_test(); + + long_jump_stepping_tests(); + + recursion_stepping_tests(); + + thread_stepping_tests(); + + debug_string_tests(); + + thread_name_tests(); + + jit_stepping_tests(); + + interrupt_stepping_tests(); + + markup_tests(); + + exception_stepping_tests(); + + return(0); +} diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_main.pdb b/data/test_inputs/mule_main_9ff1e58f/mule_main.pdb new file mode 100644 index 00000000..5116f2ce --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_main.pdb @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e2b10fe04ef539796a329790987f781e645707a737e32db863f3e49a1766bf5a +size 4763648 diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_main.rdi b/data/test_inputs/mule_main_9ff1e58f/mule_main.rdi new file mode 100644 index 00000000..049f7503 --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_main.rdi @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:87783650d5ceb1dd991ae3a01ca4a55cefc9eacd54ead4fcc5deb72af4f9b8a3 +size 2667692 diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_main_9ff1e58f.exe b/data/test_inputs/mule_main_9ff1e58f/mule_main_9ff1e58f.exe new file mode 100644 index 00000000..e61f158f --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_main_9ff1e58f.exe @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ac765d8dfa6d3a3830b3efc76d8b52f6dd201004e9fead477138ac7b4d1015a +size 264704 diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_module.cpp b/data/test_inputs/mule_main_9ff1e58f/mule_module.cpp new file mode 100644 index 00000000..155d588f --- /dev/null +++ b/data/test_inputs/mule_main_9ff1e58f/mule_module.cpp @@ -0,0 +1,60 @@ +// Copyright (c) Epic Games Tools +// Licensed under the MIT license (https://opensource.org/license/mit/) + +#if _WIN32 +#define export_function extern "C" __declspec(dllexport) +#else +#define export_function extern "C" +#endif + +#if _WIN32 +# define thread_var __declspec(thread) +#else +# define thread_var __thread +#endif + +typedef struct OnlyInModule OnlyInModule; +struct OnlyInModule +{ + int x; + int y; + int z; + char *name; +}; + +typedef struct Basics Basics; +struct Basics +{ + int a; + int b; + int c; + int d; +}; + +static OnlyInModule only_in_module_global = +{ + 1, 2, 3, "foobar", +}; + +thread_var float tls_a = 1.015625f; +thread_var int tls_b = -100; + +export_function void +dll_tls_eval_test(void) +{ + tls_a *= 1.5f; + tls_b *= -2; + only_in_module_global.x += 1; + only_in_module_global.y += 2; + only_in_module_global.z += 3; +} + +export_function void +dll_type_eval_tests(void) +{ + Basics basics1 = {1, 2, 3, 4}; + Basics basics2 = {4, 5, 6, 7}; + OnlyInModule only_in_module = {123, 456, 789, "this type is only in the module!"}; + int x = 0; + (void)x; +} diff --git a/data/test_inputs/mule_main_9ff1e58f/mule_module.dll b/data/test_inputs/mule_main_9ff1e58f/mule_module.dll new file mode 100644 index 0000000000000000000000000000000000000000..257b90fa0c3588e2b58926c713f095ebd94dcc27 GIT binary patch literal 667648 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�a1@t-KC2H*#QXAi?^*_d*+gy!yy9xe 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�wYH`7?k<2G=x)E1!S?g@G#{z@#~~xFV;ubd3Pg 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 +#endif + +static void +do_something_with_intermediate_values(void) +{ + static int another_important_s32 = 0; + static float another_important_f32 = 0; + + another_important_s32 = (int)important_f32; + another_important_f32 = (float)important_s32; + +#if _WIN32 + char buffer[256] = "Hello, World!\n"; + buffer[0] += important_s32 + another_important_s32; + buffer[1] += (int)another_important_f32 * important_f32; + OutputDebugStringA(buffer); +#endif +} + +static void +store_important_s32(int *ptr) +{ + important_s32 = *ptr; +} + +static void +store_important_f32(float *ptr) +{ + important_f32 = *ptr; +} + +void +optimized_build_eval_tests(void) +{ + int simple_sum = 0; + for(int i = 0; i < 10000; i += 1) + { + simple_sum += i; + } + store_important_s32(&simple_sum); + + do_something_with_intermediate_values(); + + static struct {float x, y;} vec2s[] = + { + { 10.f, 76.f }, + { 40.f, 50.f }, + { -230.f, 20.f }, + { 27.f, 27.f }, + { 57.f, -57.f }, + { -37.f, 97.f }, + { 99.f, 67.f }, + { 99.f, 37.f }, + { 99.f, 57.f }, + }; + { + struct{float x, y;}sum = {0}; + int count = sizeof(vec2s)/sizeof(vec2s[0]); + for(int i = 0; i < count; i += 1) + { + sum.x += vec2s[i].x; + sum.y += vec2s[i].y; + } + struct{float x, y;}avg = {sum.x/count, sum.y/count}; + float f32 = avg.x * avg.y; + store_important_f32(&f32); + } + + do_something_with_intermediate_values(); + + int factorial = 1; + for(int i = 10; i > 0; i -= 1) + { + factorial *= i; + } + store_important_s32(&factorial); + + do_something_with_intermediate_values(); +} + +//////////////////////////////// +// NOTE(allen): Struct Parameters Eval + +struct OptimizedBasics{ + char a; + unsigned char b; + short c; + unsigned short d; + int e; + unsigned int f; + long long g; + unsigned long long h; + float i; + double j; +}; + +static void +optimized_struct_parameter_helper(int *ptr, OptimizedBasics basics) +{ + basics.a += *ptr; + basics.a += 1; + basics.a += 1; +} + +void +optimized_struct_parameters_eval_tests(void) +{ + int x = 10; + OptimizedBasics basics = {-1, 1, -2, 2, -4, 4, -8, 8, 1.5f, 1.50000000000001}; + optimized_struct_parameter_helper(&x, basics); +} diff --git a/src/torture/torture.c b/src/torture/torture.c index 87b38417..d50a5426 100644 --- a/src/torture/torture.c +++ b/src/torture/torture.c @@ -1283,7 +1283,7 @@ t_entry_point(CmdLine *cmdline) { String8 binary_dir_path = get_process_info()->binary_path; String8 root_dir_path = str8_chop_last_slash(binary_dir_path); - g_input_data_dir = str8f(scratch.arena, "%S/local/test_data", root_dir_path); + g_input_data_dir = str8f(scratch.arena, "%S/data/test_inputs", root_dir_path); } // setup output directory