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

Iain Buclaw <ibuclaw at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw at gcc dot gnu.org

--- Comment #1 from Iain Buclaw <ibuclaw at gcc dot gnu.org> ---
Looking at the diff, seems that upstream made a mistake when doing some
mechanical change - the last hunk is missing a "cast".


--- a/std/bitmanip.d
+++ b/std/bitmanip.d
@@ -2959,10 +2959,10 @@ if (__traits(isIntegral, T))
     Unqual!T result;
     version (LittleEndian)
         foreach_reverse (b; array)
-            result = cast(Unqual!T) ((result << 8) | b);
+            result = cast() cast(T) ((result << 8) | b);
     else
         foreach (b; array)
-            result = cast(Unqual!T) ((result << 8) | b);
+            result = cast() cast(T) ((result << 8) | b);
     return cast(T) result;
 }

@@ -2977,7 +2977,7 @@ if (__traits(isIntegral, T))
         foreach (i; 0 .. T.sizeof)
         {
             result[i] = cast(ubyte) tmp;
-            tmp = cast(Unqual!T) (tmp >>> 8);
+            tmp = cast() cast(T) (tmp >>> 8);
         }
     }
     else
@@ -2985,7 +2985,7 @@ if (__traits(isIntegral, T))
         foreach_reverse (i; 0 .. T.sizeof)
         {
             result[i] = cast(ubyte) tmp;
-            tmp = cast(Unqual!T) (tmp >>> 8);
+            tmp = cast()(T) (tmp >>> 8);
         }
     }
     return result;

---

All this code is already gone in upstream, just need to catch-up with mainline.

Reply via email to