diff options
Diffstat (limited to 'packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions')
3 files changed, 55 insertions, 0 deletions
| diff --git a/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/Makefile b/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/Makefile new file mode 100644 index 000000000000..314f1cb2f077 --- /dev/null +++ b/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/Makefile @@ -0,0 +1,5 @@ +LEVEL = ../../../make + +CXX_SOURCES := main.cpp + +include $(LEVEL)/Makefile.rules diff --git a/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/TestFrameVariableAnonymousUnions.py b/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/TestFrameVariableAnonymousUnions.py new file mode 100644 index 000000000000..396a637041cb --- /dev/null +++ b/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/TestFrameVariableAnonymousUnions.py @@ -0,0 +1,27 @@ +""" +Tests that frame variable looks into anonymous unions +""" +import lldb +from lldbsuite.test.lldbtest import * +import lldbsuite.test.lldbutil as lldbutil + +class FrameVariableAnonymousUnionsTestCase(TestBase): +     +    mydir = TestBase.compute_mydir(__file__) +     +    def test_with_run_command(self): +        """Tests that frame variable looks into anonymous unions""" +        self.build() +        self.runCmd("file a.out", CURRENT_EXECUTABLE_SET) + +        line = line_number('main.cpp', '// break here') +        lldbutil.run_break_set_by_file_and_line (self, "main.cpp", line, num_expected_locations=-1, loc_exact=False) + +        self.runCmd("process launch", RUN_SUCCEEDED) + +        self.expect('frame variable -f x i', substrs=['ffffff41']) +        self.expect('frame variable c', substrs=["'A"]) + +        self.expect('frame variable x', matching=False, substrs=['3']) +        self.expect('frame variable y', matching=False, substrs=["'B'"]) +        self.expect('frame variable z', matching=False, substrs=['14']) diff --git a/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/main.cpp b/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/main.cpp new file mode 100644 index 000000000000..494b846336ff --- /dev/null +++ b/packages/Python/lldbsuite/test/lang/cpp/frame-var-anon-unions/main.cpp @@ -0,0 +1,23 @@ +//===-- main.cpp ------------------------------------------------*- C++ -*-===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +int main() { +  union { +    int i; +    char c; +  }; +  struct { +    int x; +    char y; +    short z; +  } s{3,'B',14}; +  i = 0xFFFFFF00; +  c = 'A'; +  return c; // break here +} | 
