[flang] Change "bad kind" messages in the runtime to "not yet implemented"

Similar to change D125046.

If a programmer is able to compile and link a program that contains types that
are not yet supported by the runtime, it must be because they're not yet
implemented.

This change will make it easier to find unimplemented code in tests.

Differential Revision: https://reviews.llvm.org/D125267
This commit is contained in:
Peter Steinfeld 2022-05-09 14:12:41 -07:00
parent cb22cb2691
commit d4609ae47d
4 changed files with 11 additions and 8 deletions

View File

@ -253,7 +253,7 @@ static void LenTrimKind(Descriptor &result, const Descriptor &string, int kind,
result, string, terminator);
break;
default:
terminator.Crash("LEN_TRIM: bad KIND=%d", kind);
terminator.Crash("not yet implemented: LEN_TRIM: KIND=%d", kind);
}
}
@ -454,7 +454,7 @@ static void GeneralCharFuncKind(Descriptor &result, const Descriptor &string,
result, string, arg, back, terminator);
break;
default:
terminator.Crash("INDEX/SCAN/VERIFY: bad KIND=%d", kind);
terminator.Crash("not yet implemented: INDEX/SCAN/VERIFY: KIND=%d", kind);
}
}

View File

@ -108,7 +108,8 @@ void RTNAME(RandomNumber)(
break;
#endif
default:
terminator.Crash("RANDOM_NUMBER(): bad REAL kind %d", kind);
terminator.Crash(
"not yet implemented: RANDOM_NUMBER(): REAL kind %d", kind);
}
}
@ -127,7 +128,8 @@ void RTNAME(RandomSeedSize)(
*size.OffsetElement<CppTypeFor<TypeCategory::Integer, 8>>() = 1;
break;
default:
terminator.Crash("RANDOM_SEED(SIZE=): bad kind %d\n", kind);
terminator.Crash(
"not yet implemented: RANDOM_SEED(SIZE=): kind %d\n", kind);
}
}
@ -148,7 +150,7 @@ void RTNAME(RandomSeedPut)(
seed = *put.OffsetElement<CppTypeFor<TypeCategory::Integer, 8>>();
break;
default:
terminator.Crash("RANDOM_SEED(PUT=): bad kind %d\n", kind);
terminator.Crash("not yet implemented: RANDOM_SEED(PUT=): kind %d\n", kind);
}
{
CriticalSection critical{lock};
@ -186,7 +188,7 @@ void RTNAME(RandomSeedGet)(
*got.OffsetElement<CppTypeFor<TypeCategory::Integer, 8>>() = seed;
break;
default:
terminator.Crash("RANDOM_SEED(GET=): bad kind %d\n", kind);
terminator.Crash("not yet implemented: RANDOM_SEED(GET=): kind %d\n", kind);
}
}
} // extern "C"

View File

@ -106,7 +106,8 @@ void CheckConformability(const Descriptor &to, const Descriptor &x,
void CheckIntegerKind(Terminator &terminator, int kind, const char *intrinsic) {
if (kind < 1 || kind > 16 || (kind & (kind - 1)) != 0) {
terminator.Crash("%s: bad KIND=%d argument", intrinsic, kind);
terminator.Crash(
"not yet implemented: %s: KIND=%d argument", intrinsic, kind);
}
}
} // namespace Fortran::runtime

View File

@ -106,7 +106,7 @@ static void DefaultInitialize(
static_cast<char32_t>(' '));
break;
default:
terminator.Crash("EOSHIFT: bad CHARACTER kind %d", kind);
terminator.Crash("not yet implemented: EOSHIFT: CHARACTER kind %d", kind);
}
} else {
std::memset(result.raw().base_addr, 0, bytes);