[llvm] r286891 - Revert "Revert "llvm-strings: support printing the filename""

Saleem Abdulrasool via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 14 13:10:41 PST 2016


Author: compnerd
Date: Mon Nov 14 15:10:41 2016
New Revision: 286891

URL: http://llvm.org/viewvc/llvm-project?rev=286891&view=rev
Log:
Revert "Revert "llvm-strings: support printing the filename""

Change the dynamic files to static in the hope that it will actually fix the
transient errors that Ive been unable to reproduce.

Added:
    llvm/trunk/test/tools/llvm-strings/Inputs/
    llvm/trunk/test/tools/llvm-strings/Inputs/abcd
    llvm/trunk/test/tools/llvm-strings/archive-filename.test
    llvm/trunk/test/tools/llvm-strings/file-filename.test
    llvm/trunk/test/tools/llvm-strings/stdin-filename.test
Modified:
    llvm/trunk/test/tools/llvm-strings/nested-archives.test
    llvm/trunk/tools/llvm-strings/llvm-strings.cpp

Added: llvm/trunk/test/tools/llvm-strings/Inputs/abcd
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-strings/Inputs/abcd?rev=286891&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-strings/Inputs/abcd (added)
+++ llvm/trunk/test/tools/llvm-strings/Inputs/abcd Mon Nov 14 15:10:41 2016
@@ -0,0 +1 @@
+abcd
\ No newline at end of file

Added: llvm/trunk/test/tools/llvm-strings/archive-filename.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-strings/archive-filename.test?rev=286891&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-strings/archive-filename.test (added)
+++ llvm/trunk/test/tools/llvm-strings/archive-filename.test Mon Nov 14 15:10:41 2016
@@ -0,0 +1,9 @@
+RUN: rm -f %T/archive.a
+RUN: llvm-ar -format gnu crs %T/archive.a %S/Inputs/abcd
+RUN: llvm-strings -f %T/archive.a | FileCheck %s
+RUN: llvm-strings --print-file-name %T/archive.a | FileCheck %s
+
+CHECK: archive.a: !<arch>
+CHECK: archive.a: abcd/           0           0     0     644     4         `
+CHECK: archive.a: abcd
+

Added: llvm/trunk/test/tools/llvm-strings/file-filename.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-strings/file-filename.test?rev=286891&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-strings/file-filename.test (added)
+++ llvm/trunk/test/tools/llvm-strings/file-filename.test Mon Nov 14 15:10:41 2016
@@ -0,0 +1,3 @@
+RUN: llvm-strings -f %S/Inputs/abcd | FileCheck %s
+RUN: llvm-strings --print-file-name %S/Inputs/abcd | FileCheck %s
+CHECK: {{[\\/]}}abcd: abcd

Modified: llvm/trunk/test/tools/llvm-strings/nested-archives.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-strings/nested-archives.test?rev=286891&r1=286890&r2=286891&view=diff
==============================================================================
--- llvm/trunk/test/tools/llvm-strings/nested-archives.test (original)
+++ llvm/trunk/test/tools/llvm-strings/nested-archives.test Mon Nov 14 15:10:41 2016
@@ -1,8 +1,7 @@
-RUN: echo -n abcd > %T/abcd
 RUN: rm -f %T/inner.ar
-RUN: llvm-ar crs %T/inner.a %T/abcd
+RUN: llvm-ar -format gnu crs %T/inner.a %S/Inputs/abcd
 RUN: rm -f %T/outer.ar
-RUN: llvm-ar crs %T/outer.a %T/inner.a
+RUN: llvm-ar -format gnu crs %T/outer.a %T/inner.a
 RUN: llvm-strings %T/outer.a | FileCheck %s
 
 CHECK: !<arch>

Added: llvm/trunk/test/tools/llvm-strings/stdin-filename.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-strings/stdin-filename.test?rev=286891&view=auto
==============================================================================
--- llvm/trunk/test/tools/llvm-strings/stdin-filename.test (added)
+++ llvm/trunk/test/tools/llvm-strings/stdin-filename.test Mon Nov 14 15:10:41 2016
@@ -0,0 +1,3 @@
+RUN: echo abcd | llvm-strings -f - | FileCheck %s
+RUN: echo abcd | llvm-strings --print-file-name - | FileCheck %s
+CHECK: {standard input}: abcd

Modified: llvm/trunk/tools/llvm-strings/llvm-strings.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-strings/llvm-strings.cpp?rev=286891&r1=286890&r2=286891&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-strings/llvm-strings.cpp (original)
+++ llvm/trunk/tools/llvm-strings/llvm-strings.cpp Mon Nov 14 15:10:41 2016
@@ -29,7 +29,19 @@ static cl::list<std::string> InputFileNa
                                             cl::desc("<input object files>"),
                                             cl::ZeroOrMore);
 
-static void strings(raw_ostream &OS, StringRef Contents) {
+static cl::opt<bool>
+    PrintFileName("print-file-name",
+                  cl::desc("Print the name of the file before each string"));
+static cl::alias PrintFileNameShort("f", cl::desc(""),
+                                    cl::aliasopt(PrintFileName));
+
+static void strings(raw_ostream &OS, StringRef FileName, StringRef Contents) {
+  auto print = [&OS, FileName](StringRef L) {
+    if (PrintFileName)
+      OS << FileName << ": ";
+    OS << L << '\n';
+  };
+
   const char *P = nullptr, *E = nullptr, *S = nullptr;
   for (P = Contents.begin(), E = Contents.end(); P < E; ++P) {
     if (std::isgraph(*P) || std::isblank(*P)) {
@@ -37,12 +49,12 @@ static void strings(raw_ostream &OS, Str
         S = P;
     } else if (S) {
       if (P - S > 3)
-        OS << StringRef(S, P - S) << '\n';
+        print(StringRef(S, P - S));
       S = nullptr;
     }
   }
   if (S && E - S > 3)
-    OS << StringRef(S, E - S) << '\n';
+    print(StringRef(S, E - S));
 }
 
 int main(int argc, char **argv) {
@@ -60,7 +72,8 @@ int main(int argc, char **argv) {
     if (std::error_code EC = Buffer.getError())
       errs() << File << ": " << EC.message() << '\n';
     else
-      strings(llvm::outs(), Buffer.get()->getMemBufferRef().getBuffer());
+      strings(llvm::outs(), File == "-" ? "{standard input}" : File,
+              Buffer.get()->getMemBufferRef().getBuffer());
   }
 
   return EXIT_SUCCESS;




More information about the llvm-commits mailing list