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(); }
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); }
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(); }