decls should all have types

llvm-svn: 39187
diff --git a/clang/AST/SemaDecl.cpp b/clang/AST/SemaDecl.cpp
index 68429ea..22c69c9 100644
--- a/clang/AST/SemaDecl.cpp
+++ b/clang/AST/SemaDecl.cpp
@@ -60,8 +60,6 @@
 Action::DeclTy *
 Sema::ParseDeclarator(Scope *S, Declarator &D, ExprTy *Init, 
                       DeclTy *LastInGroup) {
-  TypeRef DeclaratorType = GetTypeForDeclarator(D, S);
-  
   IdentifierInfo *II = D.getIdentifier();
   Decl *PrevDecl = 0;
   
@@ -75,9 +73,9 @@
   if (D.getDeclSpec().StorageClassSpec == DeclSpec::SCS_typedef) {
     New = ParseTypedefDecl(S, D, PrevDecl);
   } else if (D.isFunctionDeclarator())
-    New = new FunctionDecl(II, PrevDecl);
+    New = new FunctionDecl(II, GetTypeForDeclarator(D, S), PrevDecl);
   else
-    New = new VarDecl(II, PrevDecl);
+    New = new VarDecl(II, GetTypeForDeclarator(D, S), PrevDecl);
   
   if (!New) return 0;
   
@@ -111,6 +109,7 @@
 Decl *Sema::ParseTypedefDecl(Scope *S, Declarator &D, Decl *PrevDecl) {
   assert(D.getIdentifier() && "Wrong callback for declspec withotu declarator");
   
-  return new TypedefDecl(D.getIdentifier(), PrevDecl);
+  TypeRef T = GetTypeForDeclarator(D, S);
+  return new TypedefDecl(D.getIdentifier(), T, PrevDecl);
 }