From 0b9391ff3b27dfb0af933903cfda41b0d775505d Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Tue, 18 Jun 2024 17:56:45 +0100
Subject: [PATCH] COMP: avoid remove dangling reference (finiteArea)

---
 .../leastSquaresFaGrad/leastSquaresFaGrad.C         | 13 +++++++------
 .../edgeInterpolationScheme.C                       |  4 ++--
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C
index 118c60e9f2c..963426c6fee 100644
--- a/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C
+++ b/src/finiteArea/finiteArea/gradSchemes/leastSquaresFaGrad/leastSquaresFaGrad.C
@@ -105,12 +105,13 @@ leastSquaresFaGrad<Type>::calcGrad
     {
         const faPatchField<Type>& bf = vsf.boundaryField()[patchi];
 
-        const Field<Type>& vsfp =
-        (
-            bf.coupled()
-          ? bf.patchNeighbourField().cref()
-          : const_cast<faPatchField<Type>&>(bf)
-        );
+        tmp<Field<Type>> tvsfp(bf);
+
+        if (bf.coupled())
+        {
+            tvsfp = bf.patchNeighbourField();
+        }
+        const auto& vsfp = tvsfp();
 
         const faePatchVectorField& ownLsp = ownLs.boundaryField()[patchi];
         const labelUList& edgeFaces =
diff --git a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C
index 5d4ead9d021..d84b52730fb 100644
--- a/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C
+++ b/src/finiteArea/interpolation/edgeInterpolation/edgeInterpolationScheme/edgeInterpolationScheme.C
@@ -209,8 +209,8 @@ Foam::edgeInterpolationScheme<Type>::interpolate
             label size = vf.boundaryField()[pi].patch().size();
             label start = vf.boundaryField()[pi].patch().start();
 
-            Field<Type> pOwnVf = vf.boundaryField()[pi].patchInternalField();
-            Field<Type> pNgbVf = vf.boundaryField()[pi].patchNeighbourField();
+            Field<Type> pOwnVf(vf.boundaryField()[pi].patchInternalField());
+            Field<Type> pNgbVf(vf.boundaryField()[pi].patchNeighbourField());
 
             Field<Type>& pSf = sf.boundaryFieldRef()[pi];
 
-- 
GitLab