diff --git a/tools/bugpoint/bugpoint.cpp b/tools/bugpoint/bugpoint.cpp
index c345143..2978988 100644
--- a/tools/bugpoint/bugpoint.cpp
+++ b/tools/bugpoint/bugpoint.cpp
@@ -66,7 +66,7 @@
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
   cl::ParseCommandLineOptions(argc, argv,
-                              " LLVM automatic testcase reducer. See\nhttp://"
+                              "LLVM automatic testcase reducer. See\nhttp://"
                               "llvm.org/docs/CommandGuide/bugpoint.html"
                               " for more information.\n");
   sys::PrintStackTraceOnErrorSignal();
diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp
index b53f59b..7b55c80 100644
--- a/tools/llc/llc.cpp
+++ b/tools/llc/llc.cpp
@@ -172,7 +172,7 @@
 //
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm system compiler\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm system compiler\n");
   sys::PrintStackTraceOnErrorSignal();
 
   // Load the module to be compiled...
diff --git a/tools/lli/lli.cpp b/tools/lli/lli.cpp
index 3ce2807..033614e 100644
--- a/tools/lli/lli.cpp
+++ b/tools/lli/lli.cpp
@@ -67,7 +67,7 @@
 int main(int argc, char **argv, char * const *envp) {
   atexit(do_shutdown);  // Call llvm_shutdown() on exit.
   cl::ParseCommandLineOptions(argc, argv,
-                              " llvm interpreter & dynamic compiler\n");
+                              "llvm interpreter & dynamic compiler\n");
   sys::PrintStackTraceOnErrorSignal();
 
   // If the user doesn't want core files, disable them.
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index 1d3ede6..1620bf4 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -690,7 +690,7 @@
   // Have the command line options parsed and handle things
   // like --help and --version.
   cl::ParseCommandLineOptions(argc, argv,
-    " LLVM Archiver (llvm-ar)\n\n"
+    "LLVM Archiver (llvm-ar)\n\n"
     "  This program archives bitcode files into single libraries\n"
   );
 
diff --git a/tools/llvm-as/llvm-as.cpp b/tools/llvm-as/llvm-as.cpp
index 41b6846..763038a 100644
--- a/tools/llvm-as/llvm-as.cpp
+++ b/tools/llvm-as/llvm-as.cpp
@@ -48,7 +48,7 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm .ll -> .bc assembler\n");
   sys::PrintStackTraceOnErrorSignal();
 
   int exitCode = 0;
diff --git a/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp b/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
index 126a2ed..b596fe3 100644
--- a/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
+++ b/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
@@ -496,7 +496,7 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm-bcanalyzer file analyzer\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm-bcanalyzer file analyzer\n");
   
   sys::PrintStackTraceOnErrorSignal();
   
diff --git a/tools/llvm-db/llvm-db.cpp b/tools/llvm-db/llvm-db.cpp
index 57994bf..90b577c 100644
--- a/tools/llvm-db/llvm-db.cpp
+++ b/tools/llvm-db/llvm-db.cpp
@@ -53,7 +53,7 @@
   std::cout << "NOTE: llvm-db is known useless right now.\n";
   try {
     cl::ParseCommandLineOptions(argc, argv,
-                                " llvm source-level debugger\n");
+                                "llvm source-level debugger\n");
     sys::PrintStackTraceOnErrorSignal();
 
     if (!Quiet)
diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp
index 0c87f8c..2766690 100644
--- a/tools/llvm-dis/llvm-dis.cpp
+++ b/tools/llvm-dis/llvm-dis.cpp
@@ -46,7 +46,7 @@
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
   try {
-    cl::ParseCommandLineOptions(argc, argv, " llvm .bc -> .ll disassembler\n");
+    cl::ParseCommandLineOptions(argc, argv, "llvm .bc -> .ll disassembler\n");
     sys::PrintStackTraceOnErrorSignal();
 
     std::ostream *Out = &std::cout;  // Default to printing to stdout.
diff --git a/tools/llvm-extract/llvm-extract.cpp b/tools/llvm-extract/llvm-extract.cpp
index 4a7befb..b7028bf 100644
--- a/tools/llvm-extract/llvm-extract.cpp
+++ b/tools/llvm-extract/llvm-extract.cpp
@@ -52,7 +52,7 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm extractor\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm extractor\n");
   sys::PrintStackTraceOnErrorSignal();
 
   std::auto_ptr<Module> M;
diff --git a/tools/llvm-ld/llvm-ld.cpp b/tools/llvm-ld/llvm-ld.cpp
index 72c4b1e..bb3f625 100644
--- a/tools/llvm-ld/llvm-ld.cpp
+++ b/tools/llvm-ld/llvm-ld.cpp
@@ -469,7 +469,7 @@
     progname = sys::Path(argv[0]).getBasename();
 
     // Parse the command line options
-    cl::ParseCommandLineOptions(argc, argv, " llvm linker\n");
+    cl::ParseCommandLineOptions(argc, argv, "llvm linker\n");
     sys::PrintStackTraceOnErrorSignal();
 
     // Construct a Linker (now that Verbose is set)
diff --git a/tools/llvm-link/llvm-link.cpp b/tools/llvm-link/llvm-link.cpp
index 5db13aa..a5def95 100644
--- a/tools/llvm-link/llvm-link.cpp
+++ b/tools/llvm-link/llvm-link.cpp
@@ -79,7 +79,7 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm linker\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm linker\n");
   sys::PrintStackTraceOnErrorSignal();
   assert(InputFilenames.size() > 0 && "OneOrMore is not working");
 
diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp
index bf98653..a0b92cc 100644
--- a/tools/llvm-nm/llvm-nm.cpp
+++ b/tools/llvm-nm/llvm-nm.cpp
@@ -165,7 +165,7 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm symbol table dumper\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm symbol table dumper\n");
   sys::PrintStackTraceOnErrorSignal();
 
   ToolName = argv[0];
diff --git a/tools/llvm-prof/llvm-prof.cpp b/tools/llvm-prof/llvm-prof.cpp
index dcb9d1f..f4dd119 100644
--- a/tools/llvm-prof/llvm-prof.cpp
+++ b/tools/llvm-prof/llvm-prof.cpp
@@ -112,7 +112,7 @@
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
   try {
-    cl::ParseCommandLineOptions(argc, argv, " llvm profile dump decoder\n");
+    cl::ParseCommandLineOptions(argc, argv, "llvm profile dump decoder\n");
     sys::PrintStackTraceOnErrorSignal();
 
     // Read in the bitcode file...
diff --git a/tools/llvm-ranlib/llvm-ranlib.cpp b/tools/llvm-ranlib/llvm-ranlib.cpp
index 9085b7e..b89b713 100644
--- a/tools/llvm-ranlib/llvm-ranlib.cpp
+++ b/tools/llvm-ranlib/llvm-ranlib.cpp
@@ -47,7 +47,7 @@
   // Have the command line options parsed and handle things
   // like --help and --version.
   cl::ParseCommandLineOptions(argc, argv,
-    " LLVM Archive Index Generator (llvm-ranlib)\n\n"
+    "LLVM Archive Index Generator (llvm-ranlib)\n\n"
     "  This program adds or updates an index of bitcode symbols\n"
     "  to an LLVM archive file."
   );
diff --git a/tools/llvm-upgrade/llvm-upgrade.cpp b/tools/llvm-upgrade/llvm-upgrade.cpp
index 9425e3e..f7af675 100644
--- a/tools/llvm-upgrade/llvm-upgrade.cpp
+++ b/tools/llvm-upgrade/llvm-upgrade.cpp
@@ -51,7 +51,7 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .bc assembler\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm .ll -> .bc assembler\n");
   sys::PrintStackTraceOnErrorSignal();
 
   int exitCode = 0;
diff --git a/tools/llvm2cpp/llvm2cpp.cpp b/tools/llvm2cpp/llvm2cpp.cpp
index 2db7543..93eb233 100644
--- a/tools/llvm2cpp/llvm2cpp.cpp
+++ b/tools/llvm2cpp/llvm2cpp.cpp
@@ -43,7 +43,7 @@
 
 int main(int argc, char **argv) {
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
-  cl::ParseCommandLineOptions(argc, argv, " llvm .ll -> .cpp assembler\n");
+  cl::ParseCommandLineOptions(argc, argv, "llvm .ll -> .cpp assembler\n");
   sys::PrintStackTraceOnErrorSignal();
 
   int exitCode = 0;
diff --git a/tools/llvmc/llvmc.cpp b/tools/llvmc/llvmc.cpp
index c257a3e..dc78397 100644
--- a/tools/llvmc/llvmc.cpp
+++ b/tools/llvmc/llvmc.cpp
@@ -257,7 +257,7 @@
 
     // Parse the command line options
     cl::ParseCommandLineOptions(argc, argv,
-      " LLVM Compiler Driver (llvmc)\n\n"
+      "LLVM Compiler Driver (llvmc)\n\n"
       "  This program provides easy invocation of the LLVM tool set\n"
       "  and other compiler tools.\n"
     );
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 9d71459..3526e62 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -308,7 +308,7 @@
   llvm_shutdown_obj X;  // Call llvm_shutdown() on exit.
   try {
     cl::ParseCommandLineOptions(argc, argv,
-      " llvm .bc -> .bc modular optimizer and analysis printer \n");
+      "llvm .bc -> .bc modular optimizer and analysis printer\n");
     sys::PrintStackTraceOnErrorSignal();
 
     // Allocate a full target machine description only if necessary.
