[PATCH] D46239: [llvm-rc] Default to writing the output next to the input, if no output is specified

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 2 14:19:00 PDT 2018


This revision was automatically updated to reflect the committed changes.
Closed by commit rL331403: [llvm-rc] Default to writing the output next to the input, if no output is… (authored by mstorsjo, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D46239?vs=144492&id=144929#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D46239

Files:
  llvm/trunk/test/tools/llvm-rc/tag-menu.test
  llvm/trunk/test/tools/llvm-rc/tokenizer.test
  llvm/trunk/tools/llvm-rc/llvm-rc.cpp


Index: llvm/trunk/tools/llvm-rc/llvm-rc.cpp
===================================================================
--- llvm/trunk/tools/llvm-rc/llvm-rc.cpp
+++ llvm/trunk/tools/llvm-rc/llvm-rc.cpp
@@ -24,6 +24,7 @@
 #include "llvm/Support/InitLLVM.h"
 #include "llvm/Support/ManagedStatic.h"
 #include "llvm/Support/MemoryBuffer.h"
+#include "llvm/Support/Path.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/Process.h"
 #include "llvm/Support/Signals.h"
@@ -157,9 +158,15 @@
 
   if (!IsDryRun) {
     auto OutArgsInfo = InputArgs.getAllArgValues(OPT_FILEOUT);
+    if (OutArgsInfo.empty()) {
+      SmallString<128> OutputFile = InputFile;
+      llvm::sys::path::replace_extension(OutputFile, "res");
+      OutArgsInfo.push_back(OutputFile.str());
+    }
+
     if (OutArgsInfo.size() != 1)
       fatalError(
-          "Exactly one output file should be provided (using /FO flag).");
+          "No more than one output file should be provided (using /FO flag).");
 
     std::error_code EC;
     auto FOut =
Index: llvm/trunk/test/tools/llvm-rc/tag-menu.test
===================================================================
--- llvm/trunk/test/tools/llvm-rc/tag-menu.test
+++ llvm/trunk/test/tools/llvm-rc/tag-menu.test
@@ -1,6 +1,11 @@
 ; RUN: llvm-rc /FO %t %p/Inputs/tag-menu.rc
 ; RUN: llvm-readobj %t | FileCheck %s --check-prefix=MENU
 
+; Test running llvm-rc without an explicit output file.
+; RUN: cp %p/Inputs/tag-menu.rc %t.implicit.rc
+; RUN: llvm-rc %t.implicit.rc
+; RUN: llvm-readobj %t.implicit.res | FileCheck --check-prefix=MENU %s
+
 ; MENU: Resource type (int): 4
 ; MENU-NEXT: Resource name (string): CHECKRECURSION
 ; MENU-NEXT: Data version: 0
Index: llvm/trunk/test/tools/llvm-rc/tokenizer.test
===================================================================
--- llvm/trunk/test/tools/llvm-rc/tokenizer.test
+++ llvm/trunk/test/tools/llvm-rc/tokenizer.test
@@ -1,4 +1,4 @@
-; RUN: not llvm-rc /V %p/Inputs/tokens.rc | FileCheck %s
+; RUN: not llvm-rc /V /FO %t.res %p/Inputs/tokens.rc | FileCheck %s
 ; llvm-rc fails now on this sample because it is an invalid resource file
 ; script. We silence the error message and just analyze the output.
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D46239.144929.patch
Type: text/x-patch
Size: 2205 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180502/0647f772/attachment.bin>


More information about the llvm-commits mailing list