[Lldb-commits] [lldb] 2ad7b6f - [lldb][NFC] Make NameSearchContext::m_found members bools instead of bitfields

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Tue Feb 25 03:45:27 PST 2020


Author: Raphael Isemann
Date: 2020-02-25T12:45:00+01:00
New Revision: 2ad7b6fba0e3a9e71df64bd1a51a14f9c5930eb3

URL: https://github.com/llvm/llvm-project/commit/2ad7b6fba0e3a9e71df64bd1a51a14f9c5930eb3
DIFF: https://github.com/llvm/llvm-project/commit/2ad7b6fba0e3a9e71df64bd1a51a14f9c5930eb3.diff

LOG: [lldb][NFC] Make NameSearchContext::m_found members bools instead of bitfields

The size of NameSearchContext isn't important as we never store it and rarely
allocate more than a few. This way we also don't have to use the memset to
initialize these fields to zero.

Added: 
    

Modified: 
    lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
    lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
    lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h

Removed: 
    


################################################################################
diff  --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
index 449f40b18d3e..a6910a140865 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp
@@ -663,7 +663,7 @@ void ClangASTSource::FindExternalVisibleDecls(
     }
   }
 
-  if (context.m_found.type)
+  if (context.m_found_type)
     return;
 
   TypeList types;
@@ -699,17 +699,17 @@ void ClangASTSource::FindExternalVisibleDecls(
 
       context.AddTypeDecl(copied_clang_type);
 
-      context.m_found.type = true;
+      context.m_found_type = true;
       break;
     }
   }
 
-  if (!context.m_found.type) {
+  if (!context.m_found_type) {
     // Try the modules next.
     FindDeclInModules(context, name);
   }
 
-  if (!context.m_found.type) {
+  if (!context.m_found_type) {
     FindDeclInObjCRuntime(context, name);
   }
 }
@@ -882,7 +882,7 @@ void ClangASTSource::FindDeclInModules(NameSearchContext &context,
 
     context.AddNamedDecl(copied_named_decl);
 
-    context.m_found.type = true;
+    context.m_found_type = true;
   }
 }
 

diff  --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
index 608e13ef79c5..9eca2d01c734 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp
@@ -1000,7 +1000,7 @@ void ClangExpressionDeclMap::LookupLocalVarNamespace(
   name_context.AddNamedDecl(namespace_decl);
   clang::DeclContext *ctxt = clang::Decl::castToDeclContext(namespace_decl);
   ctxt->setHasExternalVisibleStorage(true);
-  name_context.m_found.local_vars_nsp = true;
+  name_context.m_found_local_vars_nsp = true;
 }
 
 void ClangExpressionDeclMap::LookupInModulesDeclVendor(
@@ -1041,11 +1041,11 @@ void ClangExpressionDeclMap::LookupInModulesDeclVendor(
 
     context.AddNamedDecl(copied_function);
 
-    context.m_found.function_with_type_info = true;
-    context.m_found.function = true;
+    context.m_found_function_with_type_info = true;
+    context.m_found_function = true;
   } else if (auto copied_var = dyn_cast<clang::VarDecl>(copied_decl)) {
     context.AddNamedDecl(copied_var);
-    context.m_found.variable = true;
+    context.m_found_variable = true;
   }
 }
 
@@ -1087,7 +1087,7 @@ bool ClangExpressionDeclMap::LookupLocalVariable(
       variable_found = true;
       ValueObjectSP valobj = ValueObjectVariable::Create(frame, var);
       AddOneVariable(context, var, valobj);
-      context.m_found.variable = true;
+      context.m_found_variable = true;
     }
   }
   return variable_found;
