summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/commands/expression/top-level/test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/commands/expression/top-level/test.cpp')
-rw-r--r--lldb/packages/Python/lldbsuite/test/commands/expression/top-level/test.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/commands/expression/top-level/test.cpp b/lldb/packages/Python/lldbsuite/test/commands/expression/top-level/test.cpp
new file mode 100644
index 00000000000..5a978743596
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/commands/expression/top-level/test.cpp
@@ -0,0 +1,107 @@
+class MyClass
+{
+public:
+ int memberResult()
+ {
+ return 1;
+ }
+ static int staticResult()
+ {
+ return 1;
+ }
+ int externResult();
+};
+
+// --
+
+int MyClass::externResult()
+{
+ return 1;
+}
+
+// --
+
+MyClass m;
+
+// --
+
+enum MyEnum {
+ myEnumOne = 1,
+ myEnumTwo,
+ myEnumThree
+};
+
+// --
+
+class AnotherClass
+{
+public:
+ __attribute__ ((always_inline)) int complicatedFunction()
+ {
+ struct {
+ int i;
+ } s = { 15 };
+
+ int numbers[4] = { 2, 3, 4, 5 };
+
+ for (signed char number: numbers)
+ {
+ s.i -= number;
+ }
+
+ return s.i;
+ }
+};
+
+// --
+
+class DiamondA
+{
+private:
+ struct {
+ int m_i;
+ };
+public:
+ DiamondA(int i) : m_i(i) { }
+ int accessor() { return m_i; }
+};
+
+// --
+
+class DiamondB : public virtual DiamondA
+{
+public:
+ DiamondB(int i) : DiamondA(i) { }
+};
+
+// --
+
+class DiamondC : public virtual DiamondA
+{
+public:
+ DiamondC(int i) : DiamondA(i) { }
+};
+
+// --
+
+class DiamondD : public DiamondB, public DiamondC
+{
+public:
+ DiamondD(int i) : DiamondA(i), DiamondB(i), DiamondC(i) { }
+};
+
+// --
+
+int doTest()
+{
+ int accumulator = m.memberResult();
+ accumulator += MyClass::staticResult();
+ accumulator += m.externResult();
+ accumulator += MyEnum::myEnumThree;
+ accumulator += myEnumOne;
+ accumulator += AnotherClass().complicatedFunction();
+ accumulator += DiamondD(3).accessor();
+ return accumulator;
+}
+
+// --
OpenPOWER on IntegriCloud