rust/src
Mazdak Farrokhzad 05c31baf83
Rollup merge of #59639 - cuviper:ignore-uninhabited, r=eddyb
Never return uninhabited values at all

Functions with uninhabited return values are already marked `noreturn`,
but we were still generating return instructions for this. When running
with `-C passes=lint`, LLVM prints:

    Unusual: Return statement in function with noreturn attribute

The LLVM manual makes a stronger statement about `noreturn` though:

> This produces undefined behavior at runtime if the function ever does
dynamically return.

We now emit an `abort` anywhere that would have tried to return an
uninhabited value.

Fixes #48227
cc #7463 #48229

r? @eddyb
2019-04-04 15:09:04 +02:00
..
bootstrap Auto merge of #59089 - petrhosek:llvm-unwind, r=petrhosek 2019-04-04 05:24:54 +00:00
build_helper
ci Add dist builder for Armv8-M Baseline and HF 2019-04-03 15:02:13 +01:00
doc Updated the environment description in rustc. 2019-04-03 15:50:20 +02:00
etc rust-lldb: fix crash when printing empty string 2019-03-06 12:28:38 -05:00
grammar
liballoc Rollup merge of #59186 - ssomers:btreeset_intersection_revisited_again, r=KodrAus 2019-04-03 04:36:11 +02:00
libarena Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
libcore Rollup merge of #59596 - LukasKalbertodt:fix-range-fmt, r=Kimundi 2019-04-04 15:09:03 +02:00
libfmt_macros Deny internal lints on two more crates 2019-04-03 19:18:07 +02:00
libgraphviz
libpanic_abort SGX target: fix panic = abort 2019-02-14 12:39:54 +05:30
libpanic_unwind
libproc_macro Auto merge of #55780 - ogoffart:span_source_text, r=petrochenkov 2019-03-27 08:58:40 +00:00
libprofiler_builtins
librustc Auto merge of #59517 - Zoxc:new-queries, r=oli-obk 2019-04-04 08:26:18 +00:00
librustc_allocator Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_apfloat
librustc_asan
librustc_borrowck Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_codegen_llvm Rollup merge of #59446 - Aaron1011:fix/debuginfo-overflow, r=oli-obk 2019-04-02 18:25:15 +02:00
librustc_codegen_ssa Rollup merge of #59639 - cuviper:ignore-uninhabited, r=eddyb 2019-04-04 15:09:04 +02:00
librustc_codegen_utils Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_cratesio_shim
librustc_data_structures Update ena to version 0.13.0 2019-03-27 09:44:55 +00:00
librustc_driver Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_errors Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_fs_util
librustc_incremental Auto merge of #59517 - Zoxc:new-queries, r=oli-obk 2019-04-04 08:26:18 +00:00
librustc_interface Deny internal lints on librustc_interface 2019-04-03 18:24:21 +02:00
librustc_lint Rollup merge of #59669 - Centril:lint-pass-macro, r=oli-obk 2019-04-04 01:49:12 +02:00
librustc_llvm
librustc_lsan
librustc_macros Allow unused query arguments 2019-03-30 18:43:25 +01:00
librustc_metadata Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_mir Deny internal lints on librustc_mir 2019-04-03 19:18:07 +02:00
librustc_msan
librustc_passes Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_plugin Make meta-item API compatible with LocalInternedString::get soundness fix 2019-03-17 17:04:58 +03:00
librustc_privacy Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_resolve Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_save_analysis Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_target Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_traits Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
librustc_tsan
librustc_typeck Compare Tys directly instead of their TyKinds 2019-04-03 19:18:07 +02:00
librustdoc Deny internal lints on two more crates 2019-04-03 19:18:07 +02:00
libserialize
libstd Rollup merge of #59470 - czipperz:document-fs-file-close, r=dtolnay 2019-04-04 15:08:59 +02:00
libsyntax Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
libsyntax_ext Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
libsyntax_pos Deny internal lints on non conflicting crates 2019-04-03 18:24:21 +02:00
libtest Moves test::black_box to core::hint 2019-03-25 11:44:06 +01:00
libunwind Support using LLVM's libunwind as the unwinder implementation 2019-04-03 11:21:40 -07:00
llvm-emscripten@7f23313edf
llvm-project@84abffda0e Support using LLVM's libunwind as the unwinder implementation 2019-04-03 11:21:40 -07:00
rtstartup
rustc Update jemalloc-sys to version 0.3.0 2019-03-26 11:03:19 +01:00
rustllvm replace llvm-rebuild-trigger with commit hash 2019-03-27 10:05:32 -04:00
stdsimd@2792b45c97 update stdsimd 2019-03-30 12:57:23 +01:00
test Rollup merge of #59639 - cuviper:ignore-uninhabited, r=eddyb 2019-04-04 15:09:04 +02:00
tools Rollup merge of #59555 - RalfJung:miri, r=oli-obk 2019-04-04 15:09:00 +02:00
.gitignore
README.md
stage0.txt bump bootstrap => 2019-03-20 2019-03-26 09:53:47 +01:00

This directory contains the source code of the rust project, including:

  • rustc and its tests
  • libstd
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc guide.

There is also useful content in the following READMEs, which are gradually being moved over to the guide: