From fffffff98dd9154b0f25fdc3c84d9574501fbae4 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Thu, 21 Dec 2023 17:28:08 +0100
Subject: [PATCH] COMP: clear out memory in argList (#3065)

- exit in constructor bypasses RAII
---
 src/OpenFOAM/global/argList/argList.C | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/OpenFOAM/global/argList/argList.C b/src/OpenFOAM/global/argList/argList.C
index a94437514a6..d5a4cc5953b 100644
--- a/src/OpenFOAM/global/argList/argList.C
+++ b/src/OpenFOAM/global/argList/argList.C
@@ -1082,6 +1082,9 @@ Foam::argList::argList
                         << " -help-full' for extended usage" << nl
                         << nl;
 
+                    args_.clear();
+                    options_.clearStorage();
+
                     UPstream::exit(1);  // works for serial and parallel
                 }
 
@@ -1242,6 +1245,9 @@ void Foam::argList::parse
 
         if (quickExit)
         {
+            args_.clear();
+            options_.clearStorage();
+
             std::exit(0);
         }
     }
@@ -1252,6 +1258,9 @@ void Foam::argList::parse
         foamVersion::printBuildInfo(Info.stdStream(), false);
         FatalError.write(Info, false);
 
+        args_.clear();
+        options_.clearStorage();
+
         UPstream::exit(1);  // works for serial and parallel
     }
 
-- 
GitLab