Lines Matching defs:ultimate
3231 // Two ultimate symbols are distinct, but they have the same name and come
3234 // Check whether the two ultimate symbols have compatible definitions.
3911 const Symbol *ultimate{nullptr};
3922 ultimate = &bypassed.GetUltimate();
3923 defClass = ClassifyProcedure(*ultimate);
3954 } else if (!ultimate) {
3955 } else if (symbolsSeen.insert(*ultimate).second /*true if added*/) {
3957 // is saved in the generic's specifics, not its ultimate symbol,
3960 } else if (specific == ultimate) {
3967 ultimate->name(), ultimate->owner().GetName().value(),
4053 Symbol &ultimate{symbol->GetUltimate()};
4054 if (ultimate.has<ObjectEntityDetails>() ||
4055 ultimate.has<AssocEntityDetails>() ||
4056 CouldBeDataPointerValuedFunction(&ultimate) ||
4067 } else if (auto *entity{ultimate.detailsIf<EntityDetails>()};
4068 entity && !ultimate.has<ProcEntityDetails>()) {
4070 ultimate.details() = UnknownDetails{}; // will be replaced below
6048 "be of a type with a coarray ultimate component (named "
6057 "coarray ultimate component (named '%s')"_err_en_US,
6262 const Symbol &ultimate{details->symbol().GetUltimate()};
6263 const Symbol &procedure{BypassGeneric(ultimate)};
6264 if (&procedure != &ultimate) {
7081 Symbol *ultimate{symbol ? &symbol->GetUltimate() : nullptr};
7082 auto *generic{ultimate ? ultimate->detailsIf<GenericDetails>() : nullptr};
7090 (generic && &ultimate->owner() == &outer)) {
7109 !ultimate->has<GenericDetails>()) {
7154 const Symbol &ultimate{symbol->GetUltimate()};
7155 if (!context().HasError(*symbol) && !context().HasError(ultimate) &&
7156 !BypassGeneric(ultimate).HasExplicitInterface()) {
8535 Symbol &ultimate{name.symbol->GetUltimate()};
8542 if (IsNamedConstant(ultimate) || inComponentDecl) {
8548 ultimate.set(Symbol::Flag::InDataStmt);
8557 } else if (IsPointer(ultimate)) {
8558 if (auto *object{ultimate.detailsIf<ObjectEntityDetails>()}) {
8562 ultimate.detailsIf<ProcEntityDetails>()}) {
8578 ultimate.set(Symbol::Flag::InDataStmt);
8582 ultimate.set(Symbol::Flag::InDataStmt);
8592 Symbol &ultimate{name.symbol->GetUltimate()};
8593 if (!context().HasError(ultimate)) {
8594 if (IsPointer(ultimate)) {
8598 if (auto *details{ultimate.detailsIf<ObjectEntityDetails>()}) {
8601 ultimate.set(Symbol::Flag::InDataStmt, false);
8602 } else if (auto *details{ultimate.detailsIf<ProcEntityDetails>()}) {
8614 context().SetError(ultimate);
8621 context().SetError(ultimate);
8629 Symbol &ultimate{name.symbol->GetUltimate()};
8630 if (!context().HasError(ultimate)) {
8631 if (IsProcedurePointer(ultimate)) {
8632 auto &details{ultimate.get<ProcEntityDetails>()};
8635 context().SetError(ultimate);
8649 context().SetError(ultimate);
8658 Symbol &ultimate{name.symbol->GetUltimate()};
8659 if (!context().HasError(ultimate)) {
8660 if (IsPointer(ultimate)) {
8663 } else if (auto *details{ultimate.detailsIf<ObjectEntityDetails>()}) {
8667 } else if (IsAllocatable(ultimate)) {
8669 } else if (ultimate.owner().IsParameterizedDerivedType()) {
8673 ultimate, expr, expr.thing.value().source)}) {
8675 ultimate.set(Symbol::Flag::InDataStmt, false);
8796 // Operate on non ultimate symbol so that HostAssocDetails are also
9152 Symbol &ultimate{existing->GetUltimate()};
9153 if (auto *existingGeneric{ultimate.detailsIf<GenericDetails>()}) {
9164 } else if (existing == &ultimate) {
9175 } else if (ultimate.has<SubprogramDetails>() ||
9176 ultimate.has<SubprogramNameDetails>()) {
9178 } else if (ultimate.has<ProcEntityDetails>()) {
9180 !ultimate.attrs().test(Attr::INTRINSIC)) {
9183 } else if (ultimate.has<DerivedTypeDetails>()) {
9321 const Symbol &ultimate{symbol->GetUltimate()};
9322 if (&ultimate.owner() == &currScope()) {