diff options
author | Duncan Sands <baldrick@free.fr> | 2009-11-16 15:28:17 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2009-11-16 15:28:17 +0000 |
commit | 4007324b58db24b0d358445a0a866a9047dac75e (patch) | |
tree | baa2b16b6e23fa790758b3b2141371cfa70316a8 /include/llvm | |
parent | ddff941357bd836243ed7004ab88db09490176d8 (diff) | |
download | external_llvm-4007324b58db24b0d358445a0a866a9047dac75e.zip external_llvm-4007324b58db24b0d358445a0a866a9047dac75e.tar.gz external_llvm-4007324b58db24b0d358445a0a866a9047dac75e.tar.bz2 |
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*.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88913 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Support/Compiler.h | 6 | ||||
-rw-r--r-- | include/llvm/Support/IRBuilder.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/Support/Compiler.h b/include/llvm/Support/Compiler.h index da31f98..cce652f 100644 --- a/include/llvm/Support/Compiler.h +++ b/include/llvm/Support/Compiler.h @@ -78,4 +78,10 @@ #define NORETURN #endif +#ifdef __GNUC__ +#define ERROR_IF_USED __attribute__((error("wrong usage"))) +#else +#define ERROR_IF_USED +#endif + #endif diff --git a/include/llvm/Support/IRBuilder.h b/include/llvm/Support/IRBuilder.h index 05c3c56..1d3c08c 100644 --- a/include/llvm/Support/IRBuilder.h +++ b/include/llvm/Support/IRBuilder.h @@ -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; |