diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 87e1e23..40a7914 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -144,6 +144,11 @@ InputArgList *Driver::ParseArgStrings(ArrayRef<const char *> ArgList) {
     }
   }
 
+  for (arg_iterator it = Args->filtered_begin(options::OPT_UNKNOWN),
+         ie = Args->filtered_end(); it != ie; ++it) {
+    Diags.Report(diag::err_drv_unknown_argument) << (*it) ->getAsString(*Args);
+  }
+
   return Args;
 }
 
diff --git a/test/Driver/no-objc-default-synthesize-properties.m b/test/Driver/no-objc-default-synthesize-properties.m
deleted file mode 100644
index e380514..0000000
--- a/test/Driver/no-objc-default-synthesize-properties.m
+++ /dev/null
@@ -1,10 +0,0 @@
-// RUN: %clang  -fsyntax-only -fno-objc-default-synthesize-properties -fobjc-default-synthesize-properties %s 2>&1 | FileCheck %s
-
-@interface I
-@property int P;
-@end
-
-@implementation I
-@end
-// CHECK: warning: argument unused during compilation: '-fno-objc-default-synthesize-properties'
-// CHECK: warning: argument unused during compilation: '-fobjc-default-synthesize-properties'
diff --git a/test/Driver/unknown-arg.c b/test/Driver/unknown-arg.c
index 0fab8a5..cd55650 100644
--- a/test/Driver/unknown-arg.c
+++ b/test/Driver/unknown-arg.c
@@ -1,6 +1,7 @@
-// RUN: not %clang_cc1 %s -cake-is-lie -%0 -%d 2> %t.log
-// RUN: FileCheck %s -input-file=%t.log
+// RUN: not %clang_cc1 %s -cake-is-lie -%0 -%d -HHHH 2>&1 | \
+// RUN: FileCheck %s
 
-// CHECK: unknown argument
-// CHECK: unknown argument
-// CHECK: unknown argument
+// CHECK: unknown argument: '-cake-is-lie'
+// CHECK: unknown argument: '-%0'
+// CHECK: unknown argument: '-%d'
+// CHECK: unknown argument: '-HHHH'
