| ... | @@ -432,6 +432,8 @@ const usage_build_generic = | ... | @@ -432,6 +432,8 @@ const usage_build_generic = |
| 432 | \\ -fno-Clang Prevent using Clang as the C/C++ compilation backend | 432 | \\ -fno-Clang Prevent using Clang as the C/C++ compilation backend |
| 433 | \\ -freference-trace[=num] How many lines of reference trace should be shown per compile error | 433 | \\ -freference-trace[=num] How many lines of reference trace should be shown per compile error |
| 434 | \\ -fno-reference-trace Disable reference trace | 434 | \\ -fno-reference-trace Disable reference trace |
| | 435 | \\ -ferror-tracing Enable error tracing in ReleaseFast mode |
| | 436 | \\ -fno-error-tracing Disable error tracing in Debug and ReleaseSafe mode |
| 435 | \\ -fsingle-threaded Code assumes there is only one thread | 437 | \\ -fsingle-threaded Code assumes there is only one thread |
| 436 | \\ -fno-single-threaded Code may not assume there is only one thread | 438 | \\ -fno-single-threaded Code may not assume there is only one thread |
| 437 | \\ -fbuiltin Enable implicit builtin knowledge of functions | 439 | \\ -fbuiltin Enable implicit builtin knowledge of functions |
| ... | @@ -797,6 +799,7 @@ fn buildOutputType( | ... | @@ -797,6 +799,7 @@ fn buildOutputType( |
| 797 | var headerpad_max_install_names: bool = false; | 799 | var headerpad_max_install_names: bool = false; |
| 798 | var dead_strip_dylibs: bool = false; | 800 | var dead_strip_dylibs: bool = false; |
| 799 | var reference_trace: ?u32 = null; | 801 | var reference_trace: ?u32 = null; |
| | 802 | var error_tracing: ?bool = null; |
| 800 | var pdb_out_path: ?[]const u8 = null; | 803 | var pdb_out_path: ?[]const u8 = null; |
| 801 | | 804 | |
| 802 | // e.g. -m3dnow or -mno-outline-atomics. They correspond to std.Target llvm cpu feature names. | 805 | // e.g. -m3dnow or -mno-outline-atomics. They correspond to std.Target llvm cpu feature names. |
| ... | @@ -1218,6 +1221,10 @@ fn buildOutputType( | ... | @@ -1218,6 +1221,10 @@ fn buildOutputType( |
| 1218 | }; | 1221 | }; |
| 1219 | } else if (mem.eql(u8, arg, "-fno-reference-trace")) { | 1222 | } else if (mem.eql(u8, arg, "-fno-reference-trace")) { |
| 1220 | reference_trace = null; | 1223 | reference_trace = null; |
| | 1224 | } else if (mem.eql(u8, arg, "-ferror-tracing")) { |
| | 1225 | error_tracing = true; |
| | 1226 | } else if (mem.eql(u8, arg, "-fno-error-tracing")) { |
| | 1227 | error_tracing = false; |
| 1221 | } else if (mem.eql(u8, arg, "-rdynamic")) { | 1228 | } else if (mem.eql(u8, arg, "-rdynamic")) { |
| 1222 | rdynamic = true; | 1229 | rdynamic = true; |
| 1223 | } else if (mem.eql(u8, arg, "-fsoname")) { | 1230 | } else if (mem.eql(u8, arg, "-fsoname")) { |
| ... | @@ -3136,6 +3143,7 @@ fn buildOutputType( | ... | @@ -3136,6 +3143,7 @@ fn buildOutputType( |
| 3136 | .headerpad_max_install_names = headerpad_max_install_names, | 3143 | .headerpad_max_install_names = headerpad_max_install_names, |
| 3137 | .dead_strip_dylibs = dead_strip_dylibs, | 3144 | .dead_strip_dylibs = dead_strip_dylibs, |
| 3138 | .reference_trace = reference_trace, | 3145 | .reference_trace = reference_trace, |
| | 3146 | .error_tracing = error_tracing, |
| 3139 | .pdb_out_path = pdb_out_path, | 3147 | .pdb_out_path = pdb_out_path, |
| 3140 | }) catch |err| switch (err) { | 3148 | }) catch |err| switch (err) { |
| 3141 | error.LibCUnavailable => { | 3149 | error.LibCUnavailable => { |