mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-24 05:55:43 -04:00

This is the conclusion of an effort to get LLDB's Python code structured into a bona-fide Python package. This has a number of benefits, but most notably the ability to more easily share Python code between different but related pieces of LLDB's Python infrastructure (for example, `scripts` can now share code with `test`). llvm-svn: 251532
153 lines
3.5 KiB
C++
153 lines
3.5 KiB
C++
//===-- 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
|
|
}
|