From 4283d49e06cdf09963fddcd144dd7625070cd46d Mon Sep 17 00:00:00 2001 From: Alkis Evlogimenos Date: Sat, 23 Apr 2005 00:11:21 +0000 Subject: [PATCH] Add method to return the type this type will be promoted to if it is passed through a variable argument function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21462 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Type.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/include/llvm/Type.h b/include/llvm/Type.h index f832427934f..443a6bcdc30 100644 --- a/include/llvm/Type.h +++ b/include/llvm/Type.h @@ -236,6 +236,20 @@ public: return getForwardedTypeInternal(); } + /// getVAArgsPromotedType - Return the type an argument of this type + /// will be promoted to if passed through a variable argument + /// function. + const Type *getVAArgsPromotedType() const { + if (ID == BoolTyID || ID == UByteTyID || ID == UShortTyID) + return Type::UIntTy; + else if (ID == SByteTyID || ID == ShortTyID) + return Type::IntTy; + else if (ID == FloatTyID) + return Type::DoubleTy; + else + return this; + } + //===--------------------------------------------------------------------===// // Type Iteration support //