public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] testsuite: Fix leaks in tree-dynamic-object-size-0.c
@ 2022-12-05 14:28 Siddhesh Poyarekar
  2022-12-05 16:38 ` Jeff Law
  0 siblings, 1 reply; 3+ messages in thread
From: Siddhesh Poyarekar @ 2022-12-05 14:28 UTC (permalink / raw)
  To: gcc-patches

In commit e5cfb9cac1d7aba9a8ea73bfe7922cfaff9d61f3 I introduced tests
for strdup and strndup with leaks.  Fix those leaks.

gcc/testsuite/ChangeLog:

	* gcc.dg/builtin-dynamic-object-size-0.c (test_strdup,
	test_strndup, test_strdup_min, test_strndup_min): Free RES
	before returning from function.
---
 .../gcc.dg/builtin-dynamic-object-size-0.c    | 20 +++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c b/gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
index 4f1606a486b..f9047a037d9 100644
--- a/gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
+++ b/gcc/testsuite/gcc.dg/builtin-dynamic-object-size-0.c
@@ -486,7 +486,10 @@ __attribute__ ((noinline))
 test_strdup (const char *in)
 {
   char *res = __builtin_strdup (in);
-  return __builtin_dynamic_object_size (res, 0);
+  size_t sz = __builtin_dynamic_object_size (res, 0);
+
+  __builtin_free (res);
+  return sz;
 }
 
 size_t
@@ -494,7 +497,10 @@ __attribute__ ((noinline))
 test_strndup (const char *in, size_t bound)
 {
   char *res = __builtin_strndup (in, bound);
-  return __builtin_dynamic_object_size (res, 0);
+  size_t sz = __builtin_dynamic_object_size (res, 0);
+
+  __builtin_free (res);
+  return sz;
 }
 
 size_t
@@ -502,7 +508,10 @@ __attribute__ ((noinline))
 test_strdup_min (const char *in)
 {
   char *res = __builtin_strdup (in);
-  return __builtin_dynamic_object_size (res, 2);
+  size_t sz = __builtin_dynamic_object_size (res, 2);
+
+  __builtin_free (res);
+  return sz;
 }
 
 size_t
@@ -510,7 +519,10 @@ __attribute__ ((noinline))
 test_strndup_min (const char *in, size_t bound)
 {
   char *res = __builtin_strndup (in, bound);
-  return __builtin_dynamic_object_size (res, 2);
+  size_t sz = __builtin_dynamic_object_size (res, 2);
+
+  __builtin_free (res);
+  return sz;
 }
 
 /* Other tests.  */
-- 
2.38.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] testsuite: Fix leaks in tree-dynamic-object-size-0.c
  2022-12-05 14:28 [PATCH] testsuite: Fix leaks in tree-dynamic-object-size-0.c Siddhesh Poyarekar
@ 2022-12-05 16:38 ` Jeff Law
  2022-12-05 16:58   ` Siddhesh Poyarekar
  0 siblings, 1 reply; 3+ messages in thread
From: Jeff Law @ 2022-12-05 16:38 UTC (permalink / raw)
  To: Siddhesh Poyarekar, gcc-patches



On 12/5/22 07:28, Siddhesh Poyarekar wrote:
> In commit e5cfb9cac1d7aba9a8ea73bfe7922cfaff9d61f3 I introduced tests
> for strdup and strndup with leaks.  Fix those leaks.
> 
> gcc/testsuite/ChangeLog:
> 
> 	* gcc.dg/builtin-dynamic-object-size-0.c (test_strdup,
> 	test_strndup, test_strdup_min, test_strndup_min): Free RES
> 	before returning from function.
We don't generally worry about these kinds of issues in the testsuite. 
My only worry would be compromising the test.  By adding the free calls 
the compiler might match up the allocation and release and potentially 
turn it into an alloca.  I don't think we're likely to do that in this 
case, but it's worth keeping in mind.

So OK as long as you've verified the test still does what it's supposed 
to do.

jeff

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] testsuite: Fix leaks in tree-dynamic-object-size-0.c
  2022-12-05 16:38 ` Jeff Law
@ 2022-12-05 16:58   ` Siddhesh Poyarekar
  0 siblings, 0 replies; 3+ messages in thread
From: Siddhesh Poyarekar @ 2022-12-05 16:58 UTC (permalink / raw)
  To: Jeff Law, gcc-patches

On 2022-12-05 11:38, Jeff Law wrote:
> 
> 
> On 12/5/22 07:28, Siddhesh Poyarekar wrote:
>> In commit e5cfb9cac1d7aba9a8ea73bfe7922cfaff9d61f3 I introduced tests
>> for strdup and strndup with leaks.  Fix those leaks.
>>
>> gcc/testsuite/ChangeLog:
>>
>>     * gcc.dg/builtin-dynamic-object-size-0.c (test_strdup,
>>     test_strndup, test_strdup_min, test_strndup_min): Free RES
>>     before returning from function.
> We don't generally worry about these kinds of issues in the testsuite. 
> My only worry would be compromising the test.  By adding the free calls 
> the compiler might match up the allocation and release and potentially 
> turn it into an alloca.  I don't think we're likely to do that in this 
> case, but it's worth keeping in mind.

Ack, thanks, I'll keep that in mind.

> So OK as long as you've verified the test still does what it's supposed 
> to do.

I have verified that the test still works correctly and the optimizer 
hasn't done anything funny with the calls, i.e. the str*dup calls and 
free calls are as is.

Thanks,
Sid

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-12-05 16:58 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-05 14:28 [PATCH] testsuite: Fix leaks in tree-dynamic-object-size-0.c Siddhesh Poyarekar
2022-12-05 16:38 ` Jeff Law
2022-12-05 16:58   ` Siddhesh Poyarekar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).