-fgo-dump-spec: support _BitInt

gcc/
	PR go/111310
	* godump.cc (go_format_type): Handle BITINT_TYPE.

gcc/testsuite/
	PR go/111310
	* gcc.misc-tests/godump-1.c: Add _BitInt test cases.
This commit is contained in:
Ian Lance Taylor 2023-09-06 15:09:31 -07:00
parent 6de5f5a4fe
commit e4775af423
2 changed files with 30 additions and 0 deletions

View file

@ -760,6 +760,25 @@ go_format_type (class godump_container *container, tree type,
}
break;
case BITINT_TYPE:
{
const char *s;
char buf[100];
s = go_get_uinttype_for_precision (TYPE_PRECISION (type),
TYPE_UNSIGNED (type));
if (s == NULL)
{
snprintf (buf, sizeof buf, "INVALID-bitint-%u%s",
TYPE_PRECISION (type),
TYPE_UNSIGNED (type) ? "u" : "");
s = buf;
ret = false;
}
obstack_grow (ob, s, strlen(s));
}
break;
case REAL_TYPE:
{
const char *s;

View file

@ -234,6 +234,17 @@ const char cc_v1;
cc_t cc_v2;
/* { dg-final { scan-file godump-1.out "(?n)^var _cc_v2 _cc_t$" } } */
_BitInt(32) b32_v;
/* { dg-final { scan-file godump-1.out "(?n)^var _b32_v int32$" } } */
_BitInt(64) b64_v;
/* { dg-final { scan-file godump-1.out "(?n)^var _b64_v int64$" } } */
unsigned _BitInt(32) b32u_v;
/* { dg-final { scan-file godump-1.out "(?n)^var _b32u_v uint32$" } } */
_BitInt(33) b33_v;
/* { dg-final { scan-file godump-1.out "(?n)^// var _b33_v INVALID-bitint-33$" } } */
/*** pointer and array types ***/
typedef void *vp_t;