| //===-- main.cpp ------------------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include <cstdint> |
| #include <string> |
| |
| struct complex_type |
| { |
| int i; |
| struct { long l; } inner; |
| complex_type *complex_ptr; |
| }; |
| |
| struct pcomplex_type : complex_type |
| { |
| pcomplex_type(const complex_type &complx_base, const complex_type &complx_member) |
| : complex_type(complx_base), complx(complx_member) { } |
| complex_type complx; |
| static int si; |
| }; |
| |
| int pcomplex_type::si; |
| |
| struct struct_with_unions |
| { |
| struct_with_unions(): u_i(1), u1(-1) {} |
| union |
| { |
| int u_i; |
| int u_j; |
| }; |
| union |
| { |
| int u1; |
| struct |
| { |
| short s1; |
| short s2; |
| }; |
| }; |
| }; |
| |
| void |
| var_update_test(void) |
| { |
| long l = 1; |
| complex_type complx = { 3, { 3L }, &complx }; |
| complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; |
| // BP_var_update_test_init |
| |
| l = 0; |
| // BP_var_update_test_l |
| |
| complx.inner.l = 2; |
| // BP_var_update_test_complx |
| |
| complx_array[1].inner.l = 4; |
| // BP_var_update_test_complx_array |
| } |
| |
| void |
| var_list_children_test(void) |
| { |
| complex_type complx = { 3, { 3L }, &complx }; |
| complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; |
| pcomplex_type pcomplx({ 6, { 6L }, &pcomplx}, { 7, { 7L }, &pcomplx}); |
| |
| // BP_var_list_children_test |
| } |
| |
| void |
| gdb_set_show_print_char_array_as_string_test(void) |
| { |
| const char *cp = "\t\"hello\"\n"; |
| const char ca[] = "\t\"hello\"\n"; |
| const char16_t *u16p = u"\t\"hello\"\n"; |
| const char16_t u16a[] = u"\t\"hello\"\n"; |
| const char32_t *u32p = U"\t\"hello\"\n"; |
| const char32_t u32a[] = U"\t\"hello\"\n"; |
| |
| const char16_t* u16p_rus = u"\\Аламо-сквер"; |
| const char16_t u16a_rus[] = u"\\Бейвью"; |
| const char32_t* u32p_rus = U"\\Чайнатаун"; |
| const char32_t u32a_rus[] = U"\\Догпатч"; |
| |
| // BP_gdb_set_show_print_char_array_as_string_test |
| } |
| |
| void |
| cpp_stl_types_test(void) |
| { |
| std::string std_string = "hello"; |
| // BP_cpp_stl_types_test |
| } |
| |
| void |
| unnamed_objects_test(void) |
| { |
| struct_with_unions swu; |
| // BP_unnamed_objects_test |
| } |
| |
| struct not_str |
| { |
| not_str(char _c, int _f) |
| : c(_c), f(_f) { } |
| char c; |
| int f; |
| }; |
| |
| void |
| gdb_set_show_print_expand_aggregates(void) |
| { |
| complex_type complx = { 3, { 3L }, &complx }; |
| complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; |
| not_str nstr('a', 0); |
| |
| // BP_gdb_set_show_print_expand_aggregates |
| } |
| |
| void |
| gdb_set_show_print_aggregate_field_names(void) |
| { |
| complex_type complx = { 3, { 3L }, &complx }; |
| complex_type complx_array[2] = { { 4, { 4L }, &complx_array[1] }, { 5, { 5 }, &complx_array[0] } }; |
| |
| // BP_gdb_set_show_print_aggregate_field_names |
| } |
| |
| int g_MyVar = 3; |
| static int s_MyVar = 4; |
| |
| int |
| main(int argc, char const *argv[]) |
| { |
| int a = 10, b = 20; |
| s_MyVar = a + b; |
| var_update_test(); |
| var_list_children_test(); |
| gdb_set_show_print_char_array_as_string_test(); |
| cpp_stl_types_test(); |
| unnamed_objects_test(); |
| gdb_set_show_print_expand_aggregates(); |
| gdb_set_show_print_aggregate_field_names(); |
| return 0; // BP_return |
| } |