summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-10-04 10:54:28 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-10-04 21:53:59 +0900
commit40ceceb1a5b63029a4d1434d2d20dfa09cdb295f (patch)
tree9d2d38bc6c89cfa38bfd79c2e507ced5c611bcde /gc.c
parent6378825df5c7abc7ef45f257057ffd21dc9e63b5 (diff)
[Bug #19028] Suppress GCC 12 `-Wuse-after-free` false warning
GCC 12 introduced a new warning flag `-Wuse-after-free`, however it has a false positive at `realloc` when optimization is disabled, since the memory requested for reallocation is guaranteed to not be touched. This workaround is very unclear why the false warning is suppressed by a statement-expression GCC extension.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/6487
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index 0ba28ba67b..c1b06a76e7 100644
--- a/gc.c
+++ b/gc.c
@@ -12236,7 +12236,7 @@ objspace_xrealloc(rb_objspace_t *objspace, void *ptr, size_t new_size, size_t ol
#endif
old_size = objspace_malloc_size(objspace, ptr, old_size);
- TRY_WITH_GC(new_size, mem = realloc(ptr, new_size));
+ TRY_WITH_GC(new_size, mem = RB_GNUC_EXTENSION_BLOCK(realloc(ptr, new_size)));
new_size = objspace_malloc_size(objspace, mem, new_size);
#if CALC_EXACT_MALLOC_SIZE