diff options
author | Hubert Tong <hubert.reinterpretcast@gmail.com> | 2015-09-01 22:50:31 +0000 |
---|---|---|
committer | Hubert Tong <hubert.reinterpretcast@gmail.com> | 2015-09-01 22:50:31 +0000 |
commit | 2cded44d82d7c6e9221419b7014a6d9053c69cf3 (patch) | |
tree | c8a5ad3dfc17b3ca13b3343e005ee4941e827e21 /clang/lib/Sema/TreeTransform.h | |
parent | 9772c6342e536188529df8c46843b397dc85d671 (diff) | |
download | bcm5719-llvm-2cded44d82d7c6e9221419b7014a6d9053c69cf3.tar.gz bcm5719-llvm-2cded44d82d7c6e9221419b7014a6d9053c69cf3.zip |
Fix assertion failure in TransformOpaqueValueExpr
Summary:
`OpaqueValueExpr`s may not have a source expression (as in the case when
they are created due to a default argument error).
This can cause an assertion failure in `TransformOpaqueValueExpr` during
template instantiation.
This patch fixes the assertion failure.
Reviewers: hfinkel, rsmith
Subscribers: fraggamuffin, cfe-commits
Differential Revision: http://reviews.llvm.org/D11582
Patch by Rachel Craik!
llvm-svn: 246600
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r-- | clang/lib/Sema/TreeTransform.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h index 9074c39ad5d..692a2f1dcb4 100644 --- a/clang/lib/Sema/TreeTransform.h +++ b/clang/lib/Sema/TreeTransform.h @@ -7806,7 +7806,7 @@ TreeTransform<Derived>::TransformOffsetOfExpr(OffsetOfExpr *E) { template<typename Derived> ExprResult TreeTransform<Derived>::TransformOpaqueValueExpr(OpaqueValueExpr *E) { - assert(getDerived().AlreadyTransformed(E->getType()) && + assert((!E->getSourceExpr() || getDerived().AlreadyTransformed(E->getType())) && "opaque value expression requires transformation"); return E; } |