12#ifndef FORTRAN_RUNTIME_STAT_H_
13#define FORTRAN_RUNTIME_STAT_H_
14#include "flang/Common/api-attrs.h"
15#include "flang/ISO_Fortran_binding_wrapper.h"
16#include "flang/Runtime/magic-numbers.h"
17namespace Fortran::runtime {
28 StatBaseNull = CFI_ERROR_BASE_ADDR_NULL,
29 StatBaseNotNull = CFI_ERROR_BASE_ADDR_NOT_NULL,
30 StatInvalidElemLen = CFI_INVALID_ELEM_LEN,
31 StatInvalidRank = CFI_INVALID_RANK,
32 StatInvalidType = CFI_INVALID_TYPE,
33 StatInvalidAttribute = CFI_INVALID_ATTRIBUTE,
34 StatInvalidExtent = CFI_INVALID_EXTENT,
35 StatInvalidDescriptor = CFI_INVALID_DESCRIPTOR,
36 StatMemAllocation = CFI_ERROR_MEM_ALLOCATION,
37 StatOutOfBounds = CFI_ERROR_OUT_OF_BOUNDS,
40 StatFailedImage = FORTRAN_RUNTIME_STAT_FAILED_IMAGE,
41 StatLocked = FORTRAN_RUNTIME_STAT_LOCKED,
42 StatLockedOtherImage = FORTRAN_RUNTIME_STAT_LOCKED_OTHER_IMAGE,
43 StatMissingEnvVariable = FORTRAN_RUNTIME_STAT_MISSING_ENV_VAR,
44 StatMissingCurrentWorkDirectory = FORTRAN_RUNTIME_STAT_MISSING_CWD,
45 StatStoppedImage = FORTRAN_RUNTIME_STAT_STOPPED_IMAGE,
46 StatUnlocked = FORTRAN_RUNTIME_STAT_UNLOCKED,
47 StatUnlockedFailedImage = FORTRAN_RUNTIME_STAT_UNLOCKED_FAILED_IMAGE,
50 StatInvalidArgumentNumber = FORTRAN_RUNTIME_STAT_INVALID_ARG_NUMBER,
51 StatMissingArgument = FORTRAN_RUNTIME_STAT_MISSING_ARG,
52 StatValueTooShort = FORTRAN_RUNTIME_STAT_VALUE_TOO_SHORT,
53 StatMoveAllocSameAllocatable =
54 FORTRAN_RUNTIME_STAT_MOVE_ALLOC_SAME_ALLOCATABLE,
55 StatBadPointerDeallocation = FORTRAN_RUNTIME_STAT_BAD_POINTER_DEALLOCATION,
58RT_API_ATTRS
const char *StatErrorString(
int);
59RT_API_ATTRS
int ToErrmsg(
const Descriptor *errmsg,
int stat);
60RT_API_ATTRS
int ReturnError(Terminator &,
int stat,
61 const Descriptor *errmsg =
nullptr,
bool hasStat =
false);