aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-10-08 15:47:45 -0700
committerAndrew Kelley <andrew@ziglang.org>2020-10-08 15:47:45 -0700
commit8b7539bd9554d25599ccff6f0e9ea79aa051946b (patch)
tree9157fafcbe37f904346fd73042be1d1d299d4da2 /src/main.zig
parentb5a36f676b1fd69f195d9f1eb6e35f3eb2f15946 (diff)
parentb02341d6f58e0b8a87fc2ab589dcfd85e5dc96cd (diff)
downloadzig-8b7539bd9554d25599ccff6f0e9ea79aa051946b.tar.gz
zig-8b7539bd9554d25599ccff6f0e9ea79aa051946b.zip
Merge remote-tracking branch 'origin/master' into llvm11
Conflicts: src/clang.zig Master branch renamed an enum; this branch gave it an explicit tag type and explicitly initialized values. This commit combines the changes together.
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/main.zig b/src/main.zig
index b89ac3768e..8a3fb72102 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -992,15 +992,20 @@ fn buildOutputType(
},
.optimize => {
// Alright, what release mode do they want?
- if (mem.eql(u8, it.only_arg, "Os")) {
+ const level = if (it.only_arg.len >= 1 and it.only_arg[0] == 'O') it.only_arg[1..] else it.only_arg;
+ if (mem.eql(u8, level, "s") or
+ mem.eql(u8, level, "z"))
+ {
optimize_mode = .ReleaseSmall;
- } else if (mem.eql(u8, it.only_arg, "O2") or
- mem.eql(u8, it.only_arg, "O3") or
- mem.eql(u8, it.only_arg, "O4"))
+ } else if (mem.eql(u8, level, "1") or
+ mem.eql(u8, level, "2") or
+ mem.eql(u8, level, "3") or
+ mem.eql(u8, level, "4") or
+ mem.eql(u8, level, "fast"))
{
optimize_mode = .ReleaseFast;
- } else if (mem.eql(u8, it.only_arg, "Og") or
- mem.eql(u8, it.only_arg, "O0"))
+ } else if (mem.eql(u8, level, "g") or
+ mem.eql(u8, level, "0"))
{
optimize_mode = .Debug;
} else {
@@ -1009,8 +1014,13 @@ fn buildOutputType(
},
.debug => {
strip = false;
- if (mem.eql(u8, it.only_arg, "-g")) {
+ if (mem.eql(u8, it.only_arg, "g")) {
// We handled with strip = false above.
+ } else if (mem.eql(u8, it.only_arg, "g1") or
+ mem.eql(u8, it.only_arg, "gline-tables-only"))
+ {
+ // We handled with strip = false above. but we also want reduced debug info.
+ try clang_argv.append("-gline-tables-only");
} else {
try clang_argv.appendSlice(it.other_args);
}