From ab305c0b8dae55c473443c123ce161845c5c48a8 Mon Sep 17 00:00:00 2001 From: Ivan Kosarev Date: Mon, 17 Nov 2025 11:35:13 +0000 Subject: [PATCH] [TableGen] Strip directories from filename prefixes. Fixes https://github.com/llvm/llvm-project/pull/167700 to support builds where TableGen's output file is specified as full path rather than just filename. --- llvm/lib/TableGen/Main.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/llvm/lib/TableGen/Main.cpp b/llvm/lib/TableGen/Main.cpp index c3869c3fb9a5a..3330b70cdc2e1 100644 --- a/llvm/lib/TableGen/Main.cpp +++ b/llvm/lib/TableGen/Main.cpp @@ -167,12 +167,11 @@ int llvm::TableGenMain(const char *argv0, // Write output to memory. Timer.startBackendTimer("Backend overall"); - SmallString<128> FilenamePrefix(OutputFilename); - sys::path::replace_extension(FilenamePrefix, ""); TableGenOutputFiles OutFiles; unsigned status = 0; // ApplyCallback will return true if it did not apply any callback. In that // case, attempt to apply the MainFn. + StringRef FilenamePrefix(sys::path::stem(OutputFilename)); if (TableGen::Emitter::ApplyCallback(Records, OutFiles, FilenamePrefix)) status = MainFn ? MainFn(OutFiles, Records) : 1; Timer.stopBackendTimer(); @@ -195,7 +194,7 @@ int llvm::TableGenMain(const char *argv0, SmallString<128> Filename(OutputFilename); // TODO: Format using the split-file convention when writing to stdout? if (Filename != "-") { - Filename = FilenamePrefix; + sys::path::replace_extension(Filename, ""); Filename.append(Suffix); } if (int Ret = WriteOutput(Parser, argv0, Filename, Content))