diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index 5d870f07093ec..da56225b2f926 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -6620,7 +6620,7 @@ void InitializationSequence::InitializeFrom(Sema &S, // initializer present. However, we only do this for structure types, not // union types, because an unitialized field in a union is generally // reasonable, especially in C where unions can be used for type punning. - if (!Initializer && !Rec->isUnion() && !Rec->isInvalidDecl()) { + if (Var && !Initializer && !Rec->isUnion() && !Rec->isInvalidDecl()) { if (const FieldDecl *FD = getConstField(Rec)) { unsigned DiagID = diag::warn_default_init_const_field_unsafe; if (Var->getStorageDuration() == SD_Static ||