1 | //===-- llvm/Support/ExitCodes.h - Exit codes for exit() -------*- 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 | /// \file |
10 | /// This file contains definitions of exit codes for exit() function. They are |
11 | /// either defined by sysexits.h if it is supported, or defined here if |
12 | /// sysexits.h is not supported. |
13 | /// |
14 | //===----------------------------------------------------------------------===// |
15 | |
16 | #ifndef LLVM_SUPPORT_EXITCODES_H |
17 | #define LLVM_SUPPORT_EXITCODES_H |
18 | |
19 | #include "llvm/Config/llvm-config.h" |
20 | |
21 | #if HAVE_SYSEXITS_H |
22 | #include <sysexits.h> |
23 | #elif __MVS__ || defined(_WIN32) |
24 | // <sysexits.h> does not exist on z/OS and Windows. The only value used in LLVM |
25 | // is EX_IOERR, which is used to signal a special error condition (broken pipe). |
26 | // Define the macro with its usual value from BSD systems, which is chosen to |
27 | // not clash with more standard exit codes like 1. |
28 | #define EX_IOERR 74 |
29 | #elif LLVM_ON_UNIX |
30 | #error Exit code EX_IOERR not available |
31 | #endif |
32 | |
33 | #endif |
34 | |