Skip to content

Commit

Permalink
[flang] Change "bad kind" messages in the runtime to "not yet impleme…
Browse files Browse the repository at this point in the history
…nted"

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
  • Loading branch information
psteinfeld committed May 11, 2022
1 parent cb22cb2 commit d4609ae
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
4 changes: 2 additions & 2 deletions flang/runtime/character.cpp
Expand Up @@ -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);
}
}

Expand Down Expand Up @@ -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);
}
}

Expand Down
10 changes: 6 additions & 4 deletions flang/runtime/random.cpp
Expand Up @@ -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);
}
}

Expand All @@ -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);
}
}

Expand All @@ -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};
Expand Down Expand Up @@ -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"
Expand Down
3 changes: 2 additions & 1 deletion flang/runtime/tools.cpp
Expand Up @@ -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
2 changes: 1 addition & 1 deletion flang/runtime/transformational.cpp
Expand Up @@ -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);
Expand Down

0 comments on commit d4609ae

Please sign in to comment.