[flang] Change "bad kind" messages in the runtime to "not yet implemented"
authorPeter Steinfeld <psteinfeld@nvidia.com>
Mon, 9 May 2022 21:12:41 +0000 (14:12 -0700)
committerPeter Steinfeld <psteinfeld@nvidia.com>
Wed, 11 May 2022 03:08:03 +0000 (20:08 -0700)
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

flang/runtime/character.cpp
flang/runtime/random.cpp
flang/runtime/tools.cpp
flang/runtime/transformational.cpp

index 50f796d..2264fe6 100644 (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);
   }
 }
 
index a2753da..8f8145b 100644 (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"
index 598083b..ccea795 100644 (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
index 803c55b..ac12627 100644 (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);