]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[COBOL] use native_encode_real
authorRichard Biener <rguenther@suse.de>
Fri, 28 Mar 2025 07:52:16 +0000 (08:52 +0100)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 28 Mar 2025 12:52:40 +0000 (13:52 +0100)
The following avoids the round-trip through a newly built tree and
instead directly uses the now exported native_encode_real.

gcc/cobol/
* genapi.cc (initial_from_float128): Use native_encode_real.

gcc/cobol/genapi.cc

index 032236b15dba8921fdbe5aebd0d4b9a63a88af88..bc91533815882c2a2ce974e0afe8f653121f1473 100644 (file)
@@ -15680,24 +15680,23 @@ initial_from_float128(cbl_field_t *field)
 
     case FldFloat:
       {
-      tree tem;
       retval = (char *)xmalloc(field->data.capacity);
       switch( field->data.capacity )
         {
         case 4:
           value = real_value_truncate (TYPE_MODE (FLOAT), value);
-          tem = build_real (FLOAT, value);
-          native_encode_expr (tem, (unsigned char *)retval, 4, 0);
+          native_encode_real (SCALAR_FLOAT_TYPE_MODE (FLOAT), &value,
+                             (unsigned char *)retval, 4, 0);
           break;
         case 8:
           value = real_value_truncate (TYPE_MODE (DOUBLE), value);
-          tem = build_real (DOUBLE, value);
-          native_encode_expr (tem, (unsigned char *)retval, 8, 0);
+          native_encode_real (SCALAR_FLOAT_TYPE_MODE (DOUBLE), &value,
+                             (unsigned char *)retval, 8, 0);
           break;
         case 16:
           value = real_value_truncate (TYPE_MODE (FLOAT128), value);
-          tem = build_real (FLOAT128, value);
-          native_encode_expr (tem, (unsigned char *)retval, 16, 0);
+          native_encode_real (SCALAR_FLOAT_TYPE_MODE (FLOAT128), &value,
+                             (unsigned char *)retval, 16, 0);
           break;
         }
       break;