<div dir="ltr">As Adrian mentioned, this can probably be covered/added to an existing test case in clang/test/Driver</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 24, 2017 at 1:57 PM Zhizhou Yang via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">zhizhouy updated this revision to Diff 93003.<br class="gmail_msg">
zhizhouy marked 3 inline comments as done.<br class="gmail_msg">
zhizhouy added a comment.<br class="gmail_msg">
<br class="gmail_msg">
Checked both grecord-gcc-swtiches and gno-record-gcc-switches.<br class="gmail_msg">
<br class="gmail_msg">
Modified testcases for it.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<a href="https://reviews.llvm.org/D30760" rel="noreferrer" class="gmail_msg" target="_blank">https://reviews.llvm.org/D30760</a><br class="gmail_msg">
<br class="gmail_msg">
Files:<br class="gmail_msg">
  lib/Driver/ToolChains/Clang.cpp<br class="gmail_msg">
  test/Driver/grecord-gcc-switches.c<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Index: test/Driver/grecord-gcc-switches.c<br class="gmail_msg">
===================================================================<br class="gmail_msg">
--- /dev/null<br class="gmail_msg">
+++ test/Driver/grecord-gcc-switches.c<br class="gmail_msg">
@@ -0,0 +1,13 @@<br class="gmail_msg">
+// RUN: %clang -### -g -c -grecord-gcc-switches %s 2>&1 | FileCheck -check-prefix=REC %s<br class="gmail_msg">
+// RUN: %clang -### -g -c -gno-record-gcc-switches %s 2>&1 | FileCheck -check-prefix=NO_REC %s<br class="gmail_msg">
+// RUN: %clang -### -g -c %s 2>&1 | FileCheck %s<br class="gmail_msg">
+int main (void) {<br class="gmail_msg">
+  return 0;<br class="gmail_msg">
+}<br class="gmail_msg">
+<br class="gmail_msg">
+// REC: "-dwarf-debug-flags"<br class="gmail_msg">
+// REC: -### -g -c -grecord-gcc-switches<br class="gmail_msg">
+// NO_REC-NOT: "-dwarf-debug-flags"<br class="gmail_msg">
+// NO_REC-NOT: -### -g -c -gno-record-gcc-switches<br class="gmail_msg">
+// CHECK-NOT: "-dwarf-debug-flags"<br class="gmail_msg">
+// CHECK-NOT: -### -g -c<br class="gmail_msg">
Index: lib/Driver/ToolChains/Clang.cpp<br class="gmail_msg">
===================================================================<br class="gmail_msg">
--- lib/Driver/ToolChains/Clang.cpp<br class="gmail_msg">
+++ lib/Driver/ToolChains/Clang.cpp<br class="gmail_msg">
@@ -2728,7 +2728,8 @@<br class="gmail_msg">
     DwarfVersion = getToolChain().GetDefaultDwarfVersion();<br class="gmail_msg">
   }<br class="gmail_msg">
<br class="gmail_msg">
-  // We ignore flags -gstrict-dwarf and -grecord-gcc-switches for now.<br class="gmail_msg">
+  // We ignore flag -gstrict-dwarf for now.<br class="gmail_msg">
+  // And we handle flag -grecord-gcc-switches later with DwarfDebugFlags.<br class="gmail_msg">
   Args.ClaimAllArgs(options::OPT_g_flags_Group);<br class="gmail_msg">
<br class="gmail_msg">
   // Column info is included by default for everything except PS4 and CodeView.<br class="gmail_msg">
@@ -4321,7 +4322,12 @@<br class="gmail_msg">
<br class="gmail_msg">
   // Optionally embed the -cc1 level arguments into the debug info, for build<br class="gmail_msg">
   // analysis.<br class="gmail_msg">
-  if (getToolChain().UseDwarfDebugFlags()) {<br class="gmail_msg">
+  // Also record command line arguments into the debug info if<br class="gmail_msg">
+  // -grecord-gcc-switches options is set on.<br class="gmail_msg">
+  // By default, -gno-record-gcc-switches is set on and no recording.<br class="gmail_msg">
+  if (getToolChain().UseDwarfDebugFlags() ||<br class="gmail_msg">
+      Args.hasFlag(options::OPT_grecord_gcc_switches,<br class="gmail_msg">
+                   options::OPT_gno_record_gcc_switches, false)) {<br class="gmail_msg">
     ArgStringList OriginalArgs;<br class="gmail_msg">
     for (const auto &Arg : Args)<br class="gmail_msg">
       Arg->render(Args, OriginalArgs);<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>