Fix argument alias handling for -O and -C opt-level
This commit is contained in:
parent
d65e721ef8
commit
e6da57f3e7
@ -2181,10 +2181,15 @@ pub fn build_session_options_and_crate_config(
|
||||
TargetTriple::from_triple(host_triple())
|
||||
};
|
||||
let opt_level = {
|
||||
if matches.opt_present("O") {
|
||||
if cg.opt_level.is_some() {
|
||||
early_error(error_format, "-O and -C opt-level both provided");
|
||||
let max_o = matches.opt_positions("O").into_iter().max();
|
||||
let max_c = matches.opt_strs_pos("C").into_iter().flat_map(|(i, s)| {
|
||||
if let Some("opt-level") = s.splitn(2, '=').next() {
|
||||
Some(i)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}).max();
|
||||
if max_o > max_c {
|
||||
OptLevel::Default
|
||||
} else {
|
||||
match cg.opt_level.as_ref().map(String::as_ref) {
|
||||
|
Loading…
Reference in New Issue
Block a user