@@ -14911,53 +14911,53 @@ Sema::DeclGroupPtrTy Sema::FinalizeDeclaratorGroup(Scope *S, const DeclSpec &DS,
14911
14911
DeclaratorDecl *FirstNonDeducedAutoInGroup = nullptr;
14912
14912
bool DiagnosedNonDeducedAuto = false;
14913
14913
14914
- for (unsigned i = 0, e = Group.size(); i != e; ++i) {
14915
- if (Decl *D = Group[i]) {
14916
- // Check if the Decl has been declared in '#pragma omp declare target'
14917
- // directive and has static storage duration.
14918
- if (auto *VD = dyn_cast<VarDecl>(D);
14919
- LangOpts.OpenMP && VD && VD->hasAttr<OMPDeclareTargetDeclAttr>() &&
14920
- VD->hasGlobalStorage())
14921
- OpenMP().ActOnOpenMPDeclareTargetInitializer(D);
14922
- // For declarators, there are some additional syntactic-ish checks we need
14923
- // to perform.
14924
- if (auto *DD = dyn_cast<DeclaratorDecl>(D)) {
14925
- if (!FirstDeclaratorInGroup)
14926
- FirstDeclaratorInGroup = DD;
14927
- if (!FirstDecompDeclaratorInGroup)
14928
- FirstDecompDeclaratorInGroup = dyn_cast<DecompositionDecl>(D);
14929
- if (!FirstNonDeducedAutoInGroup && DS.hasAutoTypeSpec() &&
14930
- !hasDeducedAuto(DD))
14931
- FirstNonDeducedAutoInGroup = DD;
14932
-
14933
- if (FirstDeclaratorInGroup != DD) {
14934
- // A decomposition declaration cannot be combined with any other
14935
- // declaration in the same group.
14936
- if (FirstDecompDeclaratorInGroup && !DiagnosedMultipleDecomps) {
14937
- Diag(FirstDecompDeclaratorInGroup->getLocation(),
14938
- diag::err_decomp_decl_not_alone)
14939
- << FirstDeclaratorInGroup->getSourceRange()
14940
- << DD->getSourceRange();
14941
- DiagnosedMultipleDecomps = true;
14942
- }
14914
+ for (Decl *D : Group) {
14915
+ if (!D)
14916
+ continue;
14917
+ // Check if the Decl has been declared in '#pragma omp declare target'
14918
+ // directive and has static storage duration.
14919
+ if (auto *VD = dyn_cast<VarDecl>(D);
14920
+ LangOpts.OpenMP && VD && VD->hasAttr<OMPDeclareTargetDeclAttr>() &&
14921
+ VD->hasGlobalStorage())
14922
+ OpenMP().ActOnOpenMPDeclareTargetInitializer(D);
14923
+ // For declarators, there are some additional syntactic-ish checks we need
14924
+ // to perform.
14925
+ if (auto *DD = dyn_cast<DeclaratorDecl>(D)) {
14926
+ if (!FirstDeclaratorInGroup)
14927
+ FirstDeclaratorInGroup = DD;
14928
+ if (!FirstDecompDeclaratorInGroup)
14929
+ FirstDecompDeclaratorInGroup = dyn_cast<DecompositionDecl>(D);
14930
+ if (!FirstNonDeducedAutoInGroup && DS.hasAutoTypeSpec() &&
14931
+ !hasDeducedAuto(DD))
14932
+ FirstNonDeducedAutoInGroup = DD;
14933
+
14934
+ if (FirstDeclaratorInGroup != DD) {
14935
+ // A decomposition declaration cannot be combined with any other
14936
+ // declaration in the same group.
14937
+ if (FirstDecompDeclaratorInGroup && !DiagnosedMultipleDecomps) {
14938
+ Diag(FirstDecompDeclaratorInGroup->getLocation(),
14939
+ diag::err_decomp_decl_not_alone)
14940
+ << FirstDeclaratorInGroup->getSourceRange()
14941
+ << DD->getSourceRange();
14942
+ DiagnosedMultipleDecomps = true;
14943
+ }
14943
14944
14944
- // A declarator that uses 'auto' in any way other than to declare a
14945
- // variable with a deduced type cannot be combined with any other
14946
- // declarator in the same group.
14947
- if (FirstNonDeducedAutoInGroup && !DiagnosedNonDeducedAuto) {
14948
- Diag(FirstNonDeducedAutoInGroup->getLocation(),
14949
- diag::err_auto_non_deduced_not_alone)
14950
- << FirstNonDeducedAutoInGroup->getType()
14951
- ->hasAutoForTrailingReturnType()
14952
- << FirstDeclaratorInGroup->getSourceRange()
14953
- << DD->getSourceRange();
14954
- DiagnosedNonDeducedAuto = true;
14955
- }
14945
+ // A declarator that uses 'auto' in any way other than to declare a
14946
+ // variable with a deduced type cannot be combined with any other
14947
+ // declarator in the same group.
14948
+ if (FirstNonDeducedAutoInGroup && !DiagnosedNonDeducedAuto) {
14949
+ Diag(FirstNonDeducedAutoInGroup->getLocation(),
14950
+ diag::err_auto_non_deduced_not_alone)
14951
+ << FirstNonDeducedAutoInGroup->getType()
14952
+ ->hasAutoForTrailingReturnType()
14953
+ << FirstDeclaratorInGroup->getSourceRange()
14954
+ << DD->getSourceRange();
14955
+ DiagnosedNonDeducedAuto = true;
14956
14956
}
14957
14957
}
14958
-
14959
- Decls.push_back(D);
14960
14958
}
14959
+
14960
+ Decls.push_back(D);
14961
14961
}
14962
14962
14963
14963
if (DeclSpec::isDeclRep(DS.getTypeSpecType())) {
0 commit comments