JDimproved / JDim

2ch browser for linux
https://jdimproved.github.io/JDim/
GNU General Public License v2.0
44 stars 11 forks source link

Fix compiler warnings for -Wmissing-variable-declarations part1 #1286

Closed ma8ma closed 8 months ago

ma8ma commented 8 months ago

静的でないグローバル変数に変数宣言がないとコンパイラーに指摘されたため静的変数に変更してコンパイラー警告を修正します。

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

src/aamanager.cpp:17:18: warning: no previous extern declaration for non-static variable 'instance_aamanager' [-Wmissing-variable-declarations]
src/article/articleadmin.cpp:36:24: warning: no previous extern declaration for non-static variable 'instance_articleadmin' [-Wmissing-variable-declarations]
src/bbslist/bbslistadmin.cpp:21:24: warning: no previous extern declaration for non-static variable 'instance_undo_buffer_favorite' [-Wmissing-variable-declarations]
src/bbslist/bbslistadmin.cpp:41:24: warning: no previous extern declaration for non-static variable 'instance_bbslistadmin' [-Wmissing-variable-declarations]
src/board/boardadmin.cpp:33:20: warning: no previous extern declaration for non-static variable 'instance_boardadmin' [-Wmissing-variable-declarations]
src/compmanager.cpp:18:27: warning: no previous extern declaration for non-static variable 'instance_completion_manager' [-Wmissing-variable-declarations]
src/config/globalconf.cpp:16:22: warning: no previous extern declaration for non-static variable 'instance_confitem' [-Wmissing-variable-declarations]
src/config/globalconf.cpp:17:22: warning: no previous extern declaration for non-static variable 'instance_confitem_bkup' [-Wmissing-variable-declarations]
src/core.cpp:67:7: warning: no previous extern declaration for non-static variable 'instance_core' [-Wmissing-variable-declarations]
src/cssmanager.cpp:25:20: warning: no previous extern declaration for non-static variable 'instance_css_manager' [-Wmissing-variable-declarations]
src/dbimg/imginterface.cpp:15:17: warning: no previous extern declaration for non-static variable 'instance_dbimg_root' [-Wmissing-variable-declarations]
src/dbtree/interface.cpp:16:15: warning: no previous extern declaration for non-static variable 'instance_dbtree_root' [-Wmissing-variable-declarations]
src/dispatchmanager.cpp:15:24: warning: no previous extern declaration for non-static variable 'instance_dispmanager' [-Wmissing-variable-declarations]
src/dndmanager.cpp:8:20: warning: no previous extern declaration for non-static variable 'instance_dnd_manager' [-Wmissing-variable-declarations]
src/history/historymanager.cpp:24:27: warning: no previous extern declaration for non-static variable 'instance_history_manager' [-Wmissing-variable-declarations]
src/icons/iconmanager.cpp:56:21: warning: no previous extern declaration for non-static variable 'instance_icon_manager' [-Wmissing-variable-declarations]
src/image/imageadmin.cpp:31:20: warning: no previous extern declaration for non-static variable 'instance_imageadmin' [-Wmissing-variable-declarations]
src/linkfiltermanager.cpp:20:27: warning: no previous extern declaration for non-static variable 'instance_linkfilter_manager' [-Wmissing-variable-declarations]
src/login2ch.cpp:29:17: warning: no previous extern declaration for non-static variable 'instance_login2ch' [-Wmissing-variable-declarations]
src/loginbe.cpp:26:16: warning: no previous extern declaration for non-static variable 'instance_loginbe' [-Wmissing-variable-declarations]
src/main.cpp:41:12: warning: no previous extern declaration for non-static variable 'Win_Main' [-Wmissing-variable-declarations]
src/message/logmanager.cpp:32:23: warning: no previous extern declaration for non-static variable 'instance_log_manager' [-Wmissing-variable-declarations]
src/message/messageadmin.cpp:24:24: warning: no previous extern declaration for non-static variable 'instance_messageadmin' [-Wmissing-variable-declarations]
src/searchmanager.cpp:21:23: warning: no previous extern declaration for non-static variable 'instance_search_manager' [-Wmissing-variable-declarations]
src/sound/soundmanager.cpp:10:23: warning: no previous extern declaration for non-static variable 'instance_sound_manager' [-Wmissing-variable-declarations]
src/updatemanager.cpp:15:28: warning: no previous extern declaration for non-static variable 'instance_checkupdate_manager' [-Wmissing-variable-declarations]
src/urlreplacemanager.cpp:16:27: warning: no previous extern declaration for non-static variable 'instance_urlreplace_manager' [-Wmissing-variable-declarations]
src/usrcmdmanager.cpp:26:23: warning: no previous extern declaration for non-static variable 'instance_usrcmd_manager' [-Wmissing-variable-declarations]
ma8ma commented 8 months ago

clang 17を使ってビルドしコンパイラー警告を数えました 偽陽性(false positive)の疑いや改善が困難な診断もあるため修正するか判断しながら大きな修正や変更の合間に少しずつ取り組みたいと思います

条件

meson setup のコマンドライン引数

CC=clang-17 CXX=clang++-17 meson setup weverythingclang17-unity -Dwarning_level=everything -Dpangolayout=enabled -Dalsa=enabled -Dcpp_args="-isystem /usr/include/glib-2.0 -isystem /usr/include/gtk-3.0 -isystem /usr/include/glibmm-2.4 -isystem /usr/include/giomm-2.4 -isystem /usr/include/gtkmm-3.0 -isystem /usr/include/pangomm-1.4 -isystem /usr/include/sigc++-2.0 -isystem /usr/include/gtest -D_DEBUG -Wno-c++98-compat -Wno-c++98-compat-pedantic" -Dunity=on -Dunity_size=1000

</details

対象のコミット

-Weverything (clang++ 17) Count
-Wc++20-compat 100
-Wcast-function-type-strict 2
-Wconditional-uninitialized 2
-Wcovered-switch-default 2
-Wdisabled-macro-expansion 2
-Wdocumentation-html 1
-Wdocumentation-unknown-command 15
-Wdocumentation 1
-Wexit-time-destructors 78
-Wextra-semi-stmt 39
-Wextra-semi 55
-Wglobal-constructors 614
-Wheader-hygiene 222
-Wimplicit-int-conversion 30
-Wimplicit-int-float-conversion 2
-Winconsistent-missing-destructor-override 359
-Wmissing-prototypes 24
-Wmissing-variable-declarations 234
-Wold-style-cast 249
-Wpadded 740
-Wreserved-macro-identifier 950
-Wshadow 2
-Wshorten-64-to-32 202
-Wsign-conversion 516
-Wsuggest-destructor-override 65
-Wunsafe-buffer-usage 1110
-Wweak-vtables 142

https://github.com/orgs/JDimproved/projects/6/views/1?pane=issue&itemId=44330735 で状態を更新したいと思います