From f91d7baaa47efc6c8c2d8a1e6e2c79c3bef2f70d Mon Sep 17 00:00:00 2001 From: varkor Date: Tue, 24 Jul 2018 00:56:00 +0100 Subject: [PATCH] Add special support for libc --- src/librustc/middle/lib_features.rs | 2 -- src/librustc/middle/stability.rs | 6 +++--- src/libsyntax/feature_gate.rs | 1 - 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/librustc/middle/lib_features.rs b/src/librustc/middle/lib_features.rs index 365fe1e6b5a..b30341103e4 100644 --- a/src/librustc/middle/lib_features.rs +++ b/src/librustc/middle/lib_features.rs @@ -62,8 +62,6 @@ fn extract(&self, attrs: &[Attribute]) -> Vec<(Symbol, Option, Span)> { let mut features = vec![]; for attr in attrs { - // FIXME(varkor): the stability attribute might be behind a `#[cfg]` attribute. - // Find a stability attribute (i.e. `#[stable (..)]`, `#[unstable (..)]`, // `#[rustc_const_unstable (..)]`). if let Some(stab_attr) = stab_attrs.iter().find(|stab_attr| { diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs index 98c2eaaeb61..f2296c04acc 100644 --- a/src/librustc/middle/stability.rs +++ b/src/librustc/middle/stability.rs @@ -813,7 +813,6 @@ pub fn check_unused_or_stable_features<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) { krate.visit_all_item_likes(&mut missing.as_deep_visitor()); } - let declared_lang_features = &tcx.features().declared_lang_features; let mut lang_features = FxHashSet(); for &(feature, span, since) in declared_lang_features { @@ -837,8 +836,9 @@ pub fn check_unused_or_stable_features<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) { } remaining_lib_features.insert(feature, span.clone()); } - // FIXME(varkor): we don't properly handle lib features behind `cfg` attributes yet, - // but it happens just to affect `libc`, so we're just going to hard-code it for now. + // `stdbuild` has special handling for `libc`, so we need to + // recognise the feature when building std. + // FIXME: only remove `libc` when `stdbuild` is active. remaining_lib_features.remove(&Symbol::intern("libc")); for (feature, stable) in tcx.lib_features().iter() { diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 4aafe8bba58..833b6953dcd 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -321,7 +321,6 @@ pub fn use_extern_macros(&self) -> bool { // `extern "x86-interrupt" fn()` (active, abi_x86_interrupt, "1.17.0", Some(40180), None), - // Allows the `catch {...}` expression (active, catch_expr, "1.17.0", Some(31436), Some(Edition::Edition2018)), -- 2.44.0