godump.cc patch committed: Handle _BitInt
Checks
Commit Message
This patch to godump.cc adds support for BITINT_TYPE. Bootstrapped
and ran godump and Go tests on x86_64-pc-linux-gnu. Committed to
mainline.
Ian
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.
@@ -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;
@@ -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;