teak-llvm/lldb/packages/Python/lldbsuite/test/lang/c/anonymous/main.c
Zachary Turner c432c8f856 Move lldb/test to lldb/packages/Python/lldbsuite/test.
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
2015-10-28 17:43:26 +00:00

83 lines
1.2 KiB
C

#include <stdio.h>
struct anonymous_nest {
struct {
struct {
int a;
int b;
}; // anonymous
struct {
int c;
int d;
} foo;
}; // anonymous
};
struct anonymous_child {
struct {
struct {
int a;
int b;
} grandchild;
struct {
int c;
int d;
} foo;
}; // anonymous
};
struct anonymous_grandchild {
struct {
struct {
int a;
int b;
}; // anonymous
struct {
int c;
int d;
} foo;
} child;
};
int processor_nest (struct anonymous_nest *n)
{
return n->foo.d + n->b; // Set breakpoint 0 here.
}
int processor_child (struct anonymous_child *c)
{
return c->foo.d + c->grandchild.b; // Set breakpoint 1 here.
}
int processor_grandchild (struct anonymous_grandchild *g)
{
return g->child.foo.d + g->child.b;
}
typedef struct {
int dummy;
} type_y;
typedef struct {
type_y y;
} type_z;
int main()
{
struct anonymous_nest n = { 0, 2, 0, 4 };
struct anonymous_child c = { 0, 2, 0, 4 };
struct anonymous_grandchild g = { 0, 2, 0, 4 };
type_z *pz = 0;
type_z z = {{2}};
printf("%d\n", processor_nest(&n));
printf("%d\n", processor_child(&c));
printf("%d\n", processor_grandchild(&g)); // Set breakpoint 2 here.
return 0;
}