Fix a few isObjectTypes that really need to be isIncompleteOrObject
types; add another use of RequireCompleteType.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67644 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp
index 03d8501..d2972ca 100644
--- a/lib/Sema/SemaExpr.cpp
+++ b/lib/Sema/SemaExpr.cpp
@@ -3752,9 +3752,7 @@
     // OK!
   } else if (const PointerType *PT = ResType->getAsPointerType()) {
     // C99 6.5.2.4p2, 6.5.6p2
-    if (PT->getPointeeType()->isObjectType()) {
-      // Pointer to object is ok!
-    } else if (PT->getPointeeType()->isVoidType()) {
+    if (PT->getPointeeType()->isVoidType()) {
       if (getLangOptions().CPlusPlus) {
         Diag(OpLoc, diag::err_typecheck_pointer_arith_void_type)
           << Op->getSourceRange();
@@ -3772,13 +3770,11 @@
 
       Diag(OpLoc, diag::ext_gnu_ptr_func_arith)
         << ResType << Op->getSourceRange();
-    } else {
-      RequireCompleteType(OpLoc, PT->getPointeeType(),
-                             diag::err_typecheck_arithmetic_incomplete_type,
-                             Op->getSourceRange(), SourceRange(),
-                             ResType);
+    } else if (RequireCompleteType(OpLoc, PT->getPointeeType(),
+                               diag::err_typecheck_arithmetic_incomplete_type,
+                                   Op->getSourceRange(), SourceRange(),
+                                   ResType))
       return QualType();
-    }
   } else if (ResType->isComplexType()) {
     // C99 does not support ++/-- on complex types, we allow as an extension.
     Diag(OpLoc, diag::ext_integer_increment_complex)