brettw created this revision. brettw added a reviewer: paulkirth. brettw added a project: clang-tools-extra. Herald added subscribers: usaxena95, arphaman. Herald added a project: All. brettw requested review of this revision. Herald added a subscriber: cfe-commits.
When using `clang-doc --format=html` it will crash on startup because of an assertion doing a self-assignment of a `SmallString`. This patch removes the self-assignment by creating an intermediate copy. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D131793 Files: clang-tools-extra/clang-doc/tool/ClangDocMain.cpp Index: clang-tools-extra/clang-doc/tool/ClangDocMain.cpp =================================================================== --- clang-tools-extra/clang-doc/tool/ClangDocMain.cpp +++ clang-tools-extra/clang-doc/tool/ClangDocMain.cpp @@ -231,9 +231,10 @@ if (Format == "html") { void *MainAddr = (void *)(intptr_t)GetExecutablePath; std::string ClangDocPath = GetExecutablePath(argv[0], MainAddr); + llvm::SmallString<128> NativeClangDocPath; + llvm::sys::path::native(ClangDocPath, NativeClangDocPath); llvm::SmallString<128> AssetsPath; - llvm::sys::path::native(ClangDocPath, AssetsPath); - AssetsPath = llvm::sys::path::parent_path(AssetsPath); + AssetsPath = llvm::sys::path::parent_path(NativeClangDocPath); llvm::sys::path::append(AssetsPath, "..", "share", "clang"); llvm::SmallString<128> DefaultStylesheet; llvm::sys::path::native(AssetsPath, DefaultStylesheet);
Index: clang-tools-extra/clang-doc/tool/ClangDocMain.cpp =================================================================== --- clang-tools-extra/clang-doc/tool/ClangDocMain.cpp +++ clang-tools-extra/clang-doc/tool/ClangDocMain.cpp @@ -231,9 +231,10 @@ if (Format == "html") { void *MainAddr = (void *)(intptr_t)GetExecutablePath; std::string ClangDocPath = GetExecutablePath(argv[0], MainAddr); + llvm::SmallString<128> NativeClangDocPath; + llvm::sys::path::native(ClangDocPath, NativeClangDocPath); llvm::SmallString<128> AssetsPath; - llvm::sys::path::native(ClangDocPath, AssetsPath); - AssetsPath = llvm::sys::path::parent_path(AssetsPath); + AssetsPath = llvm::sys::path::parent_path(NativeClangDocPath); llvm::sys::path::append(AssetsPath, "..", "share", "clang"); llvm::SmallString<128> DefaultStylesheet; llvm::sys::path::native(AssetsPath, DefaultStylesheet);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits