rust/src/librustc_driver
Mazdak Farrokhzad b30d9beafb
Rollup merge of #64799 - Aaron1011:fix/double-panic, r=Mark-Simulacrum
Fix double panic when printing query stack during an ICE

On the latest nightly, any call to `bug` or `span_bug` will result in two panics - the first one as a normal result of calling `bug` / `span_bug`, and the second as a result of trying to print the query stack from the panic handler. This is caused by the query-printing code attempting to acquire a lock on `HandlerInnder`, which is still being held by `bug`.

This PR moves the actual panic out of `HandlerInner`, into `Handler`. This allows us to release the lock on `HandlerInner` before triggering the panic, ensuring that the panic handler will be able to acquire the lock if necessary.
2019-09-29 04:36:01 +02:00
..
args.rs Move argfile expansion into run_compiler 2019-08-20 12:34:14 -07:00
build.rs Remove licenses 2018-12-25 21:08:33 -07:00
Cargo.toml Rollup merge of #64847 - mati865:env_logger, r=alexcrichton 2019-09-28 05:37:57 +02:00
lib.rs Rollup merge of #64799 - Aaron1011:fix/double-panic, r=Mark-Simulacrum 2019-09-29 04:36:01 +02:00
pretty.rs -Z unpretty message: include expanded,hygiene 2019-09-27 19:54:25 +02:00
README.md rustc-guide has moved 2018-11-26 15:03:13 -06:00

The driver crate is effectively the "main" function for the rust compiler. It orchestrates the compilation process and "knits together" the code from the other crates within rustc. This crate itself does not contain any of the "main logic" of the compiler (though it does have some code related to pretty printing or other minor compiler options).

For more information about how the driver works, see the rustc guide.