PR20256: don't accidentally instantiate non-dependent default-initialization as
value-initialization.
llvm-svn: 212764
diff --git a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
index c655d3f..accec95 100644
--- a/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+++ b/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
@@ -3679,8 +3679,9 @@
bool TypeMayContainAuto = true;
Expr *InitExpr = Init.get();
- if (Var->hasAttr<DLLImportAttr>() && InitExpr &&
- !InitExpr->isConstantInitializer(getASTContext(), false)) {
+ if (Var->hasAttr<DLLImportAttr>() &&
+ (!InitExpr ||
+ !InitExpr->isConstantInitializer(getASTContext(), false))) {
// Do not dynamically initialize dllimport variables.
} else if (InitExpr) {
bool DirectInit = OldVar->isDirectInit();