diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-02-18 00:29:14 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-02-18 00:29:14 +0000 |
commit | 0cd7fc28d4f69b281522b1bc96decd2b92cfd812 (patch) | |
tree | 74b599f9907f4bac6f7a51aeafe414998e694503 | |
parent | 6f541026b6dffc2801ed825d769e5fa0af95178d (diff) |
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
-rw-r--r-- | include/clang/AST/ASTContext.h | 12 |
1 files changed, 12 insertions, 0 deletions
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 |