// Find the type plane in the module map
ValueMap::iterator MI = mMap.find(V);
- return MI == mMap.end() ? -1 : MI->second;
+ return MI == mMap.end() ? -1 : (int)MI->second;
}
initialize();
ValueMap::iterator FI = fMap.find(V);
- return FI == fMap.end() ? -1 : FI->second;
+ return FI == fMap.end() ? -1 : (int)FI->second;
}
const FunctionType *FT = F->getFunctionType();
const AttrListPtr &Attrs = F->getAttributes();
+ Attributes RetAttrs = Attrs.getRetAttributes();
+ if (RetAttrs != Attribute::None)
+ Out << Attribute::getAsString(Attrs.getRetAttributes()) << ' ';
printType(F->getReturnType());
Out << ' ';
if (F->hasName())
Out << "..."; // Output varargs portion of signature!
}
Out << ')';
- Attributes RetAttrs = Attrs.getRetAttributes();
- if (RetAttrs != Attribute::None)
- Out << ' ' << Attribute::getAsString(Attrs.getRetAttributes());
Attributes FnAttrs = Attrs.getFnAttributes();
if (FnAttrs != Attribute::None)
Out << ' ' << Attribute::getAsString(Attrs.getFnAttributes());
const Type *RetTy = FTy->getReturnType();
const AttrListPtr &PAL = CI->getAttributes();
+ if (PAL.getRetAttributes() != Attribute::None)
+ Out << ' ' << Attribute::getAsString(PAL.getRetAttributes());
+
// If possible, print out the short form of the call instruction. We can
// only do this if the first argument is a pointer to a nonvararg function,
// and if the return type is not a pointer to a function.
writeParamOperand(I.getOperand(op), PAL.getParamAttributes(op));
}
Out << ')';
- if (PAL.getRetAttributes() != Attribute::None)
- Out << ' ' << Attribute::getAsString(PAL.getRetAttributes());
if (PAL.getFnAttributes() != Attribute::None)
Out << ' ' << Attribute::getAsString(PAL.getFnAttributes());
} else if (const InvokeInst *II = dyn_cast<InvokeInst>(&I)) {
default: Out << " cc" << II->getCallingConv(); break;
}
+ if (PAL.getRetAttributes() != Attribute::None)
+ Out << ' ' << Attribute::getAsString(PAL.getRetAttributes());
+
// If possible, print out the short form of the invoke instruction. We can
// only do this if the first argument is a pointer to a nonvararg function,
// and if the return type is not a pointer to a function.
}
Out << ')';
- if (PAL.getRetAttributes() != Attribute::None)
- Out << ' ' << Attribute::getAsString(PAL.getRetAttributes());
if (PAL.getFnAttributes() != Attribute::None)
Out << ' ' << Attribute::getAsString(PAL.getFnAttributes());
AssemblyWriter W(OS, SlotTable, GV->getParent(), 0);
W.write(GV);
} else if (const Constant *C = dyn_cast<Constant>(this)) {
- OS << ' ' << C->getType()->getDescription() << ' ';
+ OS << C->getType()->getDescription() << ' ';
std::map<const Type *, std::string> TypeTable;
WriteConstantInt(OS, C, TypeTable, 0);
} else if (const Argument *A = dyn_cast<Argument>(this)) {
// Type::dump - allow easy printing of Types from the debugger.
void Type::dump() const { print(errs()); errs() << '\n'; errs().flush(); }
+// Type::dump - allow easy printing of Types from the debugger.
+// This one uses type names from the given context module
+void Type::dump(const Module *Context) const {
+ WriteTypeSymbolic(errs(), this, Context);
+ errs() << '\n';
+ errs().flush();
+}
+
// Module::dump() - Allow printing of Modules from the debugger.
void Module::dump() const { print(errs(), 0); errs().flush(); }