From 62abe494fb36cd4c523d36f05cb0e3839df50c04 Mon Sep 17 00:00:00 2001 From: Shafik Yaghmour Date: Wed, 14 Aug 2019 22:30:29 +0000 Subject: Improve anonymous class heuristic in ClangASTContext::CreateRecordType Summary: Currently the heuristic used in ClangASTContext::CreateRecordType to identify an anonymous class is that there is that name is a nullptr or simply a null terminator. This heuristic is not accurate since it will also sweep up unnamed classes and lambdas. The improved heuristic relies on the requirement that an anonymous class must be contained within a class. Differential Revision: https://reviews.llvm.org/D66175 llvm-svn: 368937 --- .../completion-crash-lambda/TestCompletionCrashInLambda.py | 4 ---- .../test/expression_command/completion-crash-lambda/main.cpp | 6 ------ .../TestCompletionInLambdaAndUnnamedClass.py | 4 ++++ .../completion-in-lambda-and-unnnamed-class/main.cpp | 11 +++++++++++ 4 files changed, 15 insertions(+), 10 deletions(-) delete mode 100644 lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/TestCompletionCrashInLambda.py delete mode 100644 lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/main.cpp create mode 100644 lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/TestCompletionInLambdaAndUnnamedClass.py create mode 100644 lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/main.cpp (limited to 'lldb/packages/Python/lldbsuite') diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/TestCompletionCrashInLambda.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/TestCompletionCrashInLambda.py deleted file mode 100644 index a04ec919972..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/TestCompletionCrashInLambda.py +++ /dev/null @@ -1,4 +0,0 @@ -from lldbsuite.test import lldbinline -from lldbsuite.test import decorators - -lldbinline.MakeInlineTest(__file__, globals(), [decorators.skipIf(bugnumber="rdar://53755023")]) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/main.cpp deleted file mode 100644 index 3bce3f32f4a..00000000000 --- a/lldb/packages/Python/lldbsuite/test/expression_command/completion-crash-lambda/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -int main() { - []() - { //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) - } - (); -} diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/TestCompletionInLambdaAndUnnamedClass.py b/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/TestCompletionInLambdaAndUnnamedClass.py new file mode 100644 index 00000000000..57fb94b6d66 --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/TestCompletionInLambdaAndUnnamedClass.py @@ -0,0 +1,4 @@ +from lldbsuite.test import lldbinline +from lldbsuite.test import decorators + +lldbinline.MakeInlineTest(__file__, globals(),) diff --git a/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/main.cpp b/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/main.cpp new file mode 100644 index 00000000000..a3d8ab6532e --- /dev/null +++ b/lldb/packages/Python/lldbsuite/test/expression_command/completion-in-lambda-and-unnnamed-class/main.cpp @@ -0,0 +1,11 @@ +int main() { + []() + { //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) + } + (); + struct { + void f() + { //%self.dbg.GetCommandInterpreter().HandleCompletion("e ", len("e "), 0, -1, lldb.SBStringList()) + } + } A; +} -- cgit v1.2.3