コード例 #1
0
Error TypeNameComputer::visitKnownRecord(CVType &CVR,
                                         MemberFunctionRecord &MF) {
  StringRef Ret = Types.getTypeName(MF.getReturnType());
  StringRef Class = Types.getTypeName(MF.getClassType());
  StringRef Params = Types.getTypeName(MF.getArgumentList());
  Name = formatv("{0} {1}::{2}", Ret, Class, Params).sstr<256>();
  return Error::success();
}
コード例 #2
0
ファイル: TypeTableBuilder.cpp プロジェクト: bryant/llvm
TypeIndex TypeTableBuilder::writeKnownType(const MemberFunctionRecord &Record) {
  TypeRecordBuilder Builder(Record.getKind());

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

  return writeRecord(Builder);
}
コード例 #3
0
ファイル: TypeDumpVisitor.cpp プロジェクト: davidlt/root
Error TypeDumpVisitor::visitKnownRecord(CVType &CVR, MemberFunctionRecord &MF) {
  printTypeIndex("ReturnType", MF.getReturnType());
  printTypeIndex("ClassType", MF.getClassType());
  printTypeIndex("ThisType", MF.getThisType());
  W->printEnum("CallingConvention", uint8_t(MF.getCallConv()),
               makeArrayRef(CallingConventions));
  W->printFlags("FunctionOptions", uint8_t(MF.getOptions()),
                makeArrayRef(FunctionOptionEnum));
  W->printNumber("NumParameters", MF.getParameterCount());
  printTypeIndex("ArgListType", MF.getArgumentList());
  W->printNumber("ThisAdjustment", MF.getThisPointerAdjustment());
  return Error::success();
}
コード例 #4
0
ファイル: TypeDumper.cpp プロジェクト: delcypher/llvm
void CVTypeDumperImpl::visitMemberFunction(TypeLeafKind Leaf,
        MemberFunctionRecord &MF) {
    printTypeIndex("ReturnType", MF.getReturnType());
    printTypeIndex("ClassType", MF.getClassType());
    printTypeIndex("ThisType", MF.getThisType());
    W.printEnum("CallingConvention", uint8_t(MF.getCallConv()),
                makeArrayRef(CallingConventions));
    W.printFlags("FunctionOptions", uint8_t(MF.getOptions()),
                 makeArrayRef(FunctionOptionEnum));
    W.printNumber("NumParameters", MF.getParameterCount());
    printTypeIndex("ArgListType", MF.getArgumentList());
    W.printNumber("ThisAdjustment", MF.getThisPointerAdjustment());

    StringRef ReturnTypeName = getTypeName(MF.getReturnType());
    StringRef ClassTypeName = getTypeName(MF.getClassType());
    StringRef ArgListTypeName = getTypeName(MF.getArgumentList());
    SmallString<256> TypeName(ReturnTypeName);
    TypeName.push_back(' ');
    TypeName.append(ClassTypeName);
    TypeName.append("::");
    TypeName.append(ArgListTypeName);
    Name = CVTD.saveName(TypeName);
}