diff --git a/lib/Basic/ConvertUTF.c b/lib/Basic/ConvertUTF.c
index 4943047..e5dd3e6 100644
--- a/lib/Basic/ConvertUTF.c
+++ b/lib/Basic/ConvertUTF.c
@@ -354,7 +354,7 @@
 	    result = sourceExhausted; break;
 	}
 	/* Do this check whether lenient or strict */
-	if (! isLegalUTF8(source, extraBytesToRead+1)) {
+	if (!isLegalUTF8(source, extraBytesToRead+1)) {
 	    result = sourceIllegal;
 	    break;
 	}
@@ -469,7 +469,7 @@
 	    result = sourceExhausted; break;
 	}
 	/* Do this check whether lenient or strict */
-	if (! isLegalUTF8(source, extraBytesToRead+1)) {
+	if (!isLegalUTF8(source, extraBytesToRead+1)) {
 	    result = sourceIllegal;
 	    break;
 	}
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index 1db3b6e..bf862e7 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -631,7 +631,7 @@
   if (VD && (VD->isBlockVarDecl() || isa<ParmVarDecl>(VD) ||
         isa<ImplicitParamDecl>(VD))) {
     LValue LV;
-    bool GCable = VD->hasLocalStorage() && ! VD->hasAttr<BlocksAttr>();
+    bool GCable = VD->hasLocalStorage() && !VD->hasAttr<BlocksAttr>();
     if (VD->hasExternalStorage()) {
       LV = LValue::MakeAddr(CGM.GetAddrOfGlobalVar(VD),
                             E->getType().getCVRQualifiers(),
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp
index ebba576..20a8359 100644
--- a/lib/Parse/ParseExpr.cpp
+++ b/lib/Parse/ParseExpr.cpp
@@ -1333,7 +1333,7 @@
     }
     // Inform sema that we are starting a block.
     Actions.ActOnBlockArguments(ParamInfo, CurScope);
-  } else if (! Tok.is(tok::l_brace)) {
+  } else if (!Tok.is(tok::l_brace)) {
     ParseBlockId();
   } else {
     // Otherwise, pretend we saw (void).
