[llvm] [llvm] annotate interfaces in llvm/Support for DLL export (PR #136014)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue May 6 00:29:52 PDT 2025


================
@@ -61,87 +61,87 @@ namespace llvm {
 
 /// @deprecated Use reportFatalInternalError() or reportFatalUsageError()
 /// instead.
-[[noreturn]] void report_fatal_error(const char *reason,
-                                     bool gen_crash_diag = true);
-[[noreturn]] void report_fatal_error(StringRef reason,
-                                     bool gen_crash_diag = true);
-[[noreturn]] void report_fatal_error(const Twine &reason,
-                                     bool gen_crash_diag = true);
-
-/// Report a fatal error that likely indicates a bug in LLVM. It serves a
-/// similar purpose as an assertion, but is always enabled, regardless of the
-/// value of NDEBUG.
-///
-/// This will call installed error handlers (or print the message by default)
-/// and then abort. This will produce a crash trace and *will* ask users to
-/// report an LLVM bug.
-[[noreturn]] void reportFatalInternalError(const char *reason);
-[[noreturn]] void reportFatalInternalError(StringRef reason);
-[[noreturn]] void reportFatalInternalError(const Twine &reason);
-
-/// Report a fatal error that does not indicate a bug in LLVM.
-///
-/// This can be used in contexts where a proper error reporting mechanism
-/// (such as Error/Expected or DiagnosticInfo) is currently not supported, and
-/// would be too involved to introduce at the moment.
-///
-/// Examples where this function should be used instead of
-/// reportFatalInternalError() include invalid inputs or options, but also
-/// environment error conditions outside LLVM's control. It should also be used
-/// for known unsupported/unimplemented functionality.
-///
-/// This will call installed error handlers (or print the message by default)
-/// and then exit with code 1. It will not produce a crash trace and will
-/// *not* ask users to report an LLVM bug.
-[[noreturn]] void reportFatalUsageError(const char *reason);
-[[noreturn]] void reportFatalUsageError(StringRef reason);
-[[noreturn]] void reportFatalUsageError(const Twine &reason);
-
-/// Installs a new bad alloc error handler that should be used whenever a
-/// bad alloc error, e.g. failing malloc/calloc, is encountered by LLVM.
-///
-/// The user can install a bad alloc handler, in order to define the behavior
-/// in case of failing allocations, e.g. throwing an exception. Note that this
-/// handler must not trigger any additional allocations itself.
-///
-/// If no error handler is installed the default is to print the error message
-/// to stderr, and call exit(1).  If an error handler is installed then it is
-/// the handler's responsibility to log the message, it will no longer be
-/// printed to stderr.  If the error handler returns, then exit(1) will be
-/// called.
-///
-///
-/// \param user_data - An argument which will be passed to the installed error
-/// handler.
-void install_bad_alloc_error_handler(fatal_error_handler_t handler,
-                                     void *user_data = nullptr);
+  [[noreturn]] LLVM_ABI void report_fatal_error(const char *reason,
+                                                bool gen_crash_diag = true);
+  [[noreturn]] LLVM_ABI void report_fatal_error(StringRef reason,
+                                                bool gen_crash_diag = true);
+  [[noreturn]] LLVM_ABI void report_fatal_error(const Twine &reason,
+                                                bool gen_crash_diag = true);
+
+  /// Report a fatal error that likely indicates a bug in LLVM. It serves a
+  /// similar purpose as an assertion, but is always enabled, regardless of the
+  /// value of NDEBUG.
+  ///
+  /// This will call installed error handlers (or print the message by default)
+  /// and then abort. This will produce a crash trace and *will* ask users to
+  /// report an LLVM bug.
+  [[noreturn]] LLVM_ABI void reportFatalInternalError(const char *reason);
+  [[noreturn]] LLVM_ABI void reportFatalInternalError(StringRef reason);
+  [[noreturn]] LLVM_ABI void reportFatalInternalError(const Twine &reason);
+
+  /// Report a fatal error that does not indicate a bug in LLVM.
+  ///
+  /// This can be used in contexts where a proper error reporting mechanism
+  /// (such as Error/Expected or DiagnosticInfo) is currently not supported, and
+  /// would be too involved to introduce at the moment.
+  ///
+  /// Examples where this function should be used instead of
+  /// reportFatalInternalError() include invalid inputs or options, but also
+  /// environment error conditions outside LLVM's control. It should also be
+  /// used for known unsupported/unimplemented functionality.
+  ///
+  /// This will call installed error handlers (or print the message by default)
+  /// and then exit with code 1. It will not produce a crash trace and will
+  /// *not* ask users to report an LLVM bug.
+  [[noreturn]] LLVM_ABI void reportFatalUsageError(const char *reason);
+  [[noreturn]] LLVM_ABI void reportFatalUsageError(StringRef reason);
+  [[noreturn]] LLVM_ABI void reportFatalUsageError(const Twine &reason);
+
+  /// Installs a new bad alloc error handler that should be used whenever a
+  /// bad alloc error, e.g. failing malloc/calloc, is encountered by LLVM.
+  ///
+  /// The user can install a bad alloc handler, in order to define the behavior
+  /// in case of failing allocations, e.g. throwing an exception. Note that this
+  /// handler must not trigger any additional allocations itself.
+  ///
+  /// If no error handler is installed the default is to print the error message
+  /// to stderr, and call exit(1).  If an error handler is installed then it is
+  /// the handler's responsibility to log the message, it will no longer be
+  /// printed to stderr.  If the error handler returns, then exit(1) will be
+  /// called.
+  ///
+  ///
+  /// \param user_data - An argument which will be passed to the installed error
+  /// handler.
+  LLVM_ABI void install_bad_alloc_error_handler(fatal_error_handler_t handler,
+                                                void *user_data = nullptr);
 
-/// Restores default bad alloc error handling behavior.
-void remove_bad_alloc_error_handler();
+  /// Restores default bad alloc error handling behavior.
+  LLVM_ABI void remove_bad_alloc_error_handler();
 
-void install_out_of_memory_new_handler();
+  LLVM_ABI void install_out_of_memory_new_handler();
 
-/// Reports a bad alloc error, calling any user defined bad alloc
-/// error handler. In contrast to the generic 'report_fatal_error'
-/// functions, this function might not terminate, e.g. the user
-/// defined error handler throws an exception, but it won't return.
-///
-/// Note: When throwing an exception in the bad alloc handler, make sure that
-/// the following unwind succeeds, e.g. do not trigger additional allocations
-/// in the unwind chain.
-///
-/// If no error handler is installed (default), throws a bad_alloc exception
-/// if LLVM is compiled with exception support. Otherwise prints the error
-/// to standard error and calls abort().
-[[noreturn]] void report_bad_alloc_error(const char *Reason,
-                                         bool GenCrashDiag = true);
-
-/// This function calls abort(), and prints the optional message to stderr.
-/// Use the llvm_unreachable macro (that adds location info), instead of
-/// calling this function directly.
-[[noreturn]] void
-llvm_unreachable_internal(const char *msg = nullptr, const char *file = nullptr,
-                          unsigned line = 0);
+  /// Reports a bad alloc error, calling any user defined bad alloc
+  /// error handler. In contrast to the generic 'report_fatal_error'
+  /// functions, this function might not terminate, e.g. the user
+  /// defined error handler throws an exception, but it won't return.
+  ///
+  /// Note: When throwing an exception in the bad alloc handler, make sure that
+  /// the following unwind succeeds, e.g. do not trigger additional allocations
+  /// in the unwind chain.
+  ///
+  /// If no error handler is installed (default), throws a bad_alloc exception
+  /// if LLVM is compiled with exception support. Otherwise prints the error
+  /// to standard error and calls abort().
+  [[noreturn]] LLVM_ABI void report_bad_alloc_error(const char *Reason,
+                                                    bool GenCrashDiag = true);
+
+  /// This function calls abort(), and prints the optional message to stderr.
+  /// Use the llvm_unreachable macro (that adds location info), instead of
+  /// calling this function directly.
+  [[noreturn]] LLVM_ABI void
+  llvm_unreachable_internal(const char *msg = nullptr,
+                            const char *file = nullptr, unsigned line = 0);
----------------
nikic wrote:

Should drop this big indent change. (Or reformat the whole file ahead of time -- it's the code above this that's formatted incorrectly, not this code.)

https://github.com/llvm/llvm-project/pull/136014


More information about the llvm-commits mailing list