[Lldb-commits] [lldb] 0542d15 - Remove redundant string initialization (NFC)
Author: Kazu Hirata Date: 2021-12-26T09:39:26-08:00 New Revision: 0542d15211cb1fb45bcd79d485d122c69cd23f28 URL: https://github.com/llvm/llvm-project/commit/0542d15211cb1fb45bcd79d485d122c69cd23f28 DIFF: https://github.com/llvm/llvm-project/commit/0542d15211cb1fb45bcd79d485d122c69cd23f28.diff LOG: Remove redundant string initialization (NFC) Identified with readability-redundant-string-init. Added: Modified: clang-tools-extra/clang-tidy/cert/LimitedRandomnessCheck.cpp clang/lib/Basic/Targets/M68k.cpp clang/lib/Basic/Targets/PPC.h clang/lib/CodeGen/CGOpenMPRuntime.cpp clang/lib/Format/NamespaceEndCommentsFixer.cpp clang/lib/Frontend/InitHeaderSearch.cpp clang/lib/StaticAnalyzer/Checkers/ReturnValueChecker.cpp clang/tools/clang-scan-deps/ClangScanDeps.cpp clang/utils/TableGen/NeonEmitter.cpp lldb/source/Commands/CommandCompletions.cpp lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/InstrumentationRuntimeMainThreadChecker.cpp lldb/source/Plugins/InstrumentationRuntime/TSan/InstrumentationRuntimeTSan.cpp lldb/source/Plugins/ObjectFile/Minidump/MinidumpFileBuilder.cpp lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp lldb/source/Target/RegisterContextUnwind.cpp llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp Removed: diff --git a/clang-tools-extra/clang-tidy/cert/LimitedRandomnessCheck.cpp b/clang-tools-extra/clang-tidy/cert/LimitedRandomnessCheck.cpp index 9733a4e7c1f56..0691787f1a90f 100644 --- a/clang-tools-extra/clang-tidy/cert/LimitedRandomnessCheck.cpp +++ b/clang-tools-extra/clang-tidy/cert/LimitedRandomnessCheck.cpp @@ -24,7 +24,7 @@ void LimitedRandomnessCheck::registerMatchers(MatchFinder *Finder) { } void LimitedRandomnessCheck::check(const MatchFinder::MatchResult &Result) { - std::string Msg = ""; + std::string Msg; if (getLangOpts().CPlusPlus) Msg = "; use C++11 random library instead"; diff --git a/clang/lib/Basic/Targets/M68k.cpp b/clang/lib/Basic/Targets/M68k.cpp index c0cd8fa90ed6b..ada5b97ed66de 100644 --- a/clang/lib/Basic/Targets/M68k.cpp +++ b/clang/lib/Basic/Targets/M68k.cpp @@ -29,7 +29,7 @@ M68kTargetInfo::M68kTargetInfo(const llvm::Triple &Triple, const TargetOptions &) : TargetInfo(Triple) { - std::string Layout = ""; + std::string Layout; // M68k is Big Endian Layout += "E"; diff --git a/clang/lib/Basic/Targets/PPC.h b/clang/lib/Basic/Targets/PPC.h index 60701072ac4b6..ac52eb219f54d 100644 --- a/clang/lib/Basic/Targets/PPC.h +++ b/clang/lib/Basic/Targets/PPC.h @@ -414,7 +414,7 @@ class LLVM_LIBRARY_VISIBILITY PPC64TargetInfo : public PPCTargetInfo { LongWidth = LongAlign = PointerWidth = PointerAlign = 64; IntMaxType = SignedLong; Int64Type = SignedLong; -std::string DataLayout = ""; +std::string DataLayout; if (Triple.isOSAIX()) { // TODO: Set appropriate ABI for AIX platform. diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp index e35c154215203..b23100d435b42 100644 --- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp +++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp @@ -1434,7 +1434,7 @@ llvm::Value *CGOpenMPRuntime::emitUpdateLocation(CodeGenFunction &CGF, Loc.isInvalid()) { SrcLocStr = OMPBuilder.getOrCreateDefaultSrcLocStr(); } else { -std::string FunctionName = ""; +std::string FunctionName; if (const auto *FD = dyn_cast_or_null(CGF.CurFuncDecl)) FunctionName = FD->getQualifiedNameAsString(); PresumedLoc PLoc = CGF.getContext().getSourceManager().getPresumedLoc(Loc); @@ -9540,7 +9540,7 @@ emitMappingInformation(CodeGenFunction &CGF, llvm::OpenMPIRBuilder &OMPBuilder, Loc = MapExprs.getMapDecl()->getLocation(); } - std::string ExprName = ""; + std::string ExprName; if (MapExprs.getMapExpr()) { PrintingPolicy P(CGF.getContext().getLangOpts()); llvm::raw_string_ostream OS(ExprName); diff --git a/clang/lib/Format/NamespaceEndCommentsFixer.cpp b/clang/lib/Format/NamespaceEndCommentsFixer.cpp index 38ab5b9df76d4..9c00d243f34a8 100644 --- a/clang/lib/Format/NamespaceEndCommentsFixer.cpp +++ b/clang/lib/Format/NamespaceEndCommentsFixer.cpp @@ -28,7 +28,7 @@ std::string computeName(const FormatToken *NamespaceTok) { assert(NamespaceTok && NamespaceTok->isOneOf(tok::kw_namespace, TT_NamespaceMacro) && "expecting a namespace token"); - std::string name = ""; + std::string name; const FormatToken *Tok = NamespaceTok->getNextNonComment(); if (NamespaceTok->is(TT_NamespaceMacro)) { // Collects all the
[Lldb-commits] [PATCH] D116217: [lldb] Fix PR52702 by fixing Mangled::operator!
rZhBoYao added inline comments. Comment at: lldb/source/Core/Mangled.cpp:79-81 Mangled::operator void *() const { return (m_mangled) ? const_cast(this) : nullptr; } clayborg wrote: > Looks like there is a similar bug here in this function as well. We should > convert the convert to pointer function here to "operator bool" and add a > unit test. > > ``` > explicit operator bool() const { return m_mangled || m_demangled; } > ``` This change breaks this test: `lldb-shell :: SymbolFile/DWARF/x86/find-qualified-variable.cpp` because the comment in the header file says: "This allows code to check a Mangled object to see if it contains a valid //**mangled name**//", which differs from the comment here, and apparently that's what people's intent was. Modifying `lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:2143` solves this. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116217/new/ https://reviews.llvm.org/D116217 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D116217: [lldb] Fix PR52702 by fixing Mangled::operator!
rZhBoYao updated this revision to Diff 396261. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116217/new/ https://reviews.llvm.org/D116217 Files: lldb/include/lldb/Core/Mangled.h lldb/source/Core/Mangled.cpp lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/unittests/Core/MangledTest.cpp Index: lldb/unittests/Core/MangledTest.cpp === --- lldb/unittests/Core/MangledTest.cpp +++ lldb/unittests/Core/MangledTest.cpp @@ -89,6 +89,39 @@ EXPECT_STREQ("", the_demangled.GetCString()); } +TEST(MangledTest, BoolConversionOperator) { + { +ConstString MangledName("_ZN1a1b1cIiiiEEvm"); +Mangled TheMangled(MangledName); +EXPECT_EQ(true, bool(TheMangled)); + } + { +ConstString UnmangledName("puts"); +Mangled TheMangled(UnmangledName); +EXPECT_EQ(true, bool(TheMangled)); + } + { +Mangled TheMangled{}; +EXPECT_EQ(false, bool(TheMangled)); + } +} + +TEST(MangledTest, LogicalNotOperator) { + { +ConstString MangledName("_ZN1a1b1cIiiiEEvm"); +Mangled TheMangled(MangledName); +EXPECT_EQ(false, !TheMangled); + } + { +ConstString UnmangledName("puts"); +Mangled TheMangled(UnmangledName); +EXPECT_EQ(false, !TheMangled); + } + { +Mangled TheMangled{}; +EXPECT_EQ(true, !TheMangled); + } +} TEST(MangledTest, NameIndexes_FindFunctionSymbols) { SubsystemRAII Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp === --- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -2140,7 +2140,8 @@ llvm::StringRef basename; llvm::StringRef context; - bool name_is_mangled = (bool)Mangled(name); + bool name_is_mangled = Mangled::GetManglingScheme(name.GetStringRef()) != + Mangled::eManglingSchemeNone; if (!CPlusPlusLanguage::ExtractContextAndIdentifier(name.GetCString(), context, basename)) Index: lldb/source/Core/Mangled.cpp === --- lldb/source/Core/Mangled.cpp +++ lldb/source/Core/Mangled.cpp @@ -70,15 +70,13 @@ SetValue(ConstString(name)); } -// Convert to pointer operator. This allows code to check any Mangled objects +// Convert to bool operator. This allows code to check any Mangled objects // to see if they contain anything valid using code such as: // // Mangled mangled(...); // if (mangled) // { ... -Mangled::operator void *() const { - return (m_mangled) ? const_cast(this) : nullptr; -} +Mangled::operator bool() const { return m_mangled || m_demangled; } // Logical NOT operator. This allows code to check any Mangled objects to see // if they are invalid using code such as: @@ -86,7 +84,7 @@ // Mangled mangled(...); // if (!file_spec) // { ... -bool Mangled::operator!() const { return !m_mangled; } +bool Mangled::operator!() const { return !m_mangled && !m_demangled; } // Clear the mangled and demangled values. void Mangled::Clear() { Index: lldb/include/lldb/Core/Mangled.h === --- lldb/include/lldb/Core/Mangled.h +++ lldb/include/lldb/Core/Mangled.h @@ -72,10 +72,10 @@ return !(*this == rhs); } - /// Convert to pointer operator. + /// Convert to bool operator. /// - /// This allows code to check a Mangled object to see if it contains a valid - /// mangled name using code such as: + /// This allows code to check any Mangled objects to see if they contain + /// anything valid using code such as: /// /// \code /// Mangled mangled(...); @@ -86,12 +86,12 @@ /// \return /// A pointer to this object if either the mangled or unmangled /// name is set, NULL otherwise. - operator void *() const; + explicit operator bool() const; /// Logical NOT operator. /// - /// This allows code to check a Mangled object to see if it contains an - /// empty mangled name using code such as: + /// This allows code to check any Mangled objects to see if they are invalid + /// using code such as: /// /// \code /// Mangled mangled(...); ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D116217: [lldb] Fix PR52702 by fixing Mangled::operator!
rZhBoYao updated this revision to Diff 396263. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116217/new/ https://reviews.llvm.org/D116217 Files: lldb/include/lldb/Core/Mangled.h lldb/source/Core/Mangled.cpp lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp lldb/unittests/Core/MangledTest.cpp Index: lldb/unittests/Core/MangledTest.cpp === --- lldb/unittests/Core/MangledTest.cpp +++ lldb/unittests/Core/MangledTest.cpp @@ -89,6 +89,39 @@ EXPECT_STREQ("", the_demangled.GetCString()); } +TEST(MangledTest, BoolConversionOperator) { + { +ConstString MangledName("_ZN1a1b1cIiiiEEvm"); +Mangled TheMangled(MangledName); +EXPECT_EQ(true, bool(TheMangled)); + } + { +ConstString UnmangledName("puts"); +Mangled TheMangled(UnmangledName); +EXPECT_EQ(true, bool(TheMangled)); + } + { +Mangled TheMangled{}; +EXPECT_EQ(false, bool(TheMangled)); + } +} + +TEST(MangledTest, LogicalNotOperator) { + { +ConstString MangledName("_ZN1a1b1cIiiiEEvm"); +Mangled TheMangled(MangledName); +EXPECT_EQ(false, !TheMangled); + } + { +ConstString UnmangledName("puts"); +Mangled TheMangled(UnmangledName); +EXPECT_EQ(false, !TheMangled); + } + { +Mangled TheMangled{}; +EXPECT_EQ(true, !TheMangled); + } +} TEST(MangledTest, NameIndexes_FindFunctionSymbols) { SubsystemRAII Index: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp === --- lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -2140,7 +2140,8 @@ llvm::StringRef basename; llvm::StringRef context; - bool name_is_mangled = (bool)Mangled(name); + bool name_is_mangled = Mangled::GetManglingScheme(name.GetStringRef()) != + Mangled::eManglingSchemeNone; if (!CPlusPlusLanguage::ExtractContextAndIdentifier(name.GetCString(), context, basename)) Index: lldb/source/Core/Mangled.cpp === --- lldb/source/Core/Mangled.cpp +++ lldb/source/Core/Mangled.cpp @@ -70,15 +70,13 @@ SetValue(ConstString(name)); } -// Convert to pointer operator. This allows code to check any Mangled objects +// Convert to bool operator. This allows code to check any Mangled objects // to see if they contain anything valid using code such as: // // Mangled mangled(...); // if (mangled) // { ... -Mangled::operator void *() const { - return (m_mangled) ? const_cast(this) : nullptr; -} +Mangled::operator bool() const { return m_mangled || m_demangled; } // Logical NOT operator. This allows code to check any Mangled objects to see // if they are invalid using code such as: @@ -86,7 +84,7 @@ // Mangled mangled(...); // if (!file_spec) // { ... -bool Mangled::operator!() const { return !m_mangled; } +bool Mangled::operator!() const { return !m_mangled && !m_demangled; } // Clear the mangled and demangled values. void Mangled::Clear() { Index: lldb/include/lldb/Core/Mangled.h === --- lldb/include/lldb/Core/Mangled.h +++ lldb/include/lldb/Core/Mangled.h @@ -72,10 +72,10 @@ return !(*this == rhs); } - /// Convert to pointer operator. + /// Convert to bool operator. /// - /// This allows code to check a Mangled object to see if it contains a valid - /// mangled name using code such as: + /// This allows code to check any Mangled objects to see if they contain + /// anything valid using code such as: /// /// \code /// Mangled mangled(...); @@ -84,14 +84,14 @@ /// \endcode /// /// \return - /// A pointer to this object if either the mangled or unmangled - /// name is set, NULL otherwise. - operator void *() const; + /// Returns \b true if either the mangled or unmangled name is set, \b + /// false otherwise. + explicit operator bool() const; /// Logical NOT operator. /// - /// This allows code to check a Mangled object to see if it contains an - /// empty mangled name using code such as: + /// This allows code to check any Mangled objects to see if they are invalid + /// using code such as: /// /// \code /// Mangled mangled(...); ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
[Lldb-commits] [PATCH] D116217: [lldb] Fix PR52702 by fixing Mangled::operator!
rZhBoYao added inline comments. Comment at: lldb/source/Core/Mangled.cpp:87 // { ... -bool Mangled::operator!() const { return !m_mangled; } +bool Mangled::operator!() const { return !m_mangled && !m_demangled; } Should we remove `Mangled::operator!` altogether? I find it less confusing without. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D116217/new/ https://reviews.llvm.org/D116217 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits