FLANG
stop.h
1//===-- include/flang/Runtime/stop.h ----------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef FORTRAN_RUNTIME_STOP_H_
10#define FORTRAN_RUNTIME_STOP_H_
11
12#include "flang/Runtime/c-or-cpp.h"
13#include "flang/Runtime/entry-names.h"
14#include "flang/Runtime/extensions.h"
15#include <stdlib.h>
16
17FORTRAN_EXTERN_C_BEGIN
18
19// Program-initiated image stop
20NORETURN RT_API_ATTRS void RTNAME(StopStatement)(
21 int code DEFAULT_VALUE(EXIT_SUCCESS), bool isErrorStop DEFAULT_VALUE(false),
22 bool quiet DEFAULT_VALUE(false));
23NORETURN RT_API_ATTRS void RTNAME(StopStatementText)(const char *, size_t,
24 bool isErrorStop DEFAULT_VALUE(false), bool quiet DEFAULT_VALUE(false));
25void RTNAME(PauseStatement)(NO_ARGUMENTS);
26void RTNAME(PauseStatementInt)(int);
27void RTNAME(PauseStatementText)(const char *, size_t);
28NORETURN void RTNAME(FailImageStatement)(NO_ARGUMENTS);
29NORETURN void RTNAME(ProgramEndStatement)(NO_ARGUMENTS);
30
31// Extensions
32NORETURN void RTNAME(Exit)(int status DEFAULT_VALUE(EXIT_SUCCESS));
33RT_OFFLOAD_API_GROUP_BEGIN
34NORETURN void RTNAME(Abort)(NO_ARGUMENTS);
35RT_OFFLOAD_API_GROUP_END
36void FORTRAN_PROCEDURE_NAME(backtrace)(NO_ARGUMENTS);
37
38// Crash with an error message when the program dynamically violates a Fortran
39// constraint.
40NORETURN RT_API_ATTRS void RTNAME(ReportFatalUserError)(
41 const char *message, const char *source, int line);
42
43FORTRAN_EXTERN_C_END
44
45#endif // FORTRAN_RUNTIME_STOP_H_