diff options
author | Aleksandr Urakov <aleksandr.urakov@jetbrains.com> | 2018-12-04 09:51:29 +0000 |
---|---|---|
committer | Aleksandr Urakov <aleksandr.urakov@jetbrains.com> | 2018-12-04 09:51:29 +0000 |
commit | f335188925b923dc68243f2b2722e5cc5b259e1b (patch) | |
tree | 7a90e75d9aee7d137ef0e2d4a5d024e8f884db96 /lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py | |
parent | 9d432e0d1412bfdbea7a0d18295d63c7d30d3952 (diff) | |
download | bcm5719-llvm-f335188925b923dc68243f2b2722e5cc5b259e1b.tar.gz bcm5719-llvm-f335188925b923dc68243f2b2722e5cc5b259e1b.zip |
[Expr] Check the language before ignoring Objective C keywords
Summary:
This patch adds the check of the language before ignoring names like `id` or
`Class`, which are reserved in Objective C, but are allowed in C++. It is needed
to make it possible to evaluate expressions in a C++ program containing names
like `id` or `Class`.
Reviewers: jingham, zturner, labath, clayborg
Reviewed By: jingham, clayborg
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D54843
llvm-svn: 348240
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py')
-rw-r--r-- | lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py b/lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py index 1dbafc36a82..e1a4d8b9414 100644 --- a/lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py +++ b/lldb/packages/Python/lldbsuite/test/expression_command/options/TestExprOptions.py @@ -63,3 +63,16 @@ class ExprOptionsTestCase(TestBase): val = frame.EvaluateExpression('foo != nullptr', options) self.assertTrue(val.IsValid()) self.assertFalse(val.GetError().Success()) + + # Make sure we can retrieve `id` variable if language is set to C++11: + options.SetLanguage(lldb.eLanguageTypeC_plus_plus_11) + val = frame.EvaluateExpression('id == 0', options) + self.assertTrue(val.IsValid()) + self.assertTrue(val.GetError().Success()) + self.DebugSBValue(val) + + # Make sure we can't retrieve `id` variable if language is set to ObjC: + options.SetLanguage(lldb.eLanguageTypeObjC) + val = frame.EvaluateExpression('id == 0', options) + self.assertTrue(val.IsValid()) + self.assertFalse(val.GetError().Success()) |