expr: Handle BITINT_TYPE in count_type_elements [PR112881]
The following testcaser ICEs during gimplification, because count_type_elements doesn't handle BITINT_TYPE. It should handle it like other integral types. 2023-12-07 Jakub Jelinek <jakub@redhat.com> PR middle-end/112881 * expr.cc (count_type_elements): Handle BITINT_TYPE like INTEGER_TYPE. * gcc.dg/bitint-50.c: New test.
This commit is contained in:
parent
f74939bd53
commit
e5489faf8e
2 changed files with 22 additions and 0 deletions
|
@ -7021,6 +7021,7 @@ count_type_elements (const_tree type, bool for_ctor_p)
|
|||
case REFERENCE_TYPE:
|
||||
case NULLPTR_TYPE:
|
||||
case OPAQUE_TYPE:
|
||||
case BITINT_TYPE:
|
||||
return 1;
|
||||
|
||||
case ERROR_MARK:
|
||||
|
|
21
gcc/testsuite/gcc.dg/bitint-50.c
Normal file
21
gcc/testsuite/gcc.dg/bitint-50.c
Normal file
|
@ -0,0 +1,21 @@
|
|||
/* PR middle-end/112881 */
|
||||
/* { dg-do compile { target bitint } } */
|
||||
/* { dg-options "-O2 -std=c23" } */
|
||||
|
||||
struct S { _BitInt(64) b; };
|
||||
|
||||
struct S
|
||||
foo (_BitInt(64) p)
|
||||
{
|
||||
return (struct S) { p };
|
||||
}
|
||||
|
||||
#if __BITINT_MAXWIDTH__ >= 3924
|
||||
struct T { _BitInt(3924) b; };
|
||||
|
||||
struct T
|
||||
bar (_BitInt(3924) p)
|
||||
{
|
||||
return (struct T) { p };
|
||||
}
|
||||
#endif
|
Loading…
Add table
Reference in a new issue