Godot: core/hq2x.cpp generates a ton of warnings

Created on 30 Jun 2016  ·  1Comment  ·  Source: godotengine/godot

When compiling Godot from scratch, I noticed that half the build log is due to warnings generated in core/hq2x.cpp. See the attached file for all those warnings as of the current master branch: godot_hq2x_warnings.txt

Excerpt:

g++ -o core/hq2x.x11.tools.64.o -c -g2 -Wall -DDEBUG_ENABLED -DDEBUG_MEMORY_ENABLED -DFREETYPE_ENABLED -DOC_X86_ASM -DDEBUG_MEMORY_ALLOC -DSCI_NAMESPACE -DENABLE_DEPRECATED -DOPENGL_ENABLED -DALSA_ENABLED -DJOYDEV_ENABLED -DPULSEAUDIO_ENABLED -DX11_ENABLED -DUNIX_ENABLED -DGLES2_ENABLED -DGLES_OVER_GL -DMUSEPACK_ENABLED -DSQUISH_ENABLED -DVORBIS_ENABLED -DOPUS_ENABLED -DTHEORA_ENABLED -DTHEORALIB_ENABLED -DPNG_ENABLED -DDDS_ENABLED -DPVR_ENABLED -DJPG_ENABLED -DWEBP_ENABLED -DSPEEX_ENABLED -DTOOLS_ENABLED -DGDSCRIPT_ENABLED -DMINIZIP_ENABLED -DXML_ENABLED -DETC1_ENABLED -DGLEW_ENABLED -DGLEW_STATIC -D_REENTRANT -Icore -Icore/math -Itools -Idrivers -I. -Iplatform/x11 -I/usr/include/freetype2 -I/usr/include/libpng16 -Icore core/hq2x.cpp
core/hq2x.cpp: In function 'uint32_t* hq2x_resize(const uint32_t*, uint32_t, uint32_t, uint32_t*, uint32_t, uint32_t, uint32_t, uint32_t, bool, bool)':
core/hq2x.cpp:102:112: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
  (((((C0 & MASK_A) >> 8) * W0 + ((C1 & MASK_A) >> 8) * W1 + ((C2 & MASK_A) >> 8) * W2) / (W0 + W1 + W2)) << 8) & MASK_A
                                                                                                                ^
core/hq2x.cpp:110:39: note: in expansion of macro 'HQX_MIX_3'
 #define MIX_00_4_3_1_2_1_1  *output = HQX_MIX_3(w[4],w[3],w[1],2U,1U,1U);
                                       ^
core/hq2x.cpp:340:6: note: in expansion of macro 'MIX_00_4_3_1_2_1_1'
      MIX_00_4_3_1_2_1_1
      ^
core/hq2x.cpp:102:112: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
  (((((C0 & MASK_A) >> 8) * W0 + ((C1 & MASK_A) >> 8) * W1 + ((C2 & MASK_A) >> 8) * W2) / (W0 + W1 + W2)) << 8) & MASK_A
                                                                                                                ^
core/hq2x.cpp:126:44: note: in expansion of macro 'HQX_MIX_3'
 #define MIX_01_4_1_5_2_1_1 *(output + 1) = HQX_MIX_3(w[4],w[1],w[5],2U,1U,1U);
                                            ^
core/hq2x.cpp:341:6: note: in expansion of macro 'MIX_01_4_1_5_2_1_1'
      MIX_01_4_1_5_2_1_1
      ^
core/hq2x.cpp:102:112: warning: suggest parentheses around arithmetic in operand of '|' [-Wparentheses]
  (((((C0 & MASK_A) >> 8) * W0 + ((C1 & MASK_A) >> 8) * W1 + ((C2 & MASK_A) >> 8) * W2) / (W0 + W1 + W2)) << 8) & MASK_A
                                                                                                                ^
core/hq2x.cpp:147:51: note: in expansion of macro 'HQX_MIX_3'
 #define MIX_10_4_7_3_2_1_1 *(output + lineSize) = HQX_MIX_3(w[4],w[7],w[3],2U,1U,1U);
                                                   ^
core/hq2x.cpp:342:6: note: in expansion of macro 'MIX_10_4_7_3_2_1_1'
      MIX_10_4_7_3_2_1_1
      ^

This file is based off https://github.com/brunexgeek/hqx/blob/master/source/HQ2x.cc, so ideally we should help fix those warnings upstream and update our own copy afterwards. If this can't be done, we can patch our version directly, but it will make it harder to sync changes with upstream.

bug core

Most helpful comment

Did a PR upstream, will do a PR with updated hq2x.cpp when it gets merged, if it doesnt, will do a PR anyway, since the fix is literally 2 pairs of parentheses on two lines.

>All comments

Did a PR upstream, will do a PR with updated hq2x.cpp when it gets merged, if it doesnt, will do a PR anyway, since the fix is literally 2 pairs of parentheses on two lines.

Was this page helpful?
0 / 5 - 0 ratings