Browse Source

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
Alex Bradbury 8 years ago
parent
commit
b24452bf84
2 changed files with 10 additions and 8 deletions
  1. 4 3
      docs/CodingStandards.rst
  2. 6 5
      docs/ProgrammersManual.rst

+ 4 - 3
docs/CodingStandards.rst

@@ -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:

+ 6 - 5
docs/ProgrammersManual.rst

@@ -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