SYSTEM_CLOCK may take up to 3 optional parameters, all of which are
INTENT(OUT). The COUNT and COUNT_MAX parameters are integer scalars,
while COUNT_RATE may be a real or integer scalar.
This patch breaks up the interface into 3 different functions, one for
each parameter. All 3 return integers. It is up to lowering to convert
the results to the preferred type.
Differential Revision: https://reviews.llvm.org/D104851
// real kind.
double RTNAME(CpuTime)();
+// Interface for the SYSTEM_CLOCK intrinsic. We break it up into 3 distinct
+// function calls, one for each of SYSTEM_CLOCK's optional output arguments.
+// Lowering will have to cast the results to whatever type it prefers.
+CppTypeFor<TypeCategory::Integer, 8> RTNAME(SystemClockCount)();
+CppTypeFor<TypeCategory::Integer, 8> RTNAME(SystemClockCountRate)();
+CppTypeFor<TypeCategory::Integer, 8> RTNAME(SystemClockCountMax)();
} // extern "C"
} // namespace Fortran::runtime
#endif // FORTRAN_RUNTIME_TIME_INTRINSIC_H_