diff --git a/llvm/tools/gccas/gccas.cpp b/llvm/tools/gccas/gccas.cpp
index 1192d6a..896b79a 100644
--- a/llvm/tools/gccas/gccas.cpp
+++ b/llvm/tools/gccas/gccas.cpp
@@ -1,10 +1,10 @@
 //===-- gccas.cpp - The "optimizing assembler" used by the GCC frontend ---===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
 // This file was developed by the LLVM research group and is distributed under
 // the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
+//
 //===----------------------------------------------------------------------===//
 //
 // This utility is designed to be used by the GCC frontend for creating bytecode
@@ -33,11 +33,11 @@
   cl::opt<std::string>
   InputFilename(cl::Positional,cl::desc("<input llvm assembly>"),cl::init("-"));
 
-  cl::opt<std::string> 
+  cl::opt<std::string>
   OutputFilename("o", cl::desc("Override output filename"),
                  cl::value_desc("filename"));
 
-  cl::opt<bool>   
+  cl::opt<bool>
   Verify("verify", cl::desc("Verify each pass result"));
 
   cl::opt<bool>
@@ -51,7 +51,7 @@
   StripDebug("strip-debug",
              cl::desc("Strip debugger symbol info from translation unit"));
 
-  cl::opt<bool> 
+  cl::opt<bool>
   NoCompress("disable-compression", cl::init(false),
              cl::desc("Don't compress the generated bytecode"));
 
@@ -63,7 +63,7 @@
 static inline void addPass(PassManager &PM, Pass *P) {
   // Add the pass to the pass manager...
   PM.add(P);
-  
+
   // If we are verifying all of the intermediate steps, add the verifier...
   if (Verify) PM.add(createVerifierPass());
 }
@@ -128,7 +128,7 @@
 
 int main(int argc, char **argv) {
   try {
-    cl::ParseCommandLineOptions(argc, argv, 
+    cl::ParseCommandLineOptions(argc, argv,
                                 " llvm .s -> .o assembler for GCC\n");
     sys::PrintStackTraceOnErrorSignal();
 
@@ -175,7 +175,7 @@
       sys::RemoveFileOnSignal(sys::Path(OutputFilename));
     }
 
-    
+
     if (!Out->good()) {
       std::cerr << argv[0] << ": error opening " << OutputFilename << "!\n";
       return 1;
