Skip to content

Commit

Permalink
Rollup merge of rust-lang#69667 - JohnTitor:no-debug, r=nikomatsakis
Browse files Browse the repository at this point in the history
Remove the `no_debug` feature

Context: rust-lang#29721 (comment)

r? @nikomatsakis
  • Loading branch information
Centril authored Mar 7, 2020
2 parents a039217 + 18080e6 commit 614cd8d
Show file tree
Hide file tree
Showing 14 changed files with 14 additions and 125 deletions.
3 changes: 0 additions & 3 deletions src/librustc/middle/codegen_fn_attrs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,9 +58,6 @@ bitflags! {
/// "weird symbol" for the standard library in that it has slightly
/// different linkage, visibility, and reachability rules.
const RUSTC_STD_INTERNAL_SYMBOL = 1 << 6;
/// `#[no_debug]`: an indicator that no debugging information should be
/// generated for this function by LLVM.
const NO_DEBUG = 1 << 7;
/// `#[thread_local]`: indicates a static is actually a thread local
/// piece of memory
const THREAD_LOCAL = 1 << 8;
Expand Down
4 changes: 0 additions & 4 deletions src/librustc_codegen_llvm/debuginfo/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2269,10 +2269,6 @@ pub fn create_global_var_metadata(cx: &CodegenCx<'ll, '_>, def_id: DefId, global
let tcx = cx.tcx;
let attrs = tcx.codegen_fn_attrs(def_id);

if attrs.flags.contains(CodegenFnAttrFlags::NO_DEBUG) {
return;
}

let no_mangle = attrs.flags.contains(CodegenFnAttrFlags::NO_MANGLE);
// We may want to remove the namespace scope if we're in an extern block (see
// /~https://github.com/rust-lang/rust/pull/46457#issuecomment-351750952).
Expand Down
9 changes: 1 addition & 8 deletions src/librustc_codegen_llvm/debuginfo/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ use crate::llvm;
use crate::llvm::debuginfo::{
DIArray, DIBuilder, DIFile, DIFlags, DILexicalBlock, DISPFlags, DIScope, DIType, DIVariable,
};
use rustc::middle::codegen_fn_attrs::CodegenFnAttrFlags;
use rustc::ty::subst::{GenericArgKind, SubstsRef};
use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, LOCAL_CRATE};

Expand All @@ -22,7 +21,7 @@ use crate::common::CodegenCx;
use crate::value::Value;
use rustc::mir;
use rustc::session::config::{self, DebugInfo};
use rustc::ty::{self, Instance, InstanceDef, ParamEnv, Ty};
use rustc::ty::{self, Instance, ParamEnv, Ty};
use rustc_codegen_ssa::debuginfo::type_names;
use rustc_codegen_ssa::mir::debuginfo::{DebugScope, FunctionDebugContext, VariableKind};
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
Expand Down Expand Up @@ -241,12 +240,6 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
return None;
}

if let InstanceDef::Item(def_id) = instance.def {
if self.tcx().codegen_fn_attrs(def_id).flags.contains(CodegenFnAttrFlags::NO_DEBUG) {
return None;
}
}

let span = mir.span;

