Menu

#33 compile error

next
closed
None
5
2023-03-04
2020-08-25
rno
No

while trying compiling on a 32 bits system terminal gets filled with :

worker_net_wm_icon.h:966:1: error: narrowing conversion of ‘4289081996u’ from ‘unsigned int’ to ‘long int’ inside { } [-Wnarrowing]

gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
cc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516

it seems an ‘unsigned int’ doesn't fit in a ‘long int’ on some 32bit system
with debian stretch 32bits
sizeof(long) = 4
sizeof(int) = 4
so 'long' lets only 31 bits while 'unsigned' require 32 bits

anyway with changing type to ‘unsigned long int’ in include file and helper functions it compiles.
I can see the icon int the window taskbar + task switcher, so it seems it also works :)

with debian stretch 32bit system using both (unsigned int) or (unsigned long int)
do work, I mean I'm seeing the picture

it seems to me if declaring it as a long it would require twice as much memory on some system though, those having sizeof(unsigned long int) = 8bytes , (considering data is 4bytes aligned)

that would be weird if wm did rely on the type length , I don't know if any are doing .
So, if there was something wrong with declaring it as (unsigned int), it seems to me that would be on another level, X or wm or something elde I don't know.

attached two patches with both options
thanks

2 Attachments

Discussion

  • rno

    rno - 2020-08-25

    argl a fix was uploaded while I was preparing the message....
    so sorry it seems I cannot close it

     
  • Ralf Hoffmann

    Ralf Hoffmann - 2020-09-19
    • status: open --> closed
    • assigned_to: Ralf Hoffmann
     

Log in to post a comment.