Exemple #1
0
Error TypeDumpVisitor::visitKnownRecord(CVType &CVR, ProcedureRecord &Proc) {
  printTypeIndex("ReturnType", Proc.getReturnType());
  W->printEnum("CallingConvention", uint8_t(Proc.getCallConv()),
               makeArrayRef(CallingConventions));
  W->printFlags("FunctionOptions", uint8_t(Proc.getOptions()),
                makeArrayRef(FunctionOptionEnum));
  W->printNumber("NumParameters", Proc.getParameterCount());
  printTypeIndex("ArgListType", Proc.getArgumentList());
  return Error::success();
}
Exemple #2
0
TypeIndex TypeTableBuilder::writeKnownType(const ProcedureRecord &Record) {
  TypeRecordBuilder Builder(Record.getKind());

  Builder.writeTypeIndex(Record.getReturnType());
  Builder.writeUInt8(static_cast<uint8_t>(Record.getCallConv()));
  Builder.writeUInt8(static_cast<uint8_t>(Record.getOptions()));
  Builder.writeUInt16(Record.getParameterCount());
  Builder.writeTypeIndex(Record.getArgumentList());

  return writeRecord(Builder);
}
Exemple #3
0
void CVTypeDumperImpl::visitProcedure(TypeLeafKind Leaf,
                                      ProcedureRecord &Proc) {
    printTypeIndex("ReturnType", Proc.getReturnType());
    W.printEnum("CallingConvention", uint8_t(Proc.getCallConv()),
                makeArrayRef(CallingConventions));
    W.printFlags("FunctionOptions", uint8_t(Proc.getOptions()),
                 makeArrayRef(FunctionOptionEnum));
    W.printNumber("NumParameters", Proc.getParameterCount());
    printTypeIndex("ArgListType", Proc.getArgumentList());

    StringRef ReturnTypeName = getTypeName(Proc.getReturnType());
    StringRef ArgListTypeName = getTypeName(Proc.getArgumentList());
    SmallString<256> TypeName(ReturnTypeName);
    TypeName.push_back(' ');
    TypeName.append(ArgListTypeName);
    Name = CVTD.saveName(TypeName);
}
Error TypeNameComputer::visitKnownRecord(CVType &CVR, ProcedureRecord &Proc) {
  StringRef Ret = Types.getTypeName(Proc.getReturnType());
  StringRef Params = Types.getTypeName(Proc.getArgumentList());
  Name = formatv("{0} {1}", Ret, Params).sstr<256>();
  return Error::success();
}