zequanwu added a comment. In D147256#4257797 <https://reviews.llvm.org/D147256#4257797>, @hans wrote:
> In D147256#4249527 <https://reviews.llvm.org/D147256#4249527>, @zequanwu > wrote: > >> - Add a `-use-target-path-separator` flag for llc. >> - Add test for llc with that flag. > > But where does `TM.Options.ObjectFilenameForDebug` come from? Presumably it > comes from Clang at some point, so is there any chance we can fix it "at the > source" instead? `TM.Options.ObjectFilenameForDebug` either comes from llc's `-o` or clang-cl's `object-file-name=` which is translated from `/Fo[ObjectFileName]`. For Chromium, the `/Fo[ObjectFileName]` we pass to clang-cl is the same when building on Windows and targeting Windows from Linux. The problem comes `llvm::sys::path::remove_dots(PathStore, /*remove_dot_dot=*/true);` in `CodeViewDebug.cpp`. That function always convert the path to use host's path separator. And I don't think we can write a `remove_dots` function that doesn't change path separator, because `\` can only be used as path separator on Windows but is a valid path character on Linux. Or we could just not use `llvm::sys::path::remove_dots`, use the user's input as it is for object file path. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147256/new/ https://reviews.llvm.org/D147256 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits