reduce the amount of 'C++ magic' this code depends on :)



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49489 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Parse/DeclSpec.h b/include/clang/Parse/DeclSpec.h
index b0efc18..4de4628 100644
--- a/include/clang/Parse/DeclSpec.h
+++ b/include/clang/Parse/DeclSpec.h
@@ -670,7 +670,7 @@
 struct FieldDeclarator {
   Declarator D;
   Action::ExprTy *BitfieldSize;
-  FieldDeclarator(DeclSpec &DS) : D(DS, Declarator::MemberContext) {
+  explicit FieldDeclarator(DeclSpec &DS) : D(DS, Declarator::MemberContext) {
     BitfieldSize = 0;
   }
 };
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp
index 1d41248..804fffb 100644
--- a/lib/Parse/ParseDecl.cpp
+++ b/lib/Parse/ParseDecl.cpp
@@ -677,7 +677,7 @@
   }
 
   // Read struct-declarators until we find the semicolon.
-  Fields.push_back(DS);
+  Fields.push_back(FieldDeclarator(DS));
   while (1) {
     FieldDeclarator &DeclaratorInfo = Fields.back();
     
@@ -708,7 +708,7 @@
     ConsumeToken();
     
     // Parse the next declarator.
-    Fields.push_back(DS);
+    Fields.push_back(FieldDeclarator(DS));
     
     // Attributes are only allowed on the second declarator.
     if (Tok.is(tok::kw___attribute))