Immediate-Mode-UI / Immediate-Mode-UI/Nuklear
Some warning in Win10 for MSYS2 mingw64 about warning: ISO C90 does not support 'long long' [-Wlong-long]
- Dominant language
- C
- Stars
- 11.4k
- Forks
- 686
- Avg merge
- 4d 1h
- Merged PRs (30d)
- 3
Description
When I make /demo/sdl_opengl3:
` make
rm -f bin/demo.exe
cc main.c -std=c89 -Wall -Wextra -pedantic -DSDL_DISABLE_IMMINTRIN_H -o bin/demo.exe -lmingw32 -lSDL2main -lSDL2 -lopengl32 -lm -lGLU32 -lGLEW32
../../nuklear.h: In function 'nk_memset':
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6884:14: note: in expansion of macro 'NK_PTR_TO_UINT'
6884 | if ((t = NK_PTR_TO_UINT(dst) & nk_wmask) != 0) {
| ^~~~~~~~~~~~~~
../../nuklear.h: In function 'nk_buffer_align':
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6017:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:8557:22: note: in expansion of macro 'NK_ALIGN_PTR'
8557 | memory = NK_ALIGN_PTR(unaligned, align);
| ^~~~~~~~~~~~
In file included from main.c:25:
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6017:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:8557:22: note: in expansion of macro 'NK_ALIGN_PTR'
8557 | memory = NK_ALIGN_PTR(unaligned, align);
| ^~~~~~~~~~~~
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6019:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6019 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:8566:22: note: in expansion of macro 'NK_ALIGN_PTR_BACK'
8566 | memory = NK_ALIGN_PTR_BACK(unaligned, align);
| ^~~~~~~~~~~~~~~~~
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6019:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6019 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:8566:22: note: in expansion of macro 'NK_ALIGN_PTR_BACK'
8566 | memory = NK_ALIGN_PTR_BACK(unaligned, align);
| ^~~~~~~~~~~~~~~~~
../../nuklear.h: In function 'nk_command_buffer_push':
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6017:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:9261:14: note: in expansion of macro 'NK_ALIGN_PTR'
9261 | memory = NK_ALIGN_PTR(unaligned, align);
| ^~~~~~~~~~~~
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6017:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:9261:14: note: in expansion of macro 'NK_ALIGN_PTR'
9261 | memory = NK_ALIGN_PTR(unaligned, align);
| ^~~~~~~~~~~~
../../nuklear.h: In function 'nk_font_baker':
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6017:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16962:36: note: in expansion of macro 'NK_ALIGN_PTR'
16962 | baker = (struct nk_font_baker*)NK_ALIGN_PTR(memory, nk_baker_align);
| ^~~~~~~~~~~~
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6017:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16962:36: note: in expansion of macro 'NK_ALIGN_PTR'
16962 | baker = (struct nk_font_baker*)NK_ALIGN_PTR(memory, nk_baker_align);
| ^~~~~~~~~~~~
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6017:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16963:47: note: in expansion of macro 'NK_ALIGN_PTR'
16963 | baker->build = (struct nk_font_bake_data*)NK_ALIGN_PTR((baker + 1), nk_build_align);
| ^~~~~~~~~~~~
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6017:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16963:47: note: in expansion of macro 'NK_ALIGN_PTR'
16963 | baker->build = (struct nk_font_bake_data*)NK_ALIGN_PTR((baker + 1), nk_build_align);
| ^~~~~~~~~~~~
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6017:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16964:46: note: in expansion of macro 'NK_ALIGN_PTR'
16964 | baker->packed_chars = (stbtt_packedchar*)NK_ALIGN_PTR((baker->build + count), nk_char_al
ign);
| ^~~~~~~~~~~~
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6017:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16964:46: note: in expansion of macro 'NK_ALIGN_PTR'
16964 | baker->packed_chars = (stbtt_packedchar*)NK_ALIGN_PTR((baker->build + count), nk_char_al
ign);
| ^~~~~~~~~~~~
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6017:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16965:40: note: in expansion of macro 'NK_ALIGN_PTR'
16965 | baker->rects = (struct stbrp_rect*)NK_ALIGN_PTR((baker->packed_chars + glyph_count), nk_
rect_align);
| ^~~~~~~~~~~~
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6017:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16965:40: note: in expansion of macro 'NK_ALIGN_PTR'
16965 | baker->rects = (struct stbrp_rect*)NK_ALIGN_PTR((baker->packed_chars + glyph_count), nk_
rect_align);
| ^~~~~~~~~~~~
../../nuklear.h:6003:37: warning: ISO C90 does not support 'long long' [-Wlong-long]
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6017:6: note: in expansion of macro 'NK_UINT_TO_PTR'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16966:40: note: in expansion of macro 'NK_ALIGN_PTR'
16966 | baker->ranges = (stbtt_pack_range*)NK_ALIGN_PTR((baker->rects + glyph_count), nk_range_a
lign);
| ^~~~~~~~~~~~
../../nuklear.h:6004:39: warning: ISO C90 does not support 'long long' [-Wlong-long]
6004 | # define NK_PTR_TO_UINT(x) ((nk_size)(__PTRDIFF_TYPE__)(x))
| ^~~~~~~~~~~~~~~~
../../nuklear.h:6003:55: note: in definition of macro 'NK_UINT_TO_PTR'
6003 | # define NK_UINT_TO_PTR(x) ((void*)(__PTRDIFF_TYPE__)(x))
| ^
../../nuklear.h:6017:22: note: in expansion of macro 'NK_PTR_TO_UINT'
6017 | (NK_UINT_TO_PTR((NK_PTR_TO_UINT((nk_byte*)(x) + (mask-1)) & ~(mask-1))))
| ^~~~~~~~~~~~~~
../../nuklear.h:16966:40: note: in expansion of macro 'NK_ALIGN_PTR'
16966 | baker->ranges = (stbtt_pack_range*)NK_ALIGN_PTR((baker->rects + glyph_count), nk_range_a
lign);
| ^~~~~~~~~~~~
In file included from main.c:68:
../../demo/common/overview.c: In function 'overview':
../../demo/common/overview.c:447:36: warning: format '%lu' expects argument of type 'long unsigned i
nt', but argument 3 has type 'size_t' {aka 'long long unsigned int'} [-Wformat=]
447 | sprintf(buffer, "%lu", sum);
| ~~^ ~~~
| | |
| | size_t {aka long long unsigned int}
| long unsigned int
| %llu
../../demo/common/overview.c:459:36: warning: format '%lu' expects argument of type 'long unsigned i
nt', but argument 3 has type 'size_t' {aka 'long long unsigned int'} [-Wformat=]
459 | sprintf(buffer, "%lu", sum);
| ~~^ ~~~
| | |
| | size_t {aka long long unsigned int}
| long unsigned int
| %llu
`
Contributor guide
Research direction
Start in nuklear.h around the NK_UINT_TO_PTR and NK_PTR_TO_UINT macros at lines 6003-6004, then reproduce the report with make in demo/sdl_opengl3 using the shown C89 command. Trace how those macros are used by the alignment code and confirm the MSYS2 mingw64 build no longer emits the reported ISO C90 warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100