aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2023-11-29 09:19:02 +0100
committerJakub Jelinek <jakub@redhat.com>2023-11-29 09:19:02 +0100
commit77f0e4a02df15ef4e31b144e8e4bc1a0aa76c416 (patch)
tree317a19dcb87b0925e5328541fc4cea4dc34d70b4 /gcc
parent9582538cf07d83d7e80553827de8b0f91e4705d8 (diff)
downloadgcc-77f0e4a02df15ef4e31b144e8e4bc1a0aa76c416.zip
gcc-77f0e4a02df15ef4e31b144e8e4bc1a0aa76c416.tar.gz
gcc-77f0e4a02df15ef4e31b144e8e4bc1a0aa76c416.tar.bz2
c++: Fix a compile time memory leak in finish_static_assert
On Tue, Nov 28, 2023 at 11:31:48AM -0500, Jason Merrill wrote: > Jonathan pointed out elsewhere that this gets leaked if error return > prevents us from getting to the XDELETEVEC. As there is a single error return in which it can leak, I've just added a XDELETEVEC (buf); statement to that path rather than introducing some RAII solution. 2023-11-29 Jakub Jelinek <jakub@redhat.com> * semantics.cc (finish_static_assert): Free buf on error return.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/semantics.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc
index 3bf5864..d30a3f9 100644
--- a/gcc/cp/semantics.cc
+++ b/gcc/cp/semantics.cc
@@ -11582,6 +11582,7 @@ finish_static_assert (tree condition, tree message, location_t location,
error_at (location,
"%<static_assert%> message %<data()[%d]%> "
"must be a constant expression", i);
+ XDELETEVEC (buf);
return;
}
if (msg == NULL)