Skip to content

Commit 3495737

Browse files
committed
auto merge of #7157 : sstewartgallus/rust/master, r=brson
I did a little bit of cleanup work in driver.rs. It's not much but hey little steps.
2 parents a4cc34f + f22580d commit 3495737

File tree

1 file changed

+39
-47
lines changed

1 file changed

+39
-47
lines changed

src/librustc/driver/driver.rs

Lines changed: 39 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -65,34 +65,24 @@ pub fn source_name(input: &input) -> @str {
6565
6666
pub fn default_configuration(sess: Session, argv0: @str, input: &input) ->
6767
ast::crate_cfg {
68-
let libc = match sess.targ_cfg.os {
69-
session::os_win32 => @"msvcrt.dll",
70-
session::os_macos => @"libc.dylib",
71-
session::os_linux => @"libc.so.6",
72-
session::os_android => @"libc.so",
73-
session::os_freebsd => @"libc.so.7"
74-
// _ { "libc.so" }
68+
let (libc, tos) = match sess.targ_cfg.os {
69+
session::os_win32 => (@"msvcrt.dll", @"win32"),
70+
session::os_macos => (@"libc.dylib", @"macos"),
71+
session::os_linux => (@"libc.so.6", @"linux"),
72+
session::os_android => (@"libc.so", @"android"),
73+
session::os_freebsd => (@"libc.so.7", @"freebsd")
7574
};
76-
let tos = match sess.targ_cfg.os {
77-
session::os_win32 => @"win32",
78-
session::os_macos => @"macos",
79-
session::os_linux => @"linux",
80-
session::os_android => @"android",
81-
session::os_freebsd => @"freebsd"
82-
// _ { "libc.so" }
83-
};
84-
85-
let mk = attr::mk_name_value_item_str;
8675

8776
// ARM is bi-endian, however using NDK seems to default
8877
// to little-endian unless a flag is provided.
8978
let (end,arch,wordsz) = match sess.targ_cfg.arch {
90-
abi::X86 => (@"little",@"x86",@"32"),
91-
abi::X86_64 => (@"little",@"x86_64",@"64"),
92-
abi::Arm => (@"little",@"arm",@"32"),
93-
abi::Mips => (@"big",@"mips",@"32")
79+
abi::X86 => (@"little", @"x86", @"32"),
80+
abi::X86_64 => (@"little", @"x86_64", @"64"),
81+
abi::Arm => (@"little", @"arm", @"32"),
82+
abi::Mips => (@"big", @"mips", @"32")
9483
};
9584

85+
let mk = attr::mk_name_value_item_str;
9686
return ~[ // Target bindings.
9787
attr::mk_word_item(os::FAMILY.to_managed()),
9888
mk(@"target_os", tos),
@@ -463,36 +453,38 @@ pub fn pretty_print_input(sess: Session, cfg: ast::crate_cfg, input: &input,
463453
}
464454
465455
pub fn get_os(triple: &str) -> Option<session::os> {
466-
if triple.contains("win32") ||
467-
triple.contains("mingw32") {
468-
Some(session::os_win32)
469-
} else if triple.contains("darwin") {
470-
Some(session::os_macos)
471-
} else if triple.contains("android") {
472-
Some(session::os_android)
473-
} else if triple.contains("linux") {
474-
Some(session::os_linux)
475-
} else if triple.contains("freebsd") {
476-
Some(session::os_freebsd)
477-
} else { None }
456+
for os_names.each |&(name, os)| {
457+
if triple.contains(name) { return Some(os) }
458+
}
459+
None
478460
}
461+
static os_names : &'static [(&'static str, session::os)] = &'static [
462+
("mingw32", session::os_win32),
463+
("win32", session::os_win32),
464+
("darwin", session::os_macos),
465+
("android", session::os_android),
466+
("linux", session::os_linux),
467+
("freebsd", session::os_freebsd)];
479468

480469
pub fn get_arch(triple: &str) -> Option<abi::Architecture> {
481-
if triple.contains("i386") ||
482-
triple.contains("i486") ||
483-
triple.contains("i586") ||
484-
triple.contains("i686") ||
485-
triple.contains("i786") {
486-
Some(abi::X86)
487-
} else if triple.contains("x86_64") {
488-
Some(abi::X86_64)
489-
} else if triple.contains("arm") ||
490-
triple.contains("xscale") {
491-
Some(abi::Arm)
492-
} else if triple.contains("mips") {
493-
Some(abi::Mips)
494-
} else { None }
470+
for architecture_abis.each |&(arch, abi)| {
471+
if triple.contains(arch) { return Some(abi) }
472+
}
473+
None
495474
}
475+
static architecture_abis : &'static [(&'static str, abi::Architecture)] = &'static [
476+
("i386", abi::X86),
477+
("i486", abi::X86),
478+
("i586", abi::X86),
479+
("i686", abi::X86),
480+
("i786", abi::X86),
481+
482+
("x86_64", abi::X86_64),
483+
484+
("arm", abi::Arm),
485+
("xscale", abi::Arm),
486+
487+
("mips", abi::Mips)];
496488

497489
pub fn build_target_config(sopts: @session::options,
498490
demitter: diagnostic::Emitter)

0 commit comments

Comments
 (0)