Revert "[NFC] Refactor representation of materialized temporaries"

This reverts commit 08ea1ee2db5f9d6460fef1d79d0d1d1a5eb78982.
It broke ./ClangdTests/FindExplicitReferencesTest.All
on the bots, see comments on https://reviews.llvm.org/D69360
diff --git a/clang/lib/AST/ExprCXX.cpp b/clang/lib/AST/ExprCXX.cpp
index 0fb132d..904928b 100644
--- a/clang/lib/AST/ExprCXX.cpp
+++ b/clang/lib/AST/ExprCXX.cpp
@@ -1653,23 +1653,7 @@
       FunctionParmPackExpr(QualType(), nullptr, SourceLocation(), 0, nullptr);
 }
 
-MaterializeTemporaryExpr::MaterializeTemporaryExpr(
-    QualType T, Expr *Temporary, bool BoundToLvalueReference,
-    LifetimeExtendedTemporaryDecl *MTD)
-    : Expr(MaterializeTemporaryExprClass, T,
-           BoundToLvalueReference ? VK_LValue : VK_XValue, OK_Ordinary,
-           Temporary->isTypeDependent(), Temporary->isValueDependent(),
-           Temporary->isInstantiationDependent(),
-           Temporary->containsUnexpandedParameterPack()) {
-  if (MTD) {
-    State = MTD;
-    MTD->ExprWithTemporary = Temporary;
-    return;
-  }
-  State = Temporary;
-}
-
-void MaterializeTemporaryExpr::setExtendingDecl(ValueDecl *ExtendedBy,
+void MaterializeTemporaryExpr::setExtendingDecl(const ValueDecl *ExtendedBy,
                                                 unsigned ManglingNumber) {
   // We only need extra state if we have to remember more than just the Stmt.
   if (!ExtendedBy)
@@ -1677,11 +1661,13 @@
 
   // We may need to allocate extra storage for the mangling number and the
   // extended-by ValueDecl.
-  if (!State.is<LifetimeExtendedTemporaryDecl *>())
-    State = LifetimeExtendedTemporaryDecl::Create(
-        cast<Expr>(State.get<Stmt *>()), ExtendedBy, ManglingNumber);
+  if (!State.is<ExtraState *>()) {
+    auto *ES = new (ExtendedBy->getASTContext()) ExtraState;
+    ES->Temporary = State.get<Stmt *>();
+    State = ES;
+  }
 
-  auto ES = State.get<LifetimeExtendedTemporaryDecl *>();
+  auto ES = State.get<ExtraState *>();
   ES->ExtendingDecl = ExtendedBy;
   ES->ManglingNumber = ManglingNumber;
 }