diff --git a/include/clang/AST/Expr.h b/include/clang/AST/Expr.h
index 363dca7..5f2d144 100644
--- a/include/clang/AST/Expr.h
+++ b/include/clang/AST/Expr.h
@@ -724,12 +724,6 @@
   }
 
   DeclRefExpr(NestedNameSpecifierLoc QualifierLoc,
-              ValueDecl *D, SourceLocation NameLoc,
-              NamedDecl *FoundD,
-              const TemplateArgumentListInfo *TemplateArgs,
-              QualType T, ExprValueKind VK);
-
-  DeclRefExpr(NestedNameSpecifierLoc QualifierLoc,
               ValueDecl *D, const DeclarationNameInfo &NameInfo,
               NamedDecl *FoundD,
               const TemplateArgumentListInfo *TemplateArgs,
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index bba35ef..6499f32 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -275,26 +275,6 @@
 }
 
 DeclRefExpr::DeclRefExpr(NestedNameSpecifierLoc QualifierLoc,
-                         ValueDecl *D, SourceLocation NameLoc,
-                         NamedDecl *FoundD,
-                         const TemplateArgumentListInfo *TemplateArgs,
-                         QualType T, ExprValueKind VK)
-  : Expr(DeclRefExprClass, T, VK, OK_Ordinary, false, false, false),
-    D(D), Loc(NameLoc) {
-  DeclRefExprBits.HasQualifier = QualifierLoc ? 1 : 0;
-  if (QualifierLoc)
-    getInternalQualifierLoc() =  QualifierLoc;
-  DeclRefExprBits.HasFoundDecl = FoundD ? 1 : 0;
-  if (FoundD)
-    getInternalFoundDecl() = FoundD;
-  DeclRefExprBits.HasExplicitTemplateArgs = TemplateArgs ? 1 : 0;
-  if (TemplateArgs)
-    getExplicitTemplateArgs().initializeFrom(*TemplateArgs);
-
-  computeDependence();
-}
-
-DeclRefExpr::DeclRefExpr(NestedNameSpecifierLoc QualifierLoc,
                          ValueDecl *D, const DeclarationNameInfo &NameInfo,
                          NamedDecl *FoundD,
                          const TemplateArgumentListInfo *TemplateArgs,
