1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/test
Rafael Espindola 3ca4721c27 Use the DiagnosticHandler to print diagnostics when reading bitcode.
The bitcode reading interface used std::error_code to report an error to the
callers and it is the callers job to print diagnostics.

This is not ideal for error handling or diagnostic reporting:

* For error handling, all that the callers care about is 3 possibilities:
  * It worked
  * The bitcode file is corrupted/invalid.
  * The file is not bitcode at all.

* For diagnostic, it is user friendly to include far more information
  about the invalid case so the user can find out what is wrong with the
  bitcode file. This comes up, for example, when a developer introduces a
  bug while extending the format.

The compromise we had was to have a lot of error codes.

With this patch we use the DiagnosticHandler to communicate with the
human and std::error_code to communicate with the caller.

This allows us to have far fewer error codes and adds the infrastructure to
print better diagnostics. This is so because the diagnostics are printed when
he issue is found. The code that detected the problem in alive in the stack and
can pass down as much context as needed. As an example the patch updates
test/Bitcode/invalid.ll.

Using a DiagnosticHandler also moves the fatal/non-fatal error decision to the
caller. A simple one like llvm-dis can just use fatal errors. The gold plugin
needs a bit more complex treatment because of being passed non-bitcode files. An
hypothetical interactive tool would make all bitcode errors non-fatal.

llvm-svn: 225562
2015-01-10 00:07:30 +00:00
..
Analysis Re-reapply r221924: "[GVN] Perform Scalar PRE on gep indices that feed loads before 2015-01-09 19:19:56 +00:00
Assembler IR: Add 'distinct' MDNodes to bitcode and assembly 2015-01-08 22:38:29 +00:00
Bindings Disable Go bindings test under UBSan. 2015-01-09 23:17:23 +00:00
Bitcode Use the DiagnosticHandler to print diagnostics when reading bitcode. 2015-01-10 00:07:30 +00:00
BugPoint IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
CodeGen [X86][SSE] Avoid vector byte shuffles with zero by using pshufb to create zeros 2015-01-09 22:03:19 +00:00
DebugInfo Revert "Reapply: Teach SROA how to update debug info for fragmented variables." 2015-01-08 02:02:00 +00:00
ExecutionEngine [MCJIT] Remove a few redundant MCJIT tests, and drop the extraneous datalayout 2015-01-08 18:52:15 +00:00
Feature Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
FileCheck
Instrumentation Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
Integer
JitListener Fix the JIT event listeners and replace the associated tests. 2015-01-09 22:53:24 +00:00
Linker Utils: Keep distinct MDNodes distinct in MapMetadata() 2015-01-08 22:42:30 +00:00
LTO Use the DiagnosticHandler to print diagnostics when reading bitcode. 2015-01-10 00:07:30 +00:00
MC ARM: add support for R_ARM_ABS16 2015-01-09 06:57:24 +00:00
Object Don't loop endlessly for MachO files with 0 ncmds 2015-01-06 17:08:26 +00:00
Other [PM] Give slightly less horrible names to the utility pass templates for 2015-01-07 11:14:51 +00:00
SymbolRewriter Transform: add SymbolRewriter pass 2014-11-07 21:32:08 +00:00
TableGen
tools Add the option, -universal-headers, used with -macho to print the Mach-O universal headers to llvm-objdump. 2015-01-09 19:22:37 +00:00
Transforms SimplifyCFG: check uses of constant-foldable instrs in switch destinations (PR20210) 2015-01-09 22:13:31 +00:00
Unit
Verifier Change the .ll syntax for comdats and add a syntactic sugar. 2015-01-06 22:55:16 +00:00
YAMLParser
.clang-format
CMakeLists.txt Revert r224149, llvm-dsymutil was already here. 2014-12-12 21:25:07 +00:00
lit.cfg llvm/test/lit.cfg: have_ld_plugin_support(): Use decode() for stdout. 2015-01-05 14:18:04 +00:00
lit.site.cfg.in [lit] Make config.llvm_lib_dir available on cmake, too. 2014-12-30 03:24:11 +00:00
Makefile [lit] Make config.llvm_lib_dir available on cmake, too. 2014-12-30 03:24:11 +00:00
Makefile.tests
TestRunner.sh