aboutsummaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp')
-rw-r--r--packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp152
1 files changed, 152 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp b/packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp
new file mode 100644
index 000000000000..8c79539d4d85
--- /dev/null
+++ b/packages/Python/lldbsuite/test/tools/lldb-mi/variable/main.cpp
@@ -0,0 +1,152 @@
+//===-- 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
+}