Lines Matching defs:ECD
10191 if (auto *ECD = dyn_cast<EnumConstantDecl>(NonParmDecl))
10192 TD = cast<EnumDecl>(ECD->getDeclContext());
19659 static bool ValidDuplicateEnum(EnumConstantDecl *ECD, EnumDecl *Enum) {
19660 Expr *InitExpr = ECD->getInitExpr();
19686 if (cast<EnumDecl>(TagDecl::castFromDeclContext(ECD->getDeclContext())) !=
19728 EnumConstantDecl *ECD = cast_or_null<EnumConstantDecl>(Element);
19732 if (!ECD) {
19737 if (ECD->getInitExpr())
19741 EnumMap.insert({EnumConstantToKey(ECD), ECD});
19750 EnumConstantDecl *ECD = cast<EnumConstantDecl>(Element);
19751 if (!ValidDuplicateEnum(ECD, Enum))
19754 auto Iter = EnumMap.find(EnumConstantToKey(ECD));
19761 if (D == ECD)
19767 Vec->push_back(ECD);
19780 if (*Vec->begin() == ECD)
19783 Vec->push_back(ECD);
19798 for (auto *ECD : llvm::drop_begin(*Vec))
19799 S.Diag(ECD->getLocation(), diag::note_duplicate_element)
19800 << ECD << toString(ECD->getInitVal(), 10)
19801 << ECD->getSourceRange();
19845 EnumConstantDecl *ECD =
19847 if (!ECD) continue;
19849 ECD->setType(EnumType);
19869 EnumConstantDecl *ECD =
19871 if (!ECD) continue; // Already issued a diagnostic.
19873 const llvm::APSInt &InitVal = ECD->getInitVal();
19997 auto *ECD = cast_or_null<EnumConstantDecl>(D);
19998 if (!ECD) continue; // Already issued a diagnostic.
20007 llvm::APSInt InitVal = ECD->getInitVal();
20020 } else if (ECD->getType() == BestType) {
20026 ECD->setType(EnumType);
20037 ECD->setInitVal(Context, InitVal);
20040 if (ECD->getInitExpr() &&
20041 !Context.hasSameType(NewTy, ECD->getInitExpr()->getType()))
20042 ECD->setInitExpr(ImplicitCastExpr::Create(
20043 Context, NewTy, CK_IntegralCast, ECD->getInitExpr(),
20049 ECD->setType(EnumType);
20051 ECD->setType(NewTy);
20061 EnumConstantDecl *ECD = cast_or_null<EnumConstantDecl>(D);
20062 if (!ECD) continue; // Already issued a diagnostic.
20064 llvm::APSInt InitVal = ECD->getInitVal();
20067 Diag(ECD->getLocation(), diag::warn_flag_enum_constant_out_of_range)
20068 << ECD << Enum;