[PATCH v2] c: fix checking ICE related to transparent unions and atomic [PR123309]
Joseph Myers
josmyers@redhat.com
Mon Jan 12 21:16:20 GMT 2026
On Sat, 10 Jan 2026, Martin Uecker wrote:
> c: fix checking ICE related to transparent unions and atomic [PR123309]
>
> When matching function arguments in composite_type_internal and one
> type comes from a transparent union, it is possible to end up with
> atomic and non-atomic types because this case is not handled correctly.
> The type matching logic is rewritten in a cleaner way to use helper
> functions and to not walk the argument lists three times. With this
> change, a checking assertion can be added to test for matching qualifiers
> for pointers. (In general, this assumption is still violated for
> function return types.)
>
> PR c/123309
>
> gcc/c/ChangeLog:
> * c-typeck.cc (transparent_union_replacement): New function.
> (composite_type_internal): Rewrite logic.
> (type_lists_compatible_p): Remove dead code for NULL arguments.
>
> gcc/testsuite/ChangeLog:
> * pr123309.c: New test.
> * union-composite-type.c: New test.
OK.
--
Joseph S. Myers
josmyers@redhat.com
More information about the Gcc-patches
mailing list