diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-01-20 01:19:46 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-01-20 01:19:46 +0000 |
| commit | 187ffb4a8e13dafb90b7f371325065d0d648a4a1 (patch) | |
| tree | bdcd2f0787db1695de7f3e13bf333693dd164bdc /clang/lib | |
| parent | 24a2ebe67711ef063a737b973c43610dc29b0269 (diff) | |
| download | bcm5719-llvm-187ffb4a8e13dafb90b7f371325065d0d648a4a1.tar.gz bcm5719-llvm-187ffb4a8e13dafb90b7f371325065d0d648a4a1.zip | |
PR31701: Fix crash on invalid caused by parsing a dependent initializer when we
don't know we're in a dependent context.
llvm-svn: 292561
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/ASTContext.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index d9b0d390808..5624758670b 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -9021,7 +9021,8 @@ bool ASTContext::DeclMustBeEmitted(const Decl *D) { // Variables that have initialization with side-effects are required. if (VD->getInit() && VD->getInit()->HasSideEffects(*this) && - !VD->evaluateValue()) + // We can get a value-dependent initializer during error recovery. + (VD->getInit()->isValueDependent() || !VD->evaluateValue())) return true; // Likewise, variables with tuple-like bindings are required if their |

