summaryrefslogtreecommitdiffstats
path: root/lld/include/lld/Common/Reproduce.h
diff options
context:
space:
mode:
Diffstat (limited to 'lld/include/lld/Common/Reproduce.h')
-rw-r--r--lld/include/lld/Common/Reproduce.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/lld/include/lld/Common/Reproduce.h b/lld/include/lld/Common/Reproduce.h
new file mode 100644
index 00000000000..9cc430e5185
--- /dev/null
+++ b/lld/include/lld/Common/Reproduce.h
@@ -0,0 +1,39 @@
+//===- Reproduce.h - Utilities for creating reproducers ---------*- C++ -*-===//
+//
+// The LLVM Linker
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLD_COMMON_REPRODUCE_H
+#define LLD_COMMON_REPRODUCE_H
+
+#include "lld/Common/LLVM.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Error.h"
+
+namespace llvm {
+namespace opt { class Arg; }
+}
+
+namespace lld {
+
+// Makes a given pathname an absolute path first, and then remove
+// beginning /. For example, "../foo.o" is converted to "home/john/foo.o",
+// assuming that the current directory is "/home/john/bar".
+std::string relativeToRoot(StringRef Path);
+
+// Quote a given string if it contains a space character.
+std::string quote(StringRef S);
+
+// Rewrite the given path if a file exists with that pathname, otherwise
+// returns the original path.
+std::string rewritePath(StringRef S);
+
+// Returns the string form of the given argument.
+std::string toString(llvm::opt::Arg *Arg);
+}
+
+#endif
OpenPOWER on IntegriCloud