[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