#define BUFFER_SIZE 16 struct PointType { int x; int y; int buffer[BUFFER_SIZE]; }; #include #include extern int g_global; int g_global = 123; static int s_global = 234; int test_indexedVariables(); int test_return_variable(); int test_anonymous_types(); int test_anonymous_fields(); void test_unnamed_bitfields(); int main(int argc, char const *argv[]) { static float s_local = 2.25; PointType pt = {11, 22, {0}}; for (int i = 0; i < BUFFER_SIZE; ++i) pt.buffer[i] = i; const char *valid_str = "𐌢𐌰L𐌾𐍈 CπˆπŒΌπŒ΄πƒ"; const char *malformed_str = "lone trailing \x81\x82 bytes"; printf("print malformed utf8 %s %s\n", valid_str, malformed_str); int x = s_global - g_global - pt.y; // breakpoint 1 { int x = 42; { int x = 72; s_global = x; // breakpoint 2 } } { int return_result = test_return_variable(); } test_anonymous_types(); test_anonymous_fields(); test_unnamed_bitfields(); return test_indexedVariables(); // breakpoint 3 } int test_indexedVariables() { int small_array[5] = {1, 2, 3, 4, 5}; int large_array[200]; std::vector small_vector; std::vector large_vector; small_vector.assign(5, 0); large_vector.assign(200, 0); return 0; // breakpoint 4 } int test_return_variable() { return 300; // breakpoint 5 } int test_anonymous_types() { struct { char name[16]; int x, y; } my_var = {"hello world!", 42, 7}; return my_var.x + my_var.y; // breakpoint 6 } struct MySock { union { unsigned char ipv4[4]; unsigned char ipv6[6]; }; }; int test_anonymous_fields() { MySock home = {{{0}}}; home.ipv4[0] = 127; home.ipv4[1] = 0; home.ipv4[2] = 0; home.ipv4[1] = 1; return 1; // breakpoint 7 } void test_unnamed_bitfields() { struct example { unsigned int lo : 4; unsigned int : 0; unsigned int hi : 4; }; example e = {0xA, 0xB}; printf("lo: %u, hi: %u\n", e.lo, e.hi); // breakpoint 8 }