mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-17 17:29:37 +00:00
Refine report_fatal_error guidance after post-commit review
Use text suggested by Justin Bogner in post-commit review of r311146 <http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170814/479898.html>, which makes it clear that report_fatal_error shouldn't be used when there is a practicable alternative. Also make this clearer in CodingStandards. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@311147 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d8824ebc53
commit
b24452bf84
@ -1233,9 +1233,10 @@ code for this branch. If the compiler does not support this, it will fall back
|
||||
to the "abort" implementation.
|
||||
|
||||
Neither assertions or ``llvm_unreachable`` will abort the program on a release
|
||||
build. If the error condition can be triggered by user input, then the
|
||||
recoverable error mechanism described in :doc:`ProgrammersManual` or
|
||||
``report_fatal_error`` should be used instead.
|
||||
build. If the error condition can be triggered by user input then the
|
||||
recoverable error mechanism described in :doc:`ProgrammersManual` should be
|
||||
used instead. In cases where this is not practical, ``report_fatal_error`` may
|
||||
be used.
|
||||
|
||||
Another issue is that values used only by assertions will produce an "unused
|
||||
value" warning when assertions are disabled. For example, this code will warn:
|
||||
|
@ -443,11 +443,12 @@ recovery.
|
||||
|
||||
.. note::
|
||||
|
||||
Ideally, the error handling approach described in this section would be
|
||||
used throughout LLVM. However, this is not yet the case. For
|
||||
non-programmatic errors where the ``Error`` scheme cannot easily be
|
||||
applied, ``report_fatal_error`` should be used to call any installed error
|
||||
handler and then terminate the program.
|
||||
While it would be ideal to use this error handling scheme throughout
|
||||
LLVM, there are places where this hasn't been practical to apply. In
|
||||
situations where you absolutely must emit a non-programmatic error and
|
||||
the ``Error`` model isn't workable you can call ``report_fatal_error``,
|
||||
which will call installed error handlers, print a message, and exit the
|
||||
program.
|
||||
|
||||
Recoverable errors are modeled using LLVM's ``Error`` scheme. This scheme
|
||||
represents errors using function return values, similar to classic C integer
|
||||
|
Loading…
x
Reference in New Issue
Block a user