Lines Matching refs:ECD

9897           if (auto *ECD = dyn_cast<EnumConstantDecl>(NonParmDecl))  in ActOnFunctionDeclarator()  local
9898 TD = cast<EnumDecl>(ECD->getDeclContext()); in ActOnFunctionDeclarator()
18760 static bool ValidDuplicateEnum(EnumConstantDecl *ECD, EnumDecl *Enum) { in ValidDuplicateEnum() argument
18761 Expr *InitExpr = ECD->getInitExpr(); in ValidDuplicateEnum()
18787 if (cast<EnumDecl>(TagDecl::castFromDeclContext(ECD->getDeclContext())) != in ValidDuplicateEnum()
18829 EnumConstantDecl *ECD = cast_or_null<EnumConstantDecl>(Element); in CheckForDuplicateEnumValues() local
18833 if (!ECD) { in CheckForDuplicateEnumValues()
18838 if (ECD->getInitExpr()) in CheckForDuplicateEnumValues()
18842 EnumMap.insert({EnumConstantToKey(ECD), ECD}); in CheckForDuplicateEnumValues()
18851 EnumConstantDecl *ECD = cast<EnumConstantDecl>(Element); in CheckForDuplicateEnumValues() local
18852 if (!ValidDuplicateEnum(ECD, Enum)) in CheckForDuplicateEnumValues()
18855 auto Iter = EnumMap.find(EnumConstantToKey(ECD)); in CheckForDuplicateEnumValues()
18862 if (D == ECD) in CheckForDuplicateEnumValues()
18868 Vec->push_back(ECD); in CheckForDuplicateEnumValues()
18881 if (*Vec->begin() == ECD) in CheckForDuplicateEnumValues()
18884 Vec->push_back(ECD); in CheckForDuplicateEnumValues()
18899 for (auto *ECD : llvm::drop_begin(*Vec)) in CheckForDuplicateEnumValues() local
18900 S.Diag(ECD->getLocation(), diag::note_duplicate_element) in CheckForDuplicateEnumValues()
18901 << ECD << toString(ECD->getInitVal(), 10) in CheckForDuplicateEnumValues()
18902 << ECD->getSourceRange(); in CheckForDuplicateEnumValues()
18945 EnumConstantDecl *ECD = in ActOnEnumBody() local
18947 if (!ECD) continue; in ActOnEnumBody()
18949 ECD->setType(EnumType); in ActOnEnumBody()
18969 EnumConstantDecl *ECD = in ActOnEnumBody() local
18971 if (!ECD) continue; // Already issued a diagnostic. in ActOnEnumBody()
18973 const llvm::APSInt &InitVal = ECD->getInitVal(); in ActOnEnumBody()
19092 auto *ECD = cast_or_null<EnumConstantDecl>(D); in ActOnEnumBody() local
19093 if (!ECD) continue; // Already issued a diagnostic. in ActOnEnumBody()
19102 llvm::APSInt InitVal = ECD->getInitVal(); in ActOnEnumBody()
19115 } else if (ECD->getType() == BestType) { in ActOnEnumBody()
19121 ECD->setType(EnumType); in ActOnEnumBody()
19132 ECD->setInitVal(InitVal); in ActOnEnumBody()
19135 if (ECD->getInitExpr() && in ActOnEnumBody()
19136 !Context.hasSameType(NewTy, ECD->getInitExpr()->getType())) in ActOnEnumBody()
19137 ECD->setInitExpr(ImplicitCastExpr::Create( in ActOnEnumBody()
19138 Context, NewTy, CK_IntegralCast, ECD->getInitExpr(), in ActOnEnumBody()
19144 ECD->setType(EnumType); in ActOnEnumBody()
19146 ECD->setType(NewTy); in ActOnEnumBody()
19156 EnumConstantDecl *ECD = cast_or_null<EnumConstantDecl>(D); in ActOnEnumBody() local
19157 if (!ECD) continue; // Already issued a diagnostic. in ActOnEnumBody()
19159 llvm::APSInt InitVal = ECD->getInitVal(); in ActOnEnumBody()
19162 Diag(ECD->getLocation(), diag::warn_flag_enum_constant_out_of_range) in ActOnEnumBody()
19163 << ECD << Enum; in ActOnEnumBody()