summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorDimitry Andric <dimitry@andric.com>2017-06-06 21:54:04 +0000
committerDimitry Andric <dimitry@andric.com>2017-06-06 21:54:04 +0000
commitbc3feaaa884021ee3d76b70a3a2a2617eb261148 (patch)
treee09038c6ea8a10329be5ddf4ed2da8091f1793a7 /llvm/include
parentff9d80cc7a602001b5528b57fdc5632b6f251032 (diff)
downloadbcm5719-llvm-bc3feaaa884021ee3d76b70a3a2a2617eb261148.tar.gz
bcm5719-llvm-bc3feaaa884021ee3d76b70a3a2a2617eb261148.zip
Allow VersionPrinter to print to arbitrary raw_ostreams
Summary: I would like to add printing of registered targets to clang's version information. For this to work correctly, the VersionPrinter logic in CommandLine.cpp should support printing to arbitrary raw_ostreams, instead of always defaulting to outs(). Add a raw_ostream& parameter to the function pointer type used for VersionPrinter, and while doing so, introduce a typedef for convenience. Note that VersionPrinter::print() will still default to using outs(), the clang part will necessarily go into a separate review. Reviewers: beanz, chandlerc, dberris, mehdi_amini, zturner Reviewed By: mehdi_amini Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33899 llvm-svn: 304835
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/Support/CommandLine.h7
-rw-r--r--llvm/include/llvm/Support/TargetRegistry.h2
2 files changed, 6 insertions, 3 deletions
diff --git a/llvm/include/llvm/Support/CommandLine.h b/llvm/include/llvm/Support/CommandLine.h
index e675b66a4cd..fe18416e239 100644
--- a/llvm/include/llvm/Support/CommandLine.h
+++ b/llvm/include/llvm/Support/CommandLine.h
@@ -64,12 +64,15 @@ bool ParseCommandLineOptions(int argc, const char *const *argv,
void ParseEnvironmentOptions(const char *progName, const char *envvar,
const char *Overview = "");
+// Function pointer type for printing version information.
+typedef std::function<void(raw_ostream &)> VersionPrinterTy;
+
///===---------------------------------------------------------------------===//
/// SetVersionPrinter - Override the default (LLVM specific) version printer
/// used to print out the version when --version is given
/// on the command line. This allows other systems using the
/// CommandLine utilities to print their own version string.
-void SetVersionPrinter(void (*func)());
+void SetVersionPrinter(VersionPrinterTy func);
///===---------------------------------------------------------------------===//
/// AddExtraVersionPrinter - Add an extra printer to use in addition to the
@@ -78,7 +81,7 @@ void SetVersionPrinter(void (*func)());
/// which will be called after the basic LLVM version
/// printing is complete. Each can then add additional
/// information specific to the tool.
-void AddExtraVersionPrinter(void (*func)());
+void AddExtraVersionPrinter(VersionPrinterTy func);
// PrintOptionValues - Print option values.
// With -print-options print the difference between option values and defaults.
diff --git a/llvm/include/llvm/Support/TargetRegistry.h b/llvm/include/llvm/Support/TargetRegistry.h
index 4d4d9c8af12..9e9a91b0abd 100644
--- a/llvm/include/llvm/Support/TargetRegistry.h
+++ b/llvm/include/llvm/Support/TargetRegistry.h
@@ -598,7 +598,7 @@ struct TargetRegistry {
/// printRegisteredTargetsForVersion - Print the registered targets
/// appropriately for inclusion in a tool's version output.
- static void printRegisteredTargetsForVersion();
+ static void printRegisteredTargetsForVersion(raw_ostream &OS);
/// @name Registry Access
/// @{
OpenPOWER on IntegriCloud