Menu

#3989 function attributes are not handled in type casting

open
nobody
None
Front-end
5
2026-05-16
2026-05-16
No

From bug-2663.c

I tried to make the test work in the non stack-auto configuration by using the __reentrant keyword.

If i define a new type and cast to it everything works fine as expected.

static int cmp_eq (long arg1, long arg2) __reentrant

...

typedef int (*funcp)(long, long) __reentrant ;

...

ASSERT(((funcp)(string_binop1[0].op_func))(1, 1) == 0);

However, there is no place I could put the __reentrant keyword to make the explicit cast compile.

ASSERT(((int (*)(long, long))(string_binop1[0].op_func))(1, 1) == 0);

i.e.

ASSERT(((int (*)(long, long) __reentrant)(string_binop1[0].op_func))(1, 1) == 0);

produces a syntax error.

Discussion


Log in to post a comment.

MongoDB Logo MongoDB