llvm/llvm/include/llvm/DebugInfo/DWARF/DWARFTypePrinter.h

//===- DWARFTypePrinter.h ---------------------------------------*- C++ -*-===//
//
// 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
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_DEBUGINFO_DWARF_DWARFTYPEPRINTER_H
#define LLVM_DEBUGINFO_DWARF_DWARFTYPEPRINTER_H

#include "llvm/ADT/StringRef.h"
#include "llvm/BinaryFormat/Dwarf.h"

#include <string>

namespace llvm {

class raw_ostream;

// FIXME: We should have pretty printers per language. Currently we print
// everything as if it was C++ and fall back to the TAG type name.
template <typename DieType> struct DWARFTypePrinter {};

template <typename DieType>
void DWARFTypePrinter<DieType>::appendTypeTagName(dwarf::Tag T) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendArrayType(const DieType &D) {}

namespace detail {
template <typename DieType>
DieType resolveReferencedType(DieType D,
                              dwarf::Attribute Attr = dwarf::DW_AT_type) {}
template <typename DieType>
DieType resolveReferencedType(DieType D, typename DieType::DWARFFormValue F) {}
} // namespace detail

template <typename DieType>
DieType DWARFTypePrinter<DieType>::skipQualifiers(DieType D) {}

template <typename DieType>
bool DWARFTypePrinter<DieType>::needsParens(DieType D) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendPointerLikeTypeBefore(DieType D,
                                                            DieType Inner,
                                                            StringRef Ptr) {}

template <typename DieType>
DieType DWARFTypePrinter<DieType>::appendUnqualifiedNameBefore(
    DieType D, std::string *OriginalFullName) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendUnqualifiedNameAfter(
    DieType D, DieType Inner, bool SkipFirstParamIfArtificial) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendQualifiedName(DieType D) {}

template <typename DieType>
DieType DWARFTypePrinter<DieType>::appendQualifiedNameBefore(DieType D) {}

template <typename DieType>
bool DWARFTypePrinter<DieType>::appendTemplateParameters(DieType D,
                                                         bool *FirstParameter) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendAndTerminateTemplateParameters(
    DieType D) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::decomposeConstVolatile(DieType &N, DieType &T,
                                                       DieType &C, DieType &V) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendConstVolatileQualifierAfter(DieType N) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendConstVolatileQualifierBefore(DieType N) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendUnqualifiedName(
    DieType D, std::string *OriginalFullName) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendSubroutineNameAfter(
    DieType D, DieType Inner, bool SkipFirstParamIfArtificial, bool Const,
    bool Volatile) {}

template <typename DieType>
void DWARFTypePrinter<DieType>::appendScopes(DieType D) {}
} // namespace llvm

#endif // LLVM_DEBUGINFO_DWARF_DWARFTYPEPRINTER_H