https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122863

anlauf at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2025-11-26
           Keywords|                            |wrong-code
             Status|UNCONFIRMED                 |NEW

--- Comment #3 from anlauf at gcc dot gnu.org ---
Here's something weird (comparing dump-tree -m32 vs. -m64):

@@ -181,14 +181,14 @@
 void __copy_testmod_Item (struct item & restrict src, struct item & restrict
dst)
 {
   {
-    logical(kind=4) D.4683;
-    character(kind=4) D.4684;
-    character(kind=4) D.4685;
-    character(kind=4) D.4686;
+    logical(kind=4) D.4804;
+    unsigned long D.4805;
+    unsigned long D.4806;
+    unsigned long D.4807;

-    D.4683 = (struct item *) dst == (struct item *) src;
+    D.4804 = (struct item *) dst == (struct item *) src;
     *dst = *src;
-    if (D.4683)
+    if (D.4804)
       {
         (void) 0;
       }
@@ -198,10 +198,10 @@
           {
             dst->val._vptr = src->val._vptr;
             dst->val._len = src->val._len;
-            D.4684 = (character(kind=4)) src->val._vptr->_size;
-            D.4685 = (character(kind=4)) src->val._len;
-            D.4686 = D.4685 != 0 ? D.4684 * D.4685 : D.4684;
-            dst->val._data = __builtin_malloc (D.4686);
+            D.4805 = (unsigned long) src->val._vptr->_size;
+            D.4806 = (unsigned long) src->val._len;
+            D.4807 = D.4806 != 0 ? D.4805 * D.4806 : D.4805;
+            dst->val._data = __builtin_malloc (D.4807);
             if (src->val._len > 0)
               {
                 src->val._vptr->_copy (src->val._data, dst->val._data,
src->val._len, dst->val._len);

How can this happen?  (All versions down to 14 affected, 13 rejects the code).

Reply via email to