@@ -1272,8 +1272,8 @@ void ClangExpressionDeclMap::LookupFunction(
           continue;
 
         AddOneFunction(context, sym_ctx.function, nullptr);
-        context.m_found.function_with_type_info = true;
-        context.m_found.function = true;
+        context.m_found_function_with_type_info = true;
+        context.m_found_function = true;
       } else if (sym_ctx.symbol) {
         if (sym_ctx.symbol->GetType() == eSymbolTypeReExported && target) {
           sym_ctx.symbol = sym_ctx.symbol->ResolveReExportedSymbol(*target);
@@ -1288,26 +1288,26 @@ void ClangExpressionDeclMap::LookupFunction(
       }
     }
 
-    if (!context.m_found.function_with_type_info) {
+    if (!context.m_found_function_with_type_info) {
       for (clang::NamedDecl *decl : decls_from_modules) {
         if (llvm::isa<clang::FunctionDecl>(decl)) {
           clang::NamedDecl *copied_decl =
               llvm::cast_or_null<FunctionDecl>(CopyDecl(decl));
           if (copied_decl) {
             context.AddNamedDecl(copied_decl);
-            context.m_found.function_with_type_info = true;
+            context.m_found_function_with_type_info = true;
           }
         }
       }
     }
 
-    if (!context.m_found.function_with_type_info) {
+    if (!context.m_found_function_with_type_info) {
       if (extern_symbol) {
         AddOneFunction(context, nullptr, extern_symbol);
-        context.m_found.function = true;
+        context.m_found_function = true;
       } else if (non_extern_symbol) {
         AddOneFunction(context, nullptr, non_extern_symbol);
-        context.m_found.function = true;
+        context.m_found_function = true;
       }
     }
   }
@@ -1404,7 +1404,7 @@ void ClangExpressionDeclMap::FindExternalVisibleDecls(
     if (var) {
       valobj = ValueObjectVariable::Create(target, var);
       AddOneVariable(context, var, valobj);
-      context.m_found.variable = true;
+      context.m_found_variable = true;
       return;
     }
   }
@@ -1412,10 +1412,10 @@ void ClangExpressionDeclMap::FindExternalVisibleDecls(
   LookupFunction(context, module_sp, name, namespace_decl);
 
   // Try the modules next.
-  if (!context.m_found.function_with_type_info)
+  if (!context.m_found_function_with_type_info)
     LookupInModulesDeclVendor(context, name);
 
-  if (target && !context.m_found.variable && !namespace_decl) {
+  if (target && !context.m_found_variable && !namespace_decl) {
     // We couldn't find a non-symbol variable for this.  Now we'll hunt for a
     // generic data symbol, and -- if it is found -- treat it as a variable.
     Status error;
@@ -1438,7 +1438,7 @@ void ClangExpressionDeclMap::FindExternalVisibleDecls(
               clang::DiagnosticsEngine::Level::Warning, "%0");
       m_ast_context->getDiagnostics().Report(diag_id) << warning.c_str();
       AddOneGenericVariable(context, *data_symbol);
-      context.m_found.variable = true;
+      context.m_found_variable = true;
     }
   }
 }

diff  --git a/lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h b/lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h
index 0cccc7a31402..4f6b68b302aa 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h
+++ b/lldb/source/Plugins/ExpressionParser/Clang/NameSearchContext.h
@@ -39,20 +39,18 @@ struct NameSearchContext {
   /// report conflicts.
   llvm::SmallSet<CompilerType, 5> m_function_types;
 
-  struct {
-    bool variable : 1;
-    bool function_with_type_info : 1;
-    bool function : 1;
-    bool local_vars_nsp : 1;
-    bool type : 1;
-  } m_found;
+  bool m_found_variable = false;
+  bool m_found_function_with_type_info = false;
+  bool m_found_function = false;
+  bool m_found_local_vars_nsp = false;
+  bool m_found_type = false;
 
   /// Constructor
   ///
   /// Initializes class variables.
   ///
-  /// \param[in] astSource
-  ///     A reference to the AST source making a request.
+  /// \param[in] clang_ts
+  ///     The TypeSystemClang from which the request originates.
   ///
   /// \param[in] decls
   ///     A reference to a list into which new Decls will be placed.  This
@@ -68,7 +66,6 @@ struct NameSearchContext {
                     clang::DeclarationName &name, const clang::DeclContext *dc)
       : m_clang_ts(clang_ts), m_decls(decls), m_decl_name(name),
         m_decl_context(dc) {
-    memset(&m_found, 0, sizeof(m_found));
   }
 
   /// Create a VarDecl with the name being searched for and the provided type


        


More information about the lldb-commits mailing list