From: Daniel Dunbar Date: Wed, 18 Feb 2009 00:29:14 +0000 (+0000) Subject: Add ASTContext::MakeIntValue X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0cd7fc28d4f69b281522b1bc96decd2b92cfd812;p=clang 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 --- 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