//=== DWARFLinkerBase.cpp -------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "llvm/DWARFLinker/DWARFLinkerBase.h" #include "llvm/ADT/StringSwitch.h" using namespace llvm; using namespace llvm::dwarf_linker; std::optional llvm::dwarf_linker::parseDebugTableName(llvm::StringRef SecName) { return llvm::StringSwitch>( SecName.substr(SecName.find_first_not_of("._"))) .Case(getSectionName(DebugSectionKind::DebugInfo), DebugSectionKind::DebugInfo) .Case(getSectionName(DebugSectionKind::DebugLine), DebugSectionKind::DebugLine) .Case(getSectionName(DebugSectionKind::DebugFrame), DebugSectionKind::DebugFrame) .Case(getSectionName(DebugSectionKind::DebugRange), DebugSectionKind::DebugRange) .Case(getSectionName(DebugSectionKind::DebugRngLists), DebugSectionKind::DebugRngLists) .Case(getSectionName(DebugSectionKind::DebugLoc), DebugSectionKind::DebugLoc) .Case(getSectionName(DebugSectionKind::DebugLocLists), DebugSectionKind::DebugLocLists) .Case(getSectionName(DebugSectionKind::DebugARanges), DebugSectionKind::DebugARanges) .Case(getSectionName(DebugSectionKind::DebugAbbrev), DebugSectionKind::DebugAbbrev) .Case(getSectionName(DebugSectionKind::DebugMacinfo), DebugSectionKind::DebugMacinfo) .Case(getSectionName(DebugSectionKind::DebugMacro), DebugSectionKind::DebugMacro) .Case(getSectionName(DebugSectionKind::DebugAddr), DebugSectionKind::DebugAddr) .Case(getSectionName(DebugSectionKind::DebugStr), DebugSectionKind::DebugStr) .Case(getSectionName(DebugSectionKind::DebugLineStr), DebugSectionKind::DebugLineStr) .Case(getSectionName(DebugSectionKind::DebugStrOffsets), DebugSectionKind::DebugStrOffsets) .Case(getSectionName(DebugSectionKind::DebugPubNames), DebugSectionKind::DebugPubNames) .Case(getSectionName(DebugSectionKind::DebugPubTypes), DebugSectionKind::DebugPubTypes) .Case(getSectionName(DebugSectionKind::DebugNames), DebugSectionKind::DebugNames) .Case(getSectionName(DebugSectionKind::AppleNames), DebugSectionKind::AppleNames) .Case(getSectionName(DebugSectionKind::AppleNamespaces), DebugSectionKind::AppleNamespaces) .Case(getSectionName(DebugSectionKind::AppleObjC), DebugSectionKind::AppleObjC) .Case(getSectionName(DebugSectionKind::AppleTypes), DebugSectionKind::AppleTypes) .Default(std::nullopt); }