diff options
| author | David Blaikie <dblaikie@gmail.com> | 2012-11-08 22:53:48 +0000 |
|---|---|---|
| committer | David Blaikie <dblaikie@gmail.com> | 2012-11-08 22:53:48 +0000 |
| commit | 3a0de21233f49a15aca7ebeeba5cbc4feb482493 (patch) | |
| tree | b19d0f8cd4a133f254d5e3074bf67b8b17f0fe19 /clang/lib/AST | |
| parent | 641bd89d6b5e7378fdcc989e09ee1fcf6edf9f70 (diff) | |
| download | bcm5719-llvm-3a0de21233f49a15aca7ebeeba5cbc4feb482493.tar.gz bcm5719-llvm-3a0de21233f49a15aca7ebeeba5cbc4feb482493.zip | |
Fix a source range regression in C++ new expressions with call initializers.
Introduced in r167507, discovered in review by Abramo Bagnara.
llvm-svn: 167597
Diffstat (limited to 'clang/lib/AST')
| -rw-r--r-- | clang/lib/AST/ExprCXX.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp index f60f195b363..55722a2a99a 100644 --- a/clang/lib/AST/ExprCXX.cpp +++ b/clang/lib/AST/ExprCXX.cpp @@ -130,6 +130,14 @@ CXXNewExpr::CXXNewExpr(ASTContext &C, bool globalNew, FunctionDecl *operatorNew, SubExprs[i++] = placementArgs[j]; } + + switch (getInitializationStyle()) { + case CallInit: + this->Range.setEnd(DirectInitRange.getEnd()); break; + case ListInit: + this->Range.setEnd(getInitializer()->getSourceRange().getEnd()); break; + default: break; + } } void CXXNewExpr::AllocateArgsArray(ASTContext &C, bool isArray, |

