BUG: SystemABI C_LONG and C_LONGLONG are the same

Ty Young youngty1997 at gmail.com
Thu May 14 23:15:34 UTC 2020

Currently with the newest builds SystemABI C_LONG and C_LONGLONG are the 


prints true.

Since C_LONG can be 32-bit, it should, IMO, be decoupled from 
C_LONGLONG. This also breaks my abstraction layer as if ladders like 
this hit C_LONG always on Linux:

public static <T extends Number, E extends AbstractNativeNumber<T>> E 
fromLayout(ValueLayout layout)
             return (E)new NativeByte();
         else if(layout.equals(SystemABI.C_SHORT))
             return (E)new NativeShort();
         else if(layout.equals(SystemABI.C_INT))
             return (E)new NativeInteger();
         else if(layout.equals(SystemABI.C_FLOAT))
             return (E)new NativeFloat();
         else if(layout.equals(SystemABI.C_DOUBLE))
             return (E)new NativeDouble();
         else if(layout.equals(SystemABI.C_LONG))
             return (E)new NativeLong();
         else if(layout.equals(SystemABI.C_LONGLONG))
             return (E)new NativeLongLong();

         throw new UnsupportedOperationException();

More information about the panama-dev mailing list