refactor C++ bitfield checking a bit (haha)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66213 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index f9c1691..953e39f 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -3152,12 +3152,14 @@
 bool Sema::VerifyBitField(SourceLocation FieldLoc, IdentifierInfo *FieldName, 
                           QualType FieldTy, const Expr *BitWidth) {
   // C99 6.7.2.1p4 - verify the field type.
-
+  // C++ 9.6p3: A bit-field shall have integral or enumeration type.
   if (!FieldTy->isIntegralType()) {
     // Handle incomplete types with specific error.
     if (FieldTy->isIncompleteType())
-      return Diag(FieldLoc, diag::err_field_incomplete) << FieldTy;
-    return Diag(FieldLoc, diag::err_not_integral_type_bitfield) << FieldName;
+      return Diag(FieldLoc, diag::err_field_incomplete)
+        << FieldTy << BitWidth->getSourceRange();
+    return Diag(FieldLoc, diag::err_not_integral_type_bitfield)
+      << FieldName << BitWidth->getSourceRange();
   }
   
   llvm::APSInt Value;