Hi!
On Sat, Mar 01, 2025 at 02:25:01PM -0500, Lewis Hyatt wrote:
> FYI I think there is a typo in this fallback implementation for the
> not-HAVE_ATTRIBUTE_ALIAS case, first argument intended to be "size"
> rather than "s".
You're right.
It compiled with a warning:
../../gcc/ggc-common.cc: In function 'void*
ggc_internal_cleared_alloc_no_dtor(size_t, void (*)(void*), size_t, size_t)':
../../gcc/ggc-common.cc:154:44: warning: unused parameter 'size'
[-Wunused-parameter]
154 | ggc_internal_cleared_alloc_no_dtor (size_t size, void (*f)(void *),
| ~~~~~~~^~~~
and obviously didn't work right (always allocated 0-sized objects).
Fixed thusly, tested on x86_64-linux with HAVE_ATTRIBUTE_ALIAS manually
commented out in auto-host.h, committed to trunk as obvious.
Sorry.
2025-03-01 Jakub Jelinek <[email protected]>
PR jit/117047
* ggc-common.cc (ggc_internal_cleared_alloc_no_dtor): Pass size
rather than s as the first argument to ggc_internal_cleared_alloc.
--- gcc/ggc-common.cc.jj 2025-03-01 11:22:20.167525459 +0100
+++ gcc/ggc-common.cc 2025-03-01 20:44:40.237969829 +0100
@@ -154,7 +154,7 @@ void *
ggc_internal_cleared_alloc_no_dtor (size_t size, void (*f)(void *),
size_t s, size_t n MEM_STAT_DECL)
{
- return ggc_internal_cleared_alloc (s, f, s, n PASS_MEM_STAT);
+ return ggc_internal_cleared_alloc (size, f, s, n PASS_MEM_STAT);
}
#endif
Jakub