[llvm] dc41f38 - [llvm-rc] Remove transitional preprocessing fallback logic

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 28 01:03:48 PDT 2023


Author: Martin Storsjö
Date: 2023-03-28T11:02:43+03:00
New Revision: dc41f387e357d87117b29e0da9e741be6884287c

URL: https://github.com/llvm/llvm-project/commit/dc41f387e357d87117b29e0da9e741be6884287c
DIFF: https://github.com/llvm/llvm-project/commit/dc41f387e357d87117b29e0da9e741be6884287c.diff

LOG: [llvm-rc] Remove transitional preprocessing fallback logic

When preprocessing was integrated to llvm-rc in 2021, this was a
new requirement (previously one could execute llvm-rc without a
suitable preprocessing tool to be available).

As a transitional helper, llvm-rc fell back on skipping preprocessing
if no suitable tool was found (with a warning printed), but users
could pass an llvm-rc specific option to silence the warning, if they
explicitly want to run the tool without preprocessing.

Now 2 years later, remove the transitional helper - error out if
preprocessing failed. The option for disabling preprocessing remains.

Differential Revision: https://reviews.llvm.org/D146797

Added: 
    

Modified: 
    llvm/tools/llvm-rc/llvm-rc.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/tools/llvm-rc/llvm-rc.cpp b/llvm/tools/llvm-rc/llvm-rc.cpp
index a8b838abd7cd..d77d68fa0986 100644
--- a/llvm/tools/llvm-rc/llvm-rc.cpp
+++ b/llvm/tools/llvm-rc/llvm-rc.cpp
@@ -228,7 +228,7 @@ struct RcOptions {
   unsigned LangId = (/*PrimaryLangId*/ 0x09) | (/*SubLangId*/ 0x01 << 10);
 };
 
-bool preprocess(StringRef Src, StringRef Dst, const RcOptions &Opts,
+void preprocess(StringRef Src, StringRef Dst, const RcOptions &Opts,
                 const char *Argv0) {
   std::string Clang;
   if (Opts.PrintCmdAndExit || !Opts.PreprocessCmd.empty()) {
@@ -238,15 +238,12 @@ bool preprocess(StringRef Src, StringRef Dst, const RcOptions &Opts,
     if (ClangOrErr) {
       Clang = *ClangOrErr;
     } else {
-      errs() << "llvm-rc: Unable to find clang, skipping preprocessing."
+      errs() << "llvm-rc: Unable to find clang for preprocessing."
              << "\n";
       StringRef OptionName =
           Opts.IsWindres ? "--no-preprocess" : "-no-preprocess";
-      errs()
-          << "Pass " << OptionName
-          << " to disable preprocessing. This will be an error in the future."
-          << "\n";
-      return false;
+      errs() << "Pass " << OptionName << " to disable preprocessing.\n";
+      fatalError("llvm-rc: Unable to preprocess.");
     }
   }
 
@@ -278,7 +275,6 @@ bool preprocess(StringRef Src, StringRef Dst, const RcOptions &Opts,
   if (Res) {
     fatalError("llvm-rc: Preprocessing failed.");
   }
-  return true;
 }
 
 static std::pair<bool, std::string> isWindres(llvm::StringRef Argv0) {
@@ -612,8 +608,8 @@ void doRc(std::string Src, std::string Dest, RcOptions &Opts,
   if (Opts.Preprocess) {
     std::string OutFile = createTempFile("preproc", "rc");
     TempPreprocFile.setFile(OutFile);
-    if (preprocess(Src, OutFile, Opts, Argv0))
-      PreprocessedFile = OutFile;
+    preprocess(Src, OutFile, Opts, Argv0);
+    PreprocessedFile = OutFile;
   }
 
   // Read and tokenize the input file.


        


More information about the llvm-commits mailing list