Godot: core/hq2x.cpp 生成大量警告

创建于 2016-06-30  ·  1评论  ·  资料来源: godotengine/godot

从头开始编译 Godot 时,我注意到一半的构建日志是由于core/hq2x.cpp生成的警告。 有关当前主分支的所有警告,请参阅附件: godot_hq2x_warnings.txt

摘抄:

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
      ^

该文件基于https://github.com/brunexgeek/hqx/blob/master/source/HQ2x.cc ,因此理想情况下,我们应该帮助修复上游的这些警告,然后更新我们自己的副本。 如果无法做到这一点,我们可以直接修补我们的版本,但这会使与上游同步更改变得更加困难。

bug core

最有用的评论

做了一个PR 上游,当它被合并时会用更新的hq2x.cpp做一个 PR,如果它没有,无论如何都会做一个 PR,因为修复实际上是两行两对括号。

>所有评论

做了一个PR 上游,当它被合并时会用更新的hq2x.cpp做一个 PR,如果它没有,无论如何都会做一个 PR,因为修复实际上是两行两对括号。

此页面是否有帮助?
0 / 5 - 0 等级