<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 9 July 2014 07:05, Alp Toker <span dir="ltr"><<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Author: alp<br>
Date: Wed Jul  9 09:05:11 2014<br>
New Revision: 212620<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=212620&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=212620&view=rev</a><br>
Log:<br>
cc1as: consolidate option flags with cc1 and eliminate duplication<br>
<br>
The clang -cc1as options are nearly a strict subset of -cc1. Instead of<br>
duplicating the definitions and documentation, let's go ahead and share the<br>
definitions in a similar way the current handling of combined driver and<br>
frontend flags, eliminating some of the vestigial legacy surrounding the<br>
assembler subcommand.<br></blockquote><div><br></div><div>Nice!</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Removed:<br>
    cfe/trunk/include/clang/Driver/CC1AsOptions.h<br>
    cfe/trunk/include/clang/Driver/CC1AsOptions.td<br>
    cfe/trunk/lib/Driver/CC1AsOptions.cpp<br>
Modified:<br>
    cfe/trunk/include/clang/Driver/CC1Options.td<br>
    cfe/trunk/include/clang/Driver/CMakeLists.txt<br>
    cfe/trunk/include/clang/Driver/Options.h<br>
    cfe/trunk/include/clang/Driver/Options.td<br>
    cfe/trunk/lib/Driver/CMakeLists.txt<br>
    cfe/trunk/tools/driver/cc1as_main.cpp<br>
<br>
</blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+#if 0<br>
+bool CompilerInvocation::CreateFromArgs(CompilerInvocation &Res,<br>
+                                        const char *const *ArgBegin,<br>
+                                        const char *const *ArgEnd,<br>
+                                        DiagnosticsEngine &Diags) {<br>
+  bool Success = true;<br>
+<br>
+  // Parse the arguments.<br>
+  std::unique_ptr<OptTable> Opts(createDriverOptTable());<br>
+  const unsigned IncludedFlagsBitmask = options::CC1Option;<br>
+  unsigned MissingArgIndex, MissingArgCount;<br>
+  std::unique_ptr<InputArgList> Args(<br>
+                                     Opts->ParseArgs(ArgBegin, ArgEnd, MissingArgIndex, MissingArgCount,<br>
+                                                     IncludedFlagsBitmask));<br>
+<br>
+  // Check for missing argument error.<br>
+  if (MissingArgCount) {<br>
+    Diags.Report(diag::err_drv_missing_argument)<br>
+    << Args->getArgString(MissingArgIndex) << MissingArgCount;<br>
+    Success = false;<br>
+  }<br>
+<br>
+  // Issue errors on unknown arguments.<br>
+  for (arg_iterator it = Args->filtered_begin(OPT_UNKNOWN),<br>
+       ie = Args->filtered_end(); it != ie; ++it) {<br>
+    Diags.Report(diag::err_drv_unknown_argument) << (*it)->getAsString(*Args);<br>
+    Success = false;<br>
+  }<br>
+}<br>
+#endif<br></blockquote><div><br></div><div>New #if 0'd vestiges? :)</div><div></div></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Nick</div></div>