Lines Matching refs:ECD
14119 static bool ValidDuplicateEnum(EnumConstantDecl *ECD, EnumDecl *Enum) { in ValidDuplicateEnum() argument
14120 Expr *InitExpr = ECD->getInitExpr(); in ValidDuplicateEnum()
14146 if (cast<EnumDecl>(TagDecl::castFromDeclContext(ECD->getDeclContext())) != in ValidDuplicateEnum()
14207 EnumConstantDecl *ECD = cast_or_null<EnumConstantDecl>(Elements[i]); in CheckForDuplicateEnumValues() local
14211 if (!ECD) { in CheckForDuplicateEnumValues()
14215 if (ECD->getInitExpr()) in CheckForDuplicateEnumValues()
14218 DupKey Key = GetDupKey(ECD->getInitVal()); in CheckForDuplicateEnumValues()
14223 Entry = ECD; in CheckForDuplicateEnumValues()
14228 EnumConstantDecl *ECD = cast<EnumConstantDecl>(Elements[i]); in CheckForDuplicateEnumValues() local
14229 if (!ValidDuplicateEnum(ECD, Enum)) in CheckForDuplicateEnumValues()
14232 DupKey Key = GetDupKey(ECD->getInitVal()); in CheckForDuplicateEnumValues()
14240 if (D == ECD) in CheckForDuplicateEnumValues()
14246 Vec->push_back(ECD); in CheckForDuplicateEnumValues()
14259 if (*Vec->begin() == ECD) in CheckForDuplicateEnumValues()
14262 Vec->push_back(ECD); in CheckForDuplicateEnumValues()
14330 EnumConstantDecl *ECD = in ActOnEnumBody() local
14332 if (!ECD) continue; in ActOnEnumBody()
14334 ECD->setType(EnumType); in ActOnEnumBody()
14357 EnumConstantDecl *ECD = in ActOnEnumBody() local
14359 if (!ECD) continue; // Already issued a diagnostic. in ActOnEnumBody()
14361 const llvm::APSInt &InitVal = ECD->getInitVal(); in ActOnEnumBody()
14373 AllElementsInt = ECD->getType() == Context.IntTy; in ActOnEnumBody()
14472 auto *ECD = cast_or_null<EnumConstantDecl>(D); in ActOnEnumBody() local
14473 if (!ECD) continue; // Already issued a diagnostic. in ActOnEnumBody()
14482 llvm::APSInt InitVal = ECD->getInitVal(); in ActOnEnumBody()
14495 } else if (ECD->getType() == BestType) { in ActOnEnumBody()
14501 ECD->setType(EnumType); in ActOnEnumBody()
14512 ECD->setInitVal(InitVal); in ActOnEnumBody()
14515 if (ECD->getInitExpr() && in ActOnEnumBody()
14516 !Context.hasSameType(NewTy, ECD->getInitExpr()->getType())) in ActOnEnumBody()
14517 ECD->setInitExpr(ImplicitCastExpr::Create(Context, NewTy, in ActOnEnumBody()
14519 ECD->getInitExpr(), in ActOnEnumBody()
14526 ECD->setType(EnumType); in ActOnEnumBody()
14528 ECD->setType(NewTy); in ActOnEnumBody()
14538 EnumConstantDecl *ECD = cast_or_null<EnumConstantDecl>(D); in ActOnEnumBody() local
14539 if (!ECD) continue; // Already issued a diagnostic. in ActOnEnumBody()
14541 llvm::APSInt InitVal = ECD->getInitVal(); in ActOnEnumBody()
14544 Diag(ECD->getLocation(), diag::warn_flag_enum_constant_out_of_range) in ActOnEnumBody()
14545 << ECD << Enum; in ActOnEnumBody()