summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/expression_command
diff options
context:
space:
mode:
authorShafik Yaghmour <syaghmour@apple.com>2019-04-15 23:05:45 +0000
committerShafik Yaghmour <syaghmour@apple.com>2019-04-15 23:05:45 +0000
commite4b19c9c28687eb58ea61f2d5da587f6e7bcd7bf (patch)
treefaa815f711a6ce83e16668a75929a8061efb3b3d /lldb/packages/Python/lldbsuite/test/expression_command
parent8eeb56d1333c846d7043fd6a5433782c20b81606 (diff)
downloadbcm5719-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')
-rw-r--r--lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/Makefile5
-rw-r--r--lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/TestCastIntToAnonymousEnum.py22
-rw-r--r--lldb/packages/Python/lldbsuite/test/expression_command/cast_int_to_anonymous_enum/main.cpp9
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
+}
OpenPOWER on IntegriCloud