diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-10-08 15:47:45 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-10-08 15:47:45 -0700 |
| commit | 8b7539bd9554d25599ccff6f0e9ea79aa051946b (patch) | |
| tree | 9157fafcbe37f904346fd73042be1d1d299d4da2 /src/main.zig | |
| parent | b5a36f676b1fd69f195d9f1eb6e35f3eb2f15946 (diff) | |
| parent | b02341d6f58e0b8a87fc2ab589dcfd85e5dc96cd (diff) | |
| download | zig-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.zig | 24 |
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); } |
