[flang] Add runtime interface for GET_ENVIRONMENT_VARIABLE
authorDiana Picus <diana.picus@linaro.org>
Wed, 6 Oct 2021 10:56:10 +0000 (10:56 +0000)
committerDiana Picus <diana.picus@linaro.org>
Tue, 12 Oct 2021 08:11:47 +0000 (08:11 +0000)
Split into 2 entry points, one for the length and one for the value.

Differential Revision: https://reviews.llvm.org/D111392

flang/include/flang/Runtime/command.h

index f5f20a5..45a9f11 100644 (file)
@@ -35,6 +35,21 @@ std::int32_t RTNAME(ArgumentValue)(
 // Try to get the significant length of the n'th argument.
 // Returns 0 if it doesn't manage.
 std::int64_t RTNAME(ArgumentLength)(std::int32_t n);
+
+// 16.9.84 GET_ENVIRONMENT_VARIABLE
+// We're breaking up the interface into several different functions, since most
+// of the parameters are optional.
+
+// Try to get the value of the environment variable specified by NAME.
+// Returns a STATUS as described in the standard.
+std::int32_t RTNAME(EnvVariableValue)(const Descriptor &name,
+    const Descriptor *value = nullptr, bool trim_name = true,
+    const Descriptor *errmsg = nullptr);
+
+// Try to get the significant length of the environment variable specified by
+// NAME. Returns 0 if it doesn't manage.
+std::int64_t RTNAME(EnvVariableLength)(
+    const Descriptor &name, bool trim_name = true);
 }
 } // namespace Fortran::runtime