Skip to content

Commit d54cf00

Browse files
committed
Add comments
1 parent 11b1d48 commit d54cf00

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/librustc/session/config.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2181,6 +2181,12 @@ pub fn build_session_options_and_crate_config(
21812181
TargetTriple::from_triple(host_triple())
21822182
};
21832183
let opt_level = {
2184+
// The `-O` and `-C opt-level` flags specify the same setting, so we want to be able
2185+
// to use them interchangeably. However, because they're technically different flags,
2186+
// we need to work out manually which should take precedence if both are supplied (i.e.
2187+
// the rightmost flag). We do this by finding the (rightmost) position of both flags and
2188+
// comparing them. Note that if a flag is not found, its position will be `None`, which
2189+
// always compared less than `Some(_)`.
21842190
let max_o = matches.opt_positions("O").into_iter().max();
21852191
let max_c = matches.opt_strs_pos("C").into_iter().flat_map(|(i, s)| {
21862192
if let Some("opt-level") = s.splitn(2, '=').next() {
@@ -2213,6 +2219,9 @@ pub fn build_session_options_and_crate_config(
22132219
}
22142220
}
22152221
};
2222+
// The `-g` and `-C debuginfo` flags specify the same setting, so we want to be able
2223+
// to use them interchangeably. See the note above (regarding `-O` and `-C opt-level`)
2224+
// for more details.
22162225
let debug_assertions = cg.debug_assertions.unwrap_or(opt_level == OptLevel::No);
22172226
let max_g = matches.opt_positions("g").into_iter().max();
22182227
let max_c = matches.opt_strs_pos("C").into_iter().flat_map(|(i, s)| {

0 commit comments

Comments
 (0)