Commit a1aa55ebe5

kcbanner <kcbanner@gmail.com>
2023-04-19 00:57:35
compilation: fix generating coff debug info on -gnu
The issue with just passing `-gcodeview` is that it's not part of the `OPT_g_Group` in `clang/Driver/Options.td`, so it doesn't trigger debug info to be generated. Passing only `-g` is sufficient on MSVC, as there is logic in `Clang.cpp` which enables codeview if that is the default for the toolchain. Since the default for -gnu is not codeview, we do pass `-gcodeview` in that case.
1 parent 0e394cf
Changed files (1)
src/Compilation.zig
@@ -4483,7 +4483,11 @@ pub fn addCCArgs(
 
     if (!comp.bin_file.options.strip) {
         switch (target.ofmt) {
-            .coff => try argv.append("-gcodeview"),
+            .coff => {
+                // -g is required here because -gcodeview doesn't trigger debug info
+                // generation, it only changes the type of information generated.
+                try argv.appendSlice(&.{ "-g", "-gcodeview" });
+            },
             .elf, .macho => try argv.append("-gdwarf-4"),
             else => try argv.append("-g"),
         }