diff options
author | Manuel Klimek <klimek@google.com> | 2013-06-07 11:27:53 +0000 |
---|---|---|
committer | Manuel Klimek <klimek@google.com> | 2013-06-07 11:27:53 +0000 |
commit | e29ec9680a6650b80cede7ecb68480283c41f1ff (patch) | |
tree | 6a71a7f2ee88a813e99702083129b0ab6357bd73 /clang/lib/Sema/SemaTemplateVariadic.cpp | |
parent | f0ec19944860fb62cf02bfe816417802ad637e13 (diff) | |
download | bcm5719-llvm-e29ec9680a6650b80cede7ecb68480283c41f1ff.tar.gz bcm5719-llvm-e29ec9680a6650b80cede7ecb68480283c41f1ff.zip |
Reverts r183466: "Perform dynamic alignment computations..."
This introduces bugs in TemplateSpecializationTypeLoc's angle bracket
locations.
Regression test follows in a subsequent commit.
llvm-svn: 183513
Diffstat (limited to 'clang/lib/Sema/SemaTemplateVariadic.cpp')
-rw-r--r-- | clang/lib/Sema/SemaTemplateVariadic.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/clang/lib/Sema/SemaTemplateVariadic.cpp b/clang/lib/Sema/SemaTemplateVariadic.cpp index cb6f4c19de0..3b8228016c5 100644 --- a/clang/lib/Sema/SemaTemplateVariadic.cpp +++ b/clang/lib/Sema/SemaTemplateVariadic.cpp @@ -18,7 +18,6 @@ #include "clang/Sema/ScopeInfo.h" #include "clang/Sema/SemaInternal.h" #include "clang/Sema/Template.h" -#include "TypeLocBuilder.h" using namespace clang; @@ -464,13 +463,17 @@ Sema::CheckPackExpansion(TypeSourceInfo *Pattern, SourceLocation EllipsisLoc, EllipsisLoc, NumExpansions); if (Result.isNull()) return 0; - - TypeLocBuilder TLB; - TLB.pushFullCopy(Pattern->getTypeLoc()); - PackExpansionTypeLoc TL = TLB.push<PackExpansionTypeLoc>(Result); + + TypeSourceInfo *TSResult = Context.CreateTypeSourceInfo(Result); + PackExpansionTypeLoc TL = + TSResult->getTypeLoc().castAs<PackExpansionTypeLoc>(); TL.setEllipsisLoc(EllipsisLoc); - - return TLB.getTypeSourceInfo(Context, Result); + + // Copy over the source-location information from the type. + memcpy(TL.getNextTypeLoc().getOpaqueData(), + Pattern->getTypeLoc().getOpaqueData(), + Pattern->getTypeLoc().getFullDataSize()); + return TSResult; } QualType Sema::CheckPackExpansion(QualType Pattern, SourceRange PatternRange, |