diff --git a/examples/HowToUseJIT/HowToUseJIT.cpp b/examples/HowToUseJIT/HowToUseJIT.cpp
index 3762dfe..31ea4f4 100644
--- a/examples/HowToUseJIT/HowToUseJIT.cpp
+++ b/examples/HowToUseJIT/HowToUseJIT.cpp
@@ -1,37 +1,37 @@
 //===-- examples/HowToUseJIT/HowToUseJIT.cpp - An example use of the JIT --===//
-// 
+//
 //                     The LLVM Compiler Infrastructure
 //
 // This file was developed by Valery A. Khamenya and is distributed under the
 // University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
+//
 //===----------------------------------------------------------------------===//
 //
 //  This small program provides an example of how to quickly build a small
-//  module with two functions and execute it with the JIT. 
-// 
-// Goal: 
+//  module with two functions and execute it with the JIT.
+//
+// Goal:
 //  The goal of this snippet is to create in the memory
 //  the LLVM module consisting of two functions as follow:
 //
 // int add1(int x) {
 //   return x+1;
 // }
-// 
+//
 // int foo() {
 //   return add1(10);
 // }
-// 
-// then compile the module via JIT, then execute the `foo' 
+//
+// then compile the module via JIT, then execute the `foo'
 // function and return result to a driver, i.e. to a "host program".
-// 
+//
 // Some remarks and questions:
-// 
+//
 // - could we invoke some code using noname functions too?
-//   e.g. evaluate "foo()+foo()" without fears to introduce 
+//   e.g. evaluate "foo()+foo()" without fears to introduce
 //   conflict of temporary function name with some real
 //   existing function name?
-// 
+//
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Module.h"
@@ -56,7 +56,7 @@
   // Add a basic block to the function. As before, it automatically inserts
   // because of the last argument.
   BasicBlock *BB = new BasicBlock("EntryBlock", Add1F);
-  
+
   // Get pointers to the constant `1'.
   Value *One = ConstantSInt::get(Type::IntTy, 1);
 
@@ -67,7 +67,7 @@
 
   // Create the add instruction, inserting it into the end of BB.
   Instruction *Add = BinaryOperator::createAdd(One, ArgX, "addresult", BB);
-  
+
   // Create the return instruction and add it to the basic block
   new ReturnInst(Add, BB);
 
@@ -88,7 +88,7 @@
   std::vector<Value*> Params;
   Params.push_back(Ten);
   CallInst * Add1CallRes = new CallInst(Add1F, Params, "add1", BB);
-    
+
   // Create the return instruction and add it to the basic block.
   new ReturnInst(Add1CallRes, BB);
 
