[PATCH] D79796: Sketch support for generating CC1 command line from CompilerInvocation

Michael Spencer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 19 14:42:08 PDT 2020


Bigcheese added inline comments.


================
Comment at: clang/include/clang/Frontend/CompilerInvocation.h:193
+  /// \param [out] Args - The generated arguments. Note that the caller is
+  /// responsible for insersting the path to the clang executable and "-cc1" if
+  /// desired.
----------------
inserting


================
Comment at: clang/lib/Frontend/CompilerInvocation.cpp:160-161
+
+  llvm::report_fatal_error("The simple enum value was not correctly defined in "
+                           "the tablegen option description");
+}
----------------
`llvm::report_fatal_error` is only used for code paths we actually expect to potentially be hit. For programming errors we instead use `assert` or `llvm_unreachable`. See https://llvm.org/docs/ProgrammersManual.html#error-handling .


================
Comment at: llvm/utils/TableGen/OptParserEmitter.cpp:430-440
+  std::vector<std::unique_ptr<MarshallingKindInfo>> OptsWithMarshalling;
+  for (unsigned I = 0, E = Opts.size(); I != E; ++I) {
+    const Record &R = *Opts[I];
 
+    // Start a single option entry.
+    OS << "OPTION(";
+    WriteOptRecordFields(OS, R);
----------------
Just to verify, this doesn't change the output for options that don't have marshalling info, right? Just want to make sure this doesn't change anything for other users of libOption.


================
Comment at: llvm/utils/TableGen/OptParserEmitter.cpp:468-469
+  OS << "};\n";
+  OS << "static const unsigned SimpleEnumValueTablesSize = "
+        "sizeof(SimpleEnumValueTables) / sizeof(SimpleEnumValueTable);\n";
+
----------------
What happens if there are none?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79796/new/

https://reviews.llvm.org/D79796





More information about the llvm-commits mailing list