// This can be the case for functions inlined from another crate
Expand Down
3 changes: 0 additions & 3 deletions src/librustc_feature/active.rs
Original file line number Diff line number Diff line change
Expand Up @@ -289,9 +289,6 @@ declare_features! (
/// Permits specifying whether a function should permit unwinding or abort on unwind.
(active, unwind_attributes, "1.4.0", Some(58760), None),

/// Allows `#[no_debug]`.
(active, no_debug, "1.5.0", Some(29721), None),

/// Allows attributes on expressions and non-item statements.
(active, stmt_expr_attributes, "1.6.0", Some(15701), None),

Expand Down
10 changes: 0 additions & 10 deletions src/librustc_feature/builtin_attrs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -507,16 +507,6 @@ pub const BUILTIN_ATTRIBUTES: &[BuiltinAttribute] = &[
cfg_fn!(rustc_attrs),
),
),
(
sym::no_debug, Whitelisted, template!(Word),
Gated(
Stability::Deprecated("/~https://github.com/rust-lang/rust/issues/29721", None),
sym::no_debug,
"the `#[no_debug]` attribute was an experimental feature that has been \
deprecated due to lack of demand",
cfg_fn!(no_debug)
)
),
gated!(
// Used in resolve:
prelude_import, Whitelisted, template!(Word),
Expand Down
2 changes: 2 additions & 0 deletions src/librustc_feature/removed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,8 @@ declare_features! (
/// Allows overlapping impls of marker traits.
(removed, overlapping_marker_traits, "1.42.0", Some(29864), None,
Some("removed in favor of `#![feature(marker_trait_attr)]`")),
/// Allows `#[no_debug]`.
(removed, no_debug, "1.43.0", Some(29721), None, Some("removed due to lack of demand")),
// -------------------------------------------------------------------------
// feature-group-end: removed features
// -------------------------------------------------------------------------
Expand Down
2 changes: 0 additions & 2 deletions src/librustc_typeck/collect.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2341,8 +2341,6 @@ fn codegen_fn_attrs(tcx: TyCtxt<'_>, id: DefId) -> CodegenFnAttrs {
codegen_fn_attrs.flags |= CodegenFnAttrFlags::NO_MANGLE;
} else if attr.check_name(sym::rustc_std_internal_symbol) {
codegen_fn_attrs.flags |= CodegenFnAttrFlags::RUSTC_STD_INTERNAL_SYMBOL;
} else if attr.check_name(sym::no_debug) {
codegen_fn_attrs.flags |= CodegenFnAttrFlags::NO_DEBUG;
} else if attr.check_name(sym::used) {
codegen_fn_attrs.flags |= CodegenFnAttrFlags::USED;
} else if attr.check_name(sym::thread_local) {
Expand Down
37 changes: 0 additions & 37 deletions src/test/debuginfo/no-debug-attribute.rs

This file was deleted.

5 changes: 0 additions & 5 deletions src/test/ui/feature-gates/feature-gate-no-debug-2.rs

This file was deleted.

14 changes: 0 additions & 14 deletions src/test/ui/feature-gates/feature-gate-no-debug-2.stderr

This file was deleted.

4 changes: 0 additions & 4 deletions src/test/ui/feature-gates/feature-gate-no-debug.rs

This file was deleted.

12 changes: 0 additions & 12 deletions src/test/ui/feature-gates/feature-gate-no-debug.stderr

This file was deleted.

4 changes: 0 additions & 4 deletions src/test/ui/lint/suggestions.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// ignore-tidy-tab

#![warn(unused_mut, unused_parens)] // UI tests pass `-A unused`—see Issue #43896
#![feature(no_debug)]

#[no_mangle] const DISCOVERY: usize = 1;
//~^ ERROR const items should never be `#[no_mangle]`
Expand Down Expand Up @@ -39,9 +38,6 @@ struct Equinox {
warp_factor: f32,
}

#[no_debug] // should suggest removal of deprecated attribute
//~^ WARN deprecated
//~| HELP remove this attribute
fn main() {
while true {
//~^ WARN denote infinite loops
Expand Down
30 changes: 11 additions & 19 deletions src/test/ui/lint/suggestions.stderr
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
warning: denote infinite loops with `loop { ... }`
--> $DIR/suggestions.rs:46:5
--> $DIR/suggestions.rs:42:5
|
LL | while true {
| ^^^^^^^^^^ help: use `loop`
|
= note: `#[warn(while_true)]` on by default

warning: unnecessary parentheses around assigned value
--> $DIR/suggestions.rs:49:31
--> $DIR/suggestions.rs:45:31
|
LL | let mut registry_no = (format!("NX-{}", 74205));
| ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
Expand All @@ -18,16 +18,8 @@ note: the lint level is defined here
LL | #![warn(unused_mut, unused_parens)] // UI tests pass `-A unused`—see Issue #43896
| ^^^^^^^^^^^^^

warning: use of deprecated attribute `no_debug`: the `#[no_debug]` attribute was an experimental feature that has been deprecated due to lack of demand. See /~https://github.com/rust-lang/rust/issues/29721
--> $DIR/suggestions.rs:42:1
|
LL | #[no_debug] // should suggest removal of deprecated attribute
| ^^^^^^^^^^^ help: remove this attribute
|
= note: `#[warn(deprecated)]` on by default

warning: variable does not need to be mutable
--> $DIR/suggestions.rs:49:13
--> $DIR/suggestions.rs:45:13
|
LL | let mut registry_no = (format!("NX-{}", 74205));
| ----^^^^^^^^^^^
Expand All @@ -41,7 +33,7 @@ LL | #![warn(unused_mut, unused_parens)] // UI tests pass `-A unused`—see Issu
| ^^^^^^^^^^

warning: variable does not need to be mutable
--> $DIR/suggestions.rs:55:13
--> $DIR/suggestions.rs:51:13
|
LL | let mut
| _____________^
Expand All @@ -53,7 +45,7 @@ LL | || b = 1;
| help: remove this `mut`

error: const items should never be `#[no_mangle]`
--> $DIR/suggestions.rs:6:14
--> $DIR/suggestions.rs:5:14
|
LL | #[no_mangle] const DISCOVERY: usize = 1;
| -----^^^^^^^^^^^^^^^^^^^^^^
Expand All @@ -63,7 +55,7 @@ LL | #[no_mangle] const DISCOVERY: usize = 1;
= note: `#[deny(no_mangle_const_items)]` on by default

warning: functions generic over types or consts must be mangled
--> $DIR/suggestions.rs:12:1
--> $DIR/suggestions.rs:11:1
|
LL | #[no_mangle]
| ------------ help: remove this attribute
Expand All @@ -74,39 +66,39 @@ LL | pub fn defiant<T>(_t: T) {}
= note: `#[warn(no_mangle_generic_items)]` on by default

warning: the `warp_factor:` in this pattern is redundant
--> $DIR/suggestions.rs:61:23
--> $DIR/suggestions.rs:57:23
|
LL | Equinox { warp_factor: warp_factor } => {}
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: use shorthand field pattern: `warp_factor`
|
= note: `#[warn(non_shorthand_field_patterns)]` on by default

error: const items should never be `#[no_mangle]`
--> $DIR/suggestions.rs:22:18
--> $DIR/suggestions.rs:21:18
|
LL | #[no_mangle] pub const DAUNTLESS: bool = true;
| ---------^^^^^^^^^^^^^^^^^^^^^^^^
| |
| help: try a static value: `pub static`

warning: functions generic over types or consts must be mangled
--> $DIR/suggestions.rs:25:18
--> $DIR/suggestions.rs:24:18
|
LL | #[no_mangle] pub fn val_jean<T>() {}
| ------------ ^^^^^^^^^^^^^^^^^^^^^^^
| |
| help: remove this attribute

error: const items should never be `#[no_mangle]`
--> $DIR/suggestions.rs:30:18
--> $DIR/suggestions.rs:29:18
|
LL | #[no_mangle] pub(crate) const VETAR: bool = true;
| ----------------^^^^^^^^^^^^^^^^^^^^
| |
| help: try a static value: `pub static`

warning: functions generic over types or consts must be mangled
--> $DIR/suggestions.rs:33:18
--> $DIR/suggestions.rs:32:18
|
LL | #[no_mangle] pub(crate) fn crossfield<T>() {}
| ------------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down

0 comments on commit 614cd8d

Please sign in to comment.