[llvm-link] Fix options of llvm-link
authorStephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Tue, 22 Nov 2022 02:03:30 +0000 (18:03 -0800)
committerStephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Tue, 22 Nov 2022 02:08:27 +0000 (18:08 -0800)
This tool only parsed options after creating the LLVMContext.
Unfortunately, this means that some options, such as --opaque-pointers,
which are read when the LLVMContext is created are impossible to
set from the command line.  This patch moves the LLVMContext creation
after the option parsing.

llvm/tools/llvm-link/llvm-link.cpp

index 6585b19..32ab9fa 100644 (file)
@@ -456,11 +456,12 @@ int main(int argc, char **argv) {
   InitLLVM X(argc, argv);
   ExitOnErr.setBanner(std::string(argv[0]) + ": ");
 
+  cl::HideUnrelatedOptions({&LinkCategory, &getColorCategory()});
+  cl::ParseCommandLineOptions(argc, argv, "llvm linker\n");
+
   LLVMContext Context;
   Context.setDiagnosticHandler(std::make_unique<LLVMLinkDiagnosticHandler>(),
                                true);
-  cl::HideUnrelatedOptions({&LinkCategory, &getColorCategory()});
-  cl::ParseCommandLineOptions(argc, argv, "llvm linker\n");
 
   if (!DisableDITypeMap)
     Context.enableDebugTypeODRUniquing();