Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix compiler warnings for -Wimplicit-int-conversion part1 #1378

Merged

Conversation

ma8ma
Copy link
Collaborator

@ma8ma ma8ma commented Apr 6, 2024

整数型の変数をサイズが小さい整数型へ暗黙的に変換している箇所は精度が失う可能性があるとclangに指摘されたため明示的にキャストstatic_cast<...>()を使ったり、整数型を変更してコンパイラに意図した変更であると伝えます。

clang 17のレポート (file pathを一部省略)

src/article/drawareabase.cpp:2444:33: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2451:20: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2460:20: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2467:16: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2471:12: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/layouttree.cpp:122:23: warning: implicit conversion loses integer precision: 'const int' to 'unsigned char' [-Wimplicit-int-conversion]
src/control/controlutil.cpp:291:18: warning: implicit conversion loses integer precision: 'const guint' (aka 'const unsigned int') to 'char' [-Wimplicit-int-conversion]
src/dbtree/nodetreebase.cpp:864:25: warning: implicit conversion loses integer precision: 'const int' to 'unsigned char' [-Wimplicit-int-conversion]
src/dbtree/nodetreebase.cpp:866:31: warning: implicit conversion loses integer precision: 'const int' to 'unsigned char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:493:22: warning: implicit conversion loses integer precision: 'const char32_t' to 'char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:497:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:498:31: warning: implicit conversion changes signedness: 'unsigned int' to 'char' [-Wsign-conversion]
src/jdlib/misccharcode.cpp:502:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:503:31: warning: implicit conversion changes signedness: 'unsigned int' to 'char' [-Wsign-conversion]
src/jdlib/misccharcode.cpp:504:31: warning: implicit conversion changes signedness: 'unsigned int' to 'char' [-Wsign-conversion]
src/jdlib/misccharcode.cpp:508:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'char' [-Wimplicit-int-conversion]
src/jdlib/miscutil.cpp:1476:39: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wimplicit-int-conversion]
src/jdlib/miscutil.cpp:1477:43: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wimplicit-int-conversion]

整数型の変数をサイズが小さい整数型へ暗黙的に変換している箇所は
精度が失う可能性があるとclangに指摘されたため明示的にキャスト
`static_cast<...>()`を使ったり、整数型を変更してコンパイラに
意図した変更であると伝えます。

clang 17のレポート (file pathを一部省略)
```
src/article/drawareabase.cpp:2444:33: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2451:20: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2460:20: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2467:16: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/drawareabase.cpp:2471:12: warning: implicit conversion loses integer precision: 'const int' to 'char' [-Wimplicit-int-conversion]
src/article/layouttree.cpp:122:23: warning: implicit conversion loses integer precision: 'const int' to 'unsigned char' [-Wimplicit-int-conversion]
src/control/controlutil.cpp:291:18: warning: implicit conversion loses integer precision: 'const guint' (aka 'const unsigned int') to 'char' [-Wimplicit-int-conversion]
src/dbtree/nodetreebase.cpp:864:25: warning: implicit conversion loses integer precision: 'const int' to 'unsigned char' [-Wimplicit-int-conversion]
src/dbtree/nodetreebase.cpp:866:31: warning: implicit conversion loses integer precision: 'const int' to 'unsigned char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:493:22: warning: implicit conversion loses integer precision: 'const char32_t' to 'char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:497:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:498:31: warning: implicit conversion changes signedness: 'unsigned int' to 'char' [-Wsign-conversion]
src/jdlib/misccharcode.cpp:502:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'char' [-Wimplicit-int-conversion]
src/jdlib/misccharcode.cpp:503:31: warning: implicit conversion changes signedness: 'unsigned int' to 'char' [-Wsign-conversion]
src/jdlib/misccharcode.cpp:504:31: warning: implicit conversion changes signedness: 'unsigned int' to 'char' [-Wsign-conversion]
src/jdlib/misccharcode.cpp:508:31: warning: implicit conversion loses integer precision: 'unsigned int' to 'char' [-Wimplicit-int-conversion]
src/jdlib/miscutil.cpp:1476:39: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wimplicit-int-conversion]
src/jdlib/miscutil.cpp:1477:43: warning: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Wimplicit-int-conversion]
```
@ma8ma ma8ma added the bug バグの追跡 label Apr 6, 2024
@ma8ma ma8ma merged commit bbf9902 into master Apr 6, 2024
20 checks passed
@ma8ma ma8ma deleted the fix-compiler-warnings-for-wimplicit-int-conversion-part1 branch April 6, 2024 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug バグの追跡
Projects
Development

Successfully merging this pull request may close these issues.

None yet

1 participant