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 void RTNAME(StopStatement)(int code DEFAULT_VALUE(EXIT_SUCCESS),
21 bool isErrorStop DEFAULT_VALUE(false), bool quiet DEFAULT_VALUE(false));
22NORETURN void RTNAME(StopStatementText)(const char *, size_t,
23 bool isErrorStop DEFAULT_VALUE(false), bool quiet DEFAULT_VALUE(false));
24void RTNAME(PauseStatement)(NO_ARGUMENTS);
25void RTNAME(PauseStatementInt)(int);
26void RTNAME(PauseStatementText)(const char *, size_t);
27NORETURN void RTNAME(FailImageStatement)(NO_ARGUMENTS);
28NORETURN void RTNAME(ProgramEndStatement)(NO_ARGUMENTS);
29
30// Extensions
31NORETURN void RTNAME(Exit)(int status DEFAULT_VALUE(EXIT_SUCCESS));
32NORETURN void RTNAME(Abort)(NO_ARGUMENTS);
33void FORTRAN_PROCEDURE_NAME(backtrace)(NO_ARGUMENTS);
34
35// Crash with an error message when the program dynamically violates a Fortran
36// constraint.
37NORETURN void RTNAME(ReportFatalUserError)(
38 const char *message, const char *source, int line);
39
40FORTRAN_EXTERN_C_END
41
42#endif // FORTRAN_RUNTIME_STOP_H_