diff options
| author | bors <bors@rust-lang.org> | 2016-03-03 21:37:18 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2016-03-03 21:37:18 +0000 |
| commit | e91f889ed3a7ced584e90cf7b05e2c0ac476f900 (patch) | |
| tree | 866ed07fc3a5ea4a3104c7f5f8c524fa70fa4f28 /src | |
| parent | 809b14acf10fa717716c054a3d1dd4d400784d19 (diff) | |
| parent | 4e46eee110b739ab415affc8f9b524d6b4be8554 (diff) | |
| download | rust-e91f889ed3a7ced584e90cf7b05e2c0ac476f900.tar.gz rust-e91f889ed3a7ced584e90cf7b05e2c0ac476f900.zip | |
Auto merge of #31671 - ranma42:printcfg, r=alexcrichton
Show `cfg` as possible argument to `--print` and make it so that `--print cfg` also outputs the `target_feature`s. Should I also extend `src/test/run-make/print-cfg/Makefile` to check that `target_feature`s are actually printed?
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/session/config.rs | 2 | ||||
| -rw-r--r-- | src/librustc_driver/lib.rs | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs index ea08bf021fb..679da4abf5f 100644 --- a/src/librustc/session/config.rs +++ b/src/librustc/session/config.rs @@ -887,7 +887,7 @@ pub fn rustc_short_optgroups() -> Vec<RustcOptGroup> { "[asm|llvm-bc|llvm-ir|obj|link|dep-info]"), opt::multi_s("", "print", "Comma separated list of compiler information to \ print on stdout", - "[crate-name|file-names|sysroot|target-list]"), + "[crate-name|file-names|sysroot|cfg|target-list]"), opt::flagmulti_s("g", "", "Equivalent to -C debuginfo=2"), opt::flagmulti_s("O", "", "Equivalent to -C opt-level=2"), opt::opt_s("o", "", "Write output to <filename>", "FILENAME"), diff --git a/src/librustc_driver/lib.rs b/src/librustc_driver/lib.rs index d0f86cfcb46..da565856a9f 100644 --- a/src/librustc_driver/lib.rs +++ b/src/librustc_driver/lib.rs @@ -94,7 +94,7 @@ use syntax::errors; use syntax::errors::emitter::Emitter; use syntax::diagnostics; use syntax::parse::token; -use syntax::feature_gate::UnstableFeatures; +use syntax::feature_gate::{GatedCfg, UnstableFeatures}; #[cfg(test)] pub mod test; @@ -565,7 +565,18 @@ impl RustcDefaultCalls { } } PrintRequest::Cfg => { - for cfg in config::build_configuration(sess) { + let mut cfg = config::build_configuration(&sess); + target_features::add_configuration(&mut cfg, &sess); + + let allow_unstable_cfg = match get_unstable_features_setting() { + UnstableFeatures::Disallow => false, + _ => true, + }; + + for cfg in cfg { + if !allow_unstable_cfg && GatedCfg::gate(&*cfg).is_some() { + continue; + } match cfg.node { ast::MetaItemKind::Word(ref word) => println!("{}", word), ast::MetaItemKind::NameValue(ref name, ref value) => { |
