libgccjit: Support getting the size of a float [PR105829]
authorAntoni Boucher <bouanto@zoho.com>
Fri, 10 Jun 2022 01:37:23 +0000 (21:37 -0400)
committerAntoni Boucher <bouanto@zoho.com>
Fri, 10 Jun 2022 01:50:25 +0000 (21:50 -0400)
2022-06-09  Antoni Boucher  <bouanto@zoho.com>

gcc/jit/
PR jit/105829
* libgccjit.cc: Add support for floating-point types in
gcc_jit_type_get_size.

gcc/testsuite/
PR jit/105829
* jit.dg/test-types.c: Add tests for gcc_jit_type_get_size.

gcc/jit/libgccjit.cc
gcc/testsuite/jit.dg/test-types.c

index cc6486c..0e76097 100644 (file)
@@ -545,8 +545,8 @@ gcc_jit_type_get_size (gcc_jit_type *type)
 {
   RETURN_VAL_IF_FAIL (type, -1, NULL, NULL, "NULL type");
   RETURN_VAL_IF_FAIL
-    (type->is_int (), -1, NULL, NULL,
-     "only getting the size of an integer type is supported for now");
+    (type->is_int () || type->is_float (), -1, NULL, NULL,
+     "only getting the size of integer or floating-point types is supported for now");
   return type->get_size ();
 }
 
index 6836597..a01944e 100644 (file)
@@ -489,4 +489,7 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result)
     CHECK (gcc_jit_compatible_types (
       gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_LONG),
       gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_INT64_T)));
+
+  CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_FLOAT)), sizeof (float));
+  CHECK_VALUE (gcc_jit_type_get_size (gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_DOUBLE)), sizeof (double));
 }