1283625Sdim//===- PDBSymbolTypeFunctionSig.h - function signature type info *- C++ -*-===//
2283625Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6283625Sdim//
7283625Sdim//===----------------------------------------------------------------------===//
8283625Sdim
9283625Sdim#ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLTYPEFUNCTIONSIG_H
10283625Sdim#define LLVM_DEBUGINFO_PDB_PDBSYMBOLTYPEFUNCTIONSIG_H
11283625Sdim
12283625Sdim#include "PDBSymbol.h"
13283625Sdim#include "PDBTypes.h"
14283625Sdim
15283625Sdimnamespace llvm {
16283625Sdim
17283625Sdimclass raw_ostream;
18309124Sdimnamespace pdb {
19283625Sdim
20283625Sdimclass PDBSymbolTypeFunctionSig : public PDBSymbol {
21344779Sdim  DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::FunctionSig)
22283625Sdimpublic:
23283625Sdim  std::unique_ptr<IPDBEnumSymbols> getArguments() const;
24283625Sdim
25283625Sdim  void dump(PDBSymDumper &Dumper) const override;
26321369Sdim  void dumpRight(PDBSymDumper &Dumper) const override;
27283625Sdim  void dumpArgList(raw_ostream &OS) const;
28283625Sdim
29341825Sdim  bool isCVarArgs() const;
30341825Sdim
31283625Sdim  FORWARD_SYMBOL_METHOD(getCallingConvention)
32321369Sdim  FORWARD_SYMBOL_ID_METHOD(getClassParent)
33321369Sdim  FORWARD_SYMBOL_ID_METHOD(getUnmodifiedType)
34283625Sdim  FORWARD_SYMBOL_METHOD(isConstType)
35283625Sdim  FORWARD_SYMBOL_METHOD(getCount)
36321369Sdim  FORWARD_SYMBOL_ID_METHOD(getLexicalParent)
37283625Sdim  // FORWARD_SYMBOL_METHOD(getObjectPointerType)
38283625Sdim  FORWARD_SYMBOL_METHOD(getThisAdjust)
39321369Sdim  FORWARD_SYMBOL_ID_METHOD_WITH_NAME(getType, getReturnType)
40283625Sdim  FORWARD_SYMBOL_METHOD(isUnalignedType)
41283625Sdim  FORWARD_SYMBOL_METHOD(isVolatileType)
42283625Sdim};
43283625Sdim
44283625Sdim} // namespace llvm
45309124Sdim}
46283625Sdim
47283625Sdim#endif // LLVM_DEBUGINFO_PDB_PDBSYMBOLTYPEFUNCTIONSIG_H
48