git: 54a2c5978f51 - main - fts: Fix GCC compile error
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 29 Apr 2025 15:33:16 UTC
The branch main has been updated by olce:
URL: https://cgit.FreeBSD.org/src/commit/?id=54a2c5978f512654df6954ce571ce06e445c7aec
commit 54a2c5978f512654df6954ce571ce06e445c7aec
Author: Olivier Certner <olce@FreeBSD.org>
AuthorDate: 2025-04-29 11:19:58 +0000
Commit: Olivier Certner <olce@FreeBSD.org>
CommitDate: 2025-04-29 15:32:00 +0000
fts: Fix GCC compile error
GCC does not support the blocks extension, contrary to clang with which
it is automatically enabled by our infrastructure (see
'lib/libc/gen/Makefile.inc') when compiling 'fts.c'. The alternate code
(blocks extension not supported/enabled) tried to dereference a 'void *'
pointer (field 'fts_compar_b' of 'FTS') to access field 'isa' of the
block mocked by 'block_abi.h'. Fix this by casting the pointer to the
block type.
Reviewed by: jhb, des
Fixes: f0ac5e919f3f ("fts: Add blocks support.")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D50068
---
lib/libc/gen/fts.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c
index 1b5c38ed58bb..d440bc24eeca 100644
--- a/lib/libc/gen/fts.c
+++ b/lib/libc/gen/fts.c
@@ -352,7 +352,8 @@ fts_close(FTS *sp)
#ifdef __BLOCKS__
Block_release(sp->fts_compar_b);
#else
- if (sp->fts_compar_b->isa != &_NSConcreteGlobalBlock)
+ if (((fts_block)(sp->fts_compar_b))->isa !=
+ &_NSConcreteGlobalBlock)
_Block_release(sp->fts_compar_b);
#endif /* __BLOCKS__ */
}