Check for null bytes before calling with_c_str on link_section and export_name value strings.
Fixed: iOS build was broken because of deprecated APIs
Cleanup the check_null function.
rustdoc: Prevent infinite recursion when inlining

Cyclic pub-use chains triggered infinite recursion, and this commit adds a hash
set to guard against cyclic recursion. This will cause one of the reexports to
render as a `pub use` instead of inlining the documentation.

Closes #16274
rustdoc: Don't try to inline the crate root

Fixes other test cases found in #16274
libnative/io: datasync() wrongly called fsync().
liblibc and libnative: send() should use const buffers.
Fix iterator doc

OrdIterator: the doc says that values must implement `PartialOrd`, while the implementation is only for `Ord` values. It looks like this initially got out of sync in 4e1c215. Removed the doc sentence entirely since it seems redundant.

MultiplicativeIterator: Fixed weird sentence.
auto merge of #17472 : kaseyc/rust/ICE_fix, r=aturon

Add checks for null bytes in the value strings for the export_name and link_section attributes, reporting an error if any are found, before calling with_c_str on them.

Fixes #16478
auto merge of #17477 : vhbit/rust/ios-deprecation-fix, r=alexcrichton
Add detection of unused enum variants
Use more descriptive names in dead code messages
Remove unused enum variants
Remove dead code from librustc
auto merge of #17410 : jakub-/rust/dead-code, r=alexcrichton
Rename `begin_unwind` lang item to `fail_fmt`, refs #16114
Rename `core::failure::begin_unwind` to `fail_impl`, refs #16114
Rename `fail_` lang item to `fail`, closes #16114
Rename `begin_unwind_string` to `fail_str`, refs #16114
Beef up Default documentation