Make GetDeclObject() return a pointer.

PiperOrigin-RevId: 458419520
diff --git a/lifetime_analysis/lifetime_analysis.cc b/lifetime_analysis/lifetime_analysis.cc
index b5b7dbe..d572c0f 100644
--- a/lifetime_analysis/lifetime_analysis.cc
+++ b/lifetime_analysis/lifetime_analysis.cc
@@ -493,7 +493,7 @@
     return std::nullopt;
   }
 
-  Object object = object_repository_.GetDeclObject(decl);
+  const Object* object = object_repository_.GetDeclObject(decl);
 
   assert(decl_ref->isGLValue() || decl_ref->getType()->isBuiltinType());
 
@@ -630,14 +630,15 @@
     const clang::DeclStmt* decl_stmt) {
   for (const clang::Decl* decl : decl_stmt->decls()) {
     if (const auto* var_decl = clang::dyn_cast<clang::VarDecl>(decl)) {
-      Object var_object = object_repository_.GetDeclObject(var_decl);
+      const Object* var_object = object_repository_.GetDeclObject(var_decl);
 
       // Don't need to record initializers because initialization has already
       // happened in VisitCXXConstructExpr(), VisitInitListExpr(), or
       // VisitCallExpr().
       if (var_decl->hasInit() && !var_decl->getType()->isRecordType()) {
-        TransferInitializer(var_object, var_decl->getType(), object_repository_,
-                            var_decl->getInit(), points_to_map_);
+        TransferInitializer(*var_object, var_decl->getType(),
+                            object_repository_, var_decl->getInit(),
+                            points_to_map_);
       }
     }
   }
diff --git a/lifetime_analysis/object_repository.cc b/lifetime_analysis/object_repository.cc
index 7da5f92..80221d6 100644
--- a/lifetime_analysis/object_repository.cc
+++ b/lifetime_analysis/object_repository.cc
@@ -525,7 +525,8 @@
   return new (object_allocator_.Allocate()) Object(func);
 }
 
-Object ObjectRepository::GetDeclObject(const clang::ValueDecl* decl) const {
+const Object* ObjectRepository::GetDeclObject(
+    const clang::ValueDecl* decl) const {
   auto iter = object_repository_.find(decl);
   if (iter == object_repository_.end()) {
     llvm::errs() << "Didn't find object for Decl:\n";
@@ -533,7 +534,7 @@
     llvm::errs() << "\n" << DebugString();
     llvm::report_fatal_error("Didn't find object for Decl");
   }
-  return *iter->second;
+  return iter->second;
 }
 
 Object ObjectRepository::GetTemporaryObject(
diff --git a/lifetime_analysis/object_repository.h b/lifetime_analysis/object_repository.h
index 285dca4..ec3d7bf 100644
--- a/lifetime_analysis/object_repository.h
+++ b/lifetime_analysis/object_repository.h
@@ -97,7 +97,7 @@
   const Object* CreateObjectFromFunctionDecl(const clang::FunctionDecl& func);
 
   // Returns the object associated with a variable or function.
-  Object GetDeclObject(const clang::ValueDecl* decl) const;
+  const Object* GetDeclObject(const clang::ValueDecl* decl) const;
 
   // Returns the object associated with a materialize temporary expression.
   Object GetTemporaryObject(const clang::MaterializeTemporaryExpr* expr) const;