Lines Matching defs:ultimate
49 const auto &ultimate{GetAssociationRoot(symbol)};
50 return IsNamedConstant(ultimate) || IsImpliedDoIndex(ultimate) ||
51 IsInitialProcedureTarget(ultimate) ||
52 ultimate.has<semantics::TypeParamDetails>() ||
239 const Symbol &ultimate{symbol.GetUltimate()};
241 ultimate.detailsIf<semantics::AssocEntityDetails>()}) {
248 ultimate.name());
253 } else if (!CheckVarOrComponent(ultimate)) {
255 } else if (!ultimate.attrs().test(semantics::Attr::TARGET)) {
259 ultimate.name());
263 } else if (!IsSaved(ultimate)) {
267 ultimate.name());
322 const Symbol &ultimate{symbol.GetUltimate()};
324 if (ultimate.Corank() > 0) {
326 } else if (IsAllocatable(ultimate)) {
328 } else if (IsPointer(ultimate)) {
336 unacceptable, ultimate.name());
358 const auto &ultimate{symbol.GetUltimate()};
370 return !semantics::IsPointer(ultimate) && !proc.isDummy();
374 ultimate.details());
529 const auto &ultimate{symbol.GetUltimate()};
530 const auto *object{ultimate.detailsIf<semantics::ObjectEntityDetails>()};
531 bool isInitialized{semantics::IsSaved(ultimate) &&
532 !IsAllocatable(ultimate) && object &&
533 (ultimate.test(Symbol::Flag::InDataStmt) ||
536 ultimate.detailsIf<semantics::AssocEntityDetails>()}) {
538 } else if (semantics::IsNamedConstant(ultimate) ||
539 ultimate.owner().IsModule() || ultimate.owner().IsSubmodule()) {
542 IsVariableName(ultimate)) { // C750, C754
545 ultimate.name().ToString() + "'";
546 } else if (IsDummy(ultimate)) {
549 ultimate.name().ToString() + "'";
550 } else if (ultimate.attrs().test(semantics::Attr::OPTIONAL)) {
552 ultimate.name().ToString() + "'";
554 ultimate.attrs().test(semantics::Attr::INTENT_OUT)) {
556 ultimate.name().ToString() + "'";
557 } else if (ultimate.has<semantics::ObjectEntityDetails>()) {
562 } else if (&symbol.owner() != &scope_ || &ultimate.owner() != &scope_) {
572 ultimate.name().ToString());
576 ultimate.detailsIf<semantics::ObjectEntityDetails>()}) {
584 return "reference to local entity '"s + ultimate.name().ToString() + "'";
649 const Symbol &ultimate{symbol->GetUltimate()};
650 if (!semantics::IsPureProcedure(ultimate)) {
651 return "reference to impure function '"s + ultimate.name().ToString() +
654 if (semantics::IsStmtFunction(ultimate)) {
656 ultimate.name().ToString() + "'";
659 return "reference to function '"s + ultimate.name().ToString() +
672 ultimate.name().ToString() != "__builtin_c_funloc") {
673 return "reference to function '"s + ultimate.name().ToString() +
844 const auto &ultimate{symbol.GetUltimate()};
845 if (ultimate.attrs().test(semantics::Attr::CONTIGUOUS)) {
849 } else if (ultimate.Rank() == 0) {
855 ultimate.detailsIf<semantics::AssocEntityDetails>()}) {
860 return Base::operator()(ultimate); // use expr
862 } else if (semantics::IsPointer(ultimate) ||
863 semantics::IsAssumedShape(ultimate) || IsAssumedRank(ultimate)) {
865 } else if (ultimate.has<semantics::ObjectEntityDetails>()) {
868 return Base::operator()(ultimate);
1211 const Symbol &ultimate{symbol->GetUltimate()};
1213 ultimate.detailsIf<semantics::SubprogramDetails>()}) {
1214 if (subp->stmtFunction() && &ultimate.owner() == &sf_.owner()) {
1215 if (ultimate.name().begin() > sf_.name().begin()) {
1218 sf_.name(), ultimate.name()};