diff options
author | Shafik Yaghmour <syaghmour@apple.com> | 2019-04-15 23:05:45 +0000 |
---|---|---|
committer | Shafik Yaghmour <syaghmour@apple.com> | 2019-04-15 23:05:45 +0000 |
commit | e4b19c9c28687eb58ea61f2d5da587f6e7bcd7bf (patch) | |
tree | faa815f711a6ce83e16668a75929a8061efb3b3d /lldb/packages/Python/lldbsuite/test/expression_command | |
parent | 8eeb56d1333c846d7043fd6a5433782c20b81606 (diff) | |
download | bcm5719-llvm-e4b19c9c28687eb58ea61f2d5da587f6e7bcd7bf.tar.gz bcm5719-llvm-e4b19c9c28687eb58ea61f2d5da587f6e7bcd7bf.zip |
[ASTImporter] Regression test to ensure that we handling importing of anonymous enums correctly
Summary:
https://reviews.llvm.org/D51633 added error handling in the ASTImporter.cpp which uncovered an underlying bug in which we used the wrong name when handling naming conflicts. This could cause a segmentation fault when attempting to cast an int to an enum during expression parsing.
This test should pass once https://reviews.llvm.org/D59665 is committed.
Differential Revision: https://reviews.llvm.org/D59667
llvm-svn: 358462
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command')
3 files changed, 36 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/Makefile b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/Makefile new file mode 100644 index 00000000000..8a7102e347a --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/Makefile @@ -0,0 +1,5 @@ +LEVEL = ../../make + +CXX_SOURCES := main.cpp + +include $(LEVEL)/Makefile.rules diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/TestCastIntToAnonymousEnum.py b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/TestCastIntToAnonymousEnum.py new file mode 100644 index 00000000000..b8eaf51d3e2 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/TestCastIntToAnonymousEnum.py @@ -0,0 +1,22 @@ +""" +Test Expression Parser regression text to ensure that we handle anonymous +enums importing correctly. +""" + + +import lldb +from lldbsuite.test.decorators import * +from lldbsuite.test.lldbtest import * +from lldbsuite.test import lldbutil + +class TestCastIntToAnonymousEnum(TestBase): + + mydir = TestBase.compute_mydir(__file__) + + def test_cast_int_to_anonymous_enum(self): + self.build() + + lldbutil.run_to_source_breakpoint(self, '// break here', + lldb.SBFileSpec("main.cpp", False)) + + self.expect("expr (flow_e)0", substrs=['(flow_e) $0 = A']) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/main.cpp new file mode 100644 index 00000000000..7b5c5b24362 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/main.cpp @@ -0,0 +1,9 @@ +typedef enum { + A=0, +} flow_e; + +int main() { + flow_e f; + + return 0; // break here +} |