Skip to content
Permalink
Browse files

avoid #[cfg] in favor of cfg!

  • Loading branch information...
RalfJung committed Sep 16, 2019
1 parent dac0a15 commit 49854c4f71eb8470c2a4483cbad3f03eb99e67cb
Showing with 7 additions and 13 deletions.
  1. +7 −11 src/libstd/panicking.rs
  2. +0 −2 src/libstd/sys_common/backtrace.rs
@@ -17,8 +17,7 @@ use crate::ptr;
use crate::raw;
use crate::sys::stdio::panic_output;
use crate::sys_common::rwlock::RWLock;
use crate::sys_common::thread_info;
use crate::sys_common::util;
use crate::sys_common::{thread_info, util, backtrace};
use crate::thread;

#[cfg(not(test))]
@@ -157,20 +156,18 @@ pub fn take_hook() -> Box<dyn Fn(&PanicInfo<'_>) + 'static + Sync + Send> {
}

fn default_hook(info: &PanicInfo<'_>) {
#[cfg(feature = "backtrace")]
use crate::sys_common::{backtrace as backtrace_mod};

// If this is a double panic, make sure that we print a backtrace
// for this panic. Otherwise only print it if logging is enabled.
#[cfg(feature = "backtrace")]
let log_backtrace = {
let log_backtrace = if cfg!(feature = "backtrace") {
let panics = update_panic_count(0);

if panics >= 2 {
Some(backtrace_rs::PrintFmt::Full)
} else {
backtrace_mod::log_enabled()
backtrace::log_enabled()
}
} else {
None
};

// The current implementation always returns `Some`.
@@ -190,14 +187,13 @@ fn default_hook(info: &PanicInfo<'_>) {
let _ = writeln!(err, "thread '{}' panicked at '{}', {}",
name, msg, location);

#[cfg(feature = "backtrace")]
{
if cfg!(feature = "backtrace") {
use crate::sync::atomic::{AtomicBool, Ordering};

static FIRST_PANIC: AtomicBool = AtomicBool::new(true);

if let Some(format) = log_backtrace {
let _ = backtrace_mod::print(err, format);
let _ = backtrace::print(err, format);
} else if FIRST_PANIC.compare_and_swap(true, false, Ordering::SeqCst) {
let _ = writeln!(err, "note: run with `RUST_BACKTRACE=1` \
environment variable to display a backtrace.");
@@ -33,7 +33,6 @@ pub fn lock() -> impl Drop {
}

/// Prints the current backtrace.
#[cfg(feature = "backtrace")]
pub fn print(w: &mut dyn Write, format: PrintFmt) -> io::Result<()> {
// There are issues currently linking libbacktrace into tests, and in
// general during libstd's own unit tests we're not testing this path. In
@@ -129,7 +128,6 @@ where

// For now logging is turned off by default, and this function checks to see
// whether the magical environment variable is present to see if it's turned on.
#[cfg(feature = "backtrace")]
pub fn log_enabled() -> Option<PrintFmt> {
use crate::sync::atomic::{self, Ordering};

0 comments on commit 49854c4

Please sign in to comment.
You can’t perform that action at this time.