65 lines · cpp
1//=== DWARFLinkerBase.cpp -------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "llvm/DWARFLinker/DWARFLinkerBase.h"10#include "llvm/ADT/StringSwitch.h"11 12using namespace llvm;13using namespace llvm::dwarf_linker;14 15std::optional<DebugSectionKind>16llvm::dwarf_linker::parseDebugTableName(llvm::StringRef SecName) {17 return llvm::StringSwitch<std::optional<DebugSectionKind>>(18 SecName.substr(SecName.find_first_not_of("._")))19 .Case(getSectionName(DebugSectionKind::DebugInfo),20 DebugSectionKind::DebugInfo)21 .Case(getSectionName(DebugSectionKind::DebugLine),22 DebugSectionKind::DebugLine)23 .Case(getSectionName(DebugSectionKind::DebugFrame),24 DebugSectionKind::DebugFrame)25 .Case(getSectionName(DebugSectionKind::DebugRange),26 DebugSectionKind::DebugRange)27 .Case(getSectionName(DebugSectionKind::DebugRngLists),28 DebugSectionKind::DebugRngLists)29 .Case(getSectionName(DebugSectionKind::DebugLoc),30 DebugSectionKind::DebugLoc)31 .Case(getSectionName(DebugSectionKind::DebugLocLists),32 DebugSectionKind::DebugLocLists)33 .Case(getSectionName(DebugSectionKind::DebugARanges),34 DebugSectionKind::DebugARanges)35 .Case(getSectionName(DebugSectionKind::DebugAbbrev),36 DebugSectionKind::DebugAbbrev)37 .Case(getSectionName(DebugSectionKind::DebugMacinfo),38 DebugSectionKind::DebugMacinfo)39 .Case(getSectionName(DebugSectionKind::DebugMacro),40 DebugSectionKind::DebugMacro)41 .Case(getSectionName(DebugSectionKind::DebugAddr),42 DebugSectionKind::DebugAddr)43 .Case(getSectionName(DebugSectionKind::DebugStr),44 DebugSectionKind::DebugStr)45 .Case(getSectionName(DebugSectionKind::DebugLineStr),46 DebugSectionKind::DebugLineStr)47 .Case(getSectionName(DebugSectionKind::DebugStrOffsets),48 DebugSectionKind::DebugStrOffsets)49 .Case(getSectionName(DebugSectionKind::DebugPubNames),50 DebugSectionKind::DebugPubNames)51 .Case(getSectionName(DebugSectionKind::DebugPubTypes),52 DebugSectionKind::DebugPubTypes)53 .Case(getSectionName(DebugSectionKind::DebugNames),54 DebugSectionKind::DebugNames)55 .Case(getSectionName(DebugSectionKind::AppleNames),56 DebugSectionKind::AppleNames)57 .Case(getSectionName(DebugSectionKind::AppleNamespaces),58 DebugSectionKind::AppleNamespaces)59 .Case(getSectionName(DebugSectionKind::AppleObjC),60 DebugSectionKind::AppleObjC)61 .Case(getSectionName(DebugSectionKind::AppleTypes),62 DebugSectionKind::AppleTypes)63 .Default(std::nullopt);64}65