diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-15 01:22:58 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-08-15 01:22:58 +0000 |
commit | f3bb0b2a9bbcf5347170f028a8a2d10b4c70eb04 (patch) | |
tree | 1cd0676e5ce3492619c2eec1edb02e564fc65dae /clang/lib/AST/TemplateBase.cpp | |
parent | 3e4530756496559ece7cf196230a07e836940415 (diff) | |
download | bcm5719-llvm-f3bb0b2a9bbcf5347170f028a8a2d10b4c70eb04.tar.gz bcm5719-llvm-f3bb0b2a9bbcf5347170f028a8a2d10b4c70eb04.zip |
Fix overallocation and underalignment of ASTTemplateArgumentListInfo objects.
llvm-svn: 161918
Diffstat (limited to 'clang/lib/AST/TemplateBase.cpp')
-rw-r--r-- | clang/lib/AST/TemplateBase.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/AST/TemplateBase.cpp b/clang/lib/AST/TemplateBase.cpp index f8dd396d92d..95ff4edf1d6 100644 --- a/clang/lib/AST/TemplateBase.cpp +++ b/clang/lib/AST/TemplateBase.cpp @@ -556,8 +556,7 @@ const DiagnosticBuilder &clang::operator<<(const DiagnosticBuilder &DB, const ASTTemplateArgumentListInfo * ASTTemplateArgumentListInfo::Create(ASTContext &C, const TemplateArgumentListInfo &List) { - std::size_t size = sizeof(CXXDependentScopeMemberExpr) + - ASTTemplateArgumentListInfo::sizeFor(List.size()); + std::size_t size = ASTTemplateArgumentListInfo::sizeFor(List.size()); void *Mem = C.Allocate(size, llvm::alignOf<ASTTemplateArgumentListInfo>()); ASTTemplateArgumentListInfo *TAI = new (Mem) ASTTemplateArgumentListInfo(); TAI->initializeFrom(List); @@ -642,6 +641,7 @@ ASTTemplateKWAndArgsInfo::initializeFrom(SourceLocation TemplateKWLoc) { std::size_t ASTTemplateKWAndArgsInfo::sizeFor(unsigned NumTemplateArgs) { // Add space for the template keyword location. + // FIXME: There's room for this in the padding before the template args in + // 64-bit builds. return Base::sizeFor(NumTemplateArgs) + sizeof(SourceLocation); } - |