phosek added a comment.

Another potential future improvement is error reporting for subcommands:

  $ ./bin/llvm clang       
  llvm: error: no input files
  $ ./bin/clang    
  clang-15: error: no input files

Ideally, the multicall tool would produce the same error message.



================
Comment at: llvm/cmake/modules/AddLLVM.cmake:897
+    set_property(GLOBAL APPEND PROPERTY LLVM_DRIVER_TOOLS ${name})
+    target_link_libraries(${obj_name} PUBLIC ${LLVM_PTHREAD_LIB})
+    llvm_config(${obj_name} ${USE_SHARED} ${LLVM_LINK_COMPONENTS} )
----------------
The error that @MaskRay reported is because we use `PUBLIC` with 
`target_link_libraries()` here, but we use plain form of 
`target_link_libraries()` later in  `explicit_llvm_config` that is invoked 
`llvm_config` (see 
https://github.com/llvm/llvm-project/blob/1643f01232b41b93e5f3a21d89b111efab0e378a/llvm/cmake/modules/LLVM-Config.cmake#L110).
 Omitting `PUBLIC` here appears to be sufficient to avoid the error.


================
Comment at: llvm/tools/CMakeLists.txt:59
+# scrape up tools from other projects into itself.
+add_subdirectory(llvm-driver)
----------------
Should this be guarded by `LLVM_TOOL_LLVM_DRIVER_BUILD` to behave as the commit 
message says? Currently the `llvm-driver` appears to be built regardless of 
`LLVM_TOOL_LLVM_DRIVER_BUILD`.


================
Comment at: llvm/tools/llvm-driver/llvm-driver.cpp:43
+  if (LaunchedTool == "llvm") {
+    LaunchedTool = Argv[1];
+    ConsumeFirstArg = true;
----------------
When the tool is invoked without any arguments (that is, simply as 
`./bin/llvm`) this will lead to out-of-bounds array access. We should handle 
this case explicitly.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D109977

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to