r243972 - [ASTContext] Add a templated convenience wrapper for Allocate.
Benjamin Kramer
benny.kra at googlemail.com
Tue Aug 4 05:34:23 PDT 2015
Author: d0k
Date: Tue Aug 4 07:34:23 2015
New Revision: 243972
URL: http://llvm.org/viewvc/llvm-project?rev=243972&view=rev
Log:
[ASTContext] Add a templated convenience wrapper for Allocate.
This brings ASTContext closer to LLVM's Allocator concept. Ideally we
would just derive ASTContext from llvm::AllocatorBase, but that does
not work because ASTContext's allocator is mutable and we allocate using
const ASTContext& everywhere.
Modified:
cfe/trunk/include/clang/AST/ASTContext.h
cfe/trunk/lib/AST/Stmt.cpp
Modified: cfe/trunk/include/clang/AST/ASTContext.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/ASTContext.h?rev=243972&r1=243971&r2=243972&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/ASTContext.h (original)
+++ cfe/trunk/include/clang/AST/ASTContext.h Tue Aug 4 07:34:23 2015
@@ -501,6 +501,9 @@ public:
void *Allocate(size_t Size, unsigned Align = 8) const {
return BumpAlloc.Allocate(Size, Align);
}
+ template <typename T> T *Allocate(size_t Num = 1) const {
+ return static_cast<T *>(Allocate(Num * sizeof(T), llvm::alignOf<T>()));
+ }
void Deallocate(void *Ptr) const { }
/// Return the total amount of physical memory allocated for representing
Modified: cfe/trunk/lib/AST/Stmt.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/Stmt.cpp?rev=243972&r1=243971&r2=243972&view=diff
==============================================================================
--- cfe/trunk/lib/AST/Stmt.cpp (original)
+++ cfe/trunk/lib/AST/Stmt.cpp Tue Aug 4 07:34:23 2015
@@ -724,7 +724,7 @@ MSAsmStmt::MSAsmStmt(const ASTContext &C
}
static StringRef copyIntoContext(const ASTContext &C, StringRef str) {
- return str.copy(C.getAllocator());
+ return str.copy(C);
}
void MSAsmStmt::initialize(const ASTContext &C, StringRef asmstr,
More information about the cfe-commits
mailing list