* [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).