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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits