1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00

Make sure that if anyone passes a name by accident for the isSigned

parameter of CreateIntCast then they get an error from the compiler
(or from the linker with a non-gcc compiler).  Another possibility
is to flip the order of the DestTy and isSigned parameters, since you
should then get a compiler warning if you try to use a char* for a
Type*.

llvm-svn: 88913
This commit is contained in:
Duncan Sands 2009-11-16 15:28:17 +00:00
parent 6469fa6824
commit d67a1e3fa8
2 changed files with 9 additions and 0 deletions

View File

@ -78,4 +78,10 @@
#define NORETURN
#endif
#ifdef __GNUC__
#define ERROR_IF_USED __attribute__((error("wrong usage")))
#else
#define ERROR_IF_USED
#endif
#endif

View File

@ -709,6 +709,9 @@ public:
return Folder.CreateIntCast(VC, DestTy, isSigned);
return Insert(CastInst::CreateIntegerCast(V, DestTy, isSigned), Name);
}
// Provided to resolve 'CreateIntCast(Ptr, Ptr, "...")', instead of converting
// the string to 'bool' for the isSigned parameter.
ERROR_IF_USED Value *CreateIntCast(Value *, const Type *, const char *);
Value *CreateFPCast(Value *V, const Type *DestTy, const Twine &Name = "") {
if (V->getType() == DestTy)
return V;