Closed
Description
With following doctest, where the cfg attribute spans multiple lines, the final program is invalid: the wrapping main
method doesn't take into account the dangling stdsimd))]
line that closes the attribute.
/// ```rust
/// # #![cfg_attr(not(dox), feature(cfg_target_feature, target_feature,
/// # stdsimd))]
///
/// fn foo() {
/// let mut dst = [0];
/// add_quickly(&[1], &[2], &mut dst);
/// assert_eq!(dst[0], 3);
/// }
/// ```
INFO 2018-11-06T10:25:21Z: rustdoc::test: final test program: #![allow(unused)]
#![cfg_attr(not(dox), feature(cfg_target_feature, target_feature,
extern crate stdsimd;
fn main() {
stdsimd))]
fn foo() {
let mut dst = [0];
add_quickly(&[1], &[2], &mut dst);
assert_eq!(dst[0], 3);
}
}
Meta
$ rustc --version --verbose
rustc 1.32.0-nightly (13dab66a6 2018-11-05)
binary: rustc
commit-hash: 13dab66a6f6403f4eee092456f7f8f46199c5859
commit-date: 2018-11-05
host: x86_64-unknown-linux-gnu
release: 1.32.0-nightly
LLVM version: 8.0
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::_print
at libstd/sys_common/backtrace.rs:71
2: std::panicking::default_hook::{{closure}}
at libstd/sys_common/backtrace.rs:59
at libstd/panicking.rs:211
3: std::panicking::default_hook
at libstd/panicking.rs:221
4: std::panicking::rust_panic_with_hook
at libstd/panicking.rs:476
5: std::panicking::begin_panic
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/libstd/panicking.rs:410
6: rustdoc::test::run_test
at librustdoc/test.rs:323
7: <scoped_tls::ScopedKey<T>>::set
at librustdoc/test.rs:654
at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:155
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/libsyntax/lib.rs:123
at /cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-0.1.2/src/lib.rs:155
8: syntax::with_globals
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/libsyntax/lib.rs:122
9: std::panicking::try::do_call
at librustdoc/test.rs:651
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/libstd/panic.rs:319
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/libstd/panicking.rs:310
10: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:102
11: rustc_driver::in_named_rustc_thread
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/libstd/panicking.rs:289
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/libstd/panic.rs:398
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/librustc_driver/lib.rs:1554
12: <F as alloc::boxed::FnBox<A>>::call_box
at librustdoc/test.rs:651
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/liballoc/boxed.rs:672
13: <F as alloc::boxed::FnBox<A>>::call_box
at libtest/lib.rs:1464
at /rustc/13dab66a6f6403f4eee092456f7f8f46199c5859/src/liballoc/boxed.rs:672
14: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:102