From 0cd7fc28d4f69b281522b1bc96decd2b92cfd812 Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Wed, 18 Feb 2009 00:29:14 +0000 Subject: [PATCH] Add ASTContext::MakeIntValue - Makes an APSInt given a uint64_t and a type, with the appropriate width and signedness to match the type. Yay for functional over imperative. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64863 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/AST/ASTContext.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/clang/AST/ASTContext.h b/include/clang/AST/ASTContext.h index 0cb2b35f5a..349b6e3f83 100644 --- a/include/clang/AST/ASTContext.h +++ b/include/clang/AST/ASTContext.h @@ -615,6 +615,18 @@ public: void Emit(llvm::Serializer& S) const; static ASTContext* Create(llvm::Deserializer& D); + //===--------------------------------------------------------------------===// + // Integer Values + //===--------------------------------------------------------------------===// + + /// MakeIntValue - Make an APSInt of the appropriate width and + /// signedness for the given \arg Value and integer \arg Type. + llvm::APSInt MakeIntValue(uint64_t Value, QualType Type) { + llvm::APSInt Res(getIntWidth(Type), !Type->isSignedIntegerType()); + Res = Value; + return Res; + } + private: ASTContext(const ASTContext&); // DO NOT IMPLEMENT void operator=(const ASTContext&); // DO NOT IMPLEMENT -- 2.50.1