For some reason there has been a couple of variables declared, written to, but for some reason never read from. I have removed them, assuming this is a correct thing to do.
Using CMake 64-bit Debug build with MSVC 2022 v17.4.3, GCC 12.2, and clang 15.0; the only remaining warning in the library is
D:\Dev\Desktop\!Lib\wxWidgets-PB\src\richtext\richtextbuffer.cpp:4902:17: warning: variable 'i' set but not used [-Wunused-but-set-variable]
int i = 0;
The variable is used only in a conditionally compiled block
wxWidgets/src/richtext/richtextbuffer.cpp
Lines 4924 to 4930 in 1d3d0ae
#if wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING && wxRICHTEXT_USE_PARTIAL_TEXT_EXTENTS | |
if (i < (int) line->GetObjectSizes().GetCount()) | |
{ | |
objectSize.x = line->GetObjectSizes()[(size_t) i]; | |
} | |
else | |
#endif |
wxUnusedVar()
or declaring the variable also in a similar conditionally compiled block. Neither sounds appealing but I guess one has to be picked.
There is also a warning about missing enum switch value in the webview2 SDK but I suppose suppressing warnings in 3rd party code would be too much work.
There is still a bunch of warning in the samples and benchmarks but I think these are much lower priority when in comes to warning-less build. I would still like to address them in the future, if possible.
https://github.com/wxWidgets/wxWidgets/pull/23077
(5 files)
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
Thanks for fixing this, I'll merge it soon (unless you tell me you're going to push more changes to this branch).
Concerning the remaining warnings:
#if wxRICHTEXT_USE_OPTIMIZED_LINE_DRAWING && wxRICHTEXT_USE_PARTIAL_TEXT_EXTENTS
around the other uses of i
looks best here as it more clearly shows that it's only used for this. Perhaps we could hide i++
into the already existing block to avoid adding another #if
check.—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
@PBfordev pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.
I have fixed the rich text issue discussed above which means I am done with this PR.
I have only now noticed that one of the two webview2-related issues is actually in our code:
D:\Dev\Desktop\!Lib\wxWidgets-PB\src\msw\webview_edge.cpp:429:21: warning: enumeration values 'COREWEBVIEW2_WEB_ERROR_STATUS_VALID_AUTHENTICATION_CREDENTIALS_REQUIRED' and 'COREWEBVIEW2_WEB_ERROR_STATUS_VALID_PROXY_AUTHENTICATION_REQUIRED' not handled in switch [-Wswitch]
switch (status)
^~~~~~
but as I am not sure how to best handle it I will leave it be, hoping @TcT2k or @MaartenBent will fix it sometime in the future.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
@PBfordev pushed 1 commit.
—
View it on GitHub or unsubscribe.
You are receiving this because you are subscribed to this thread.
CI failure is unrelated.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
I don't see the webview warnings, but I suspect they depend on the version of the webview2 sdk. They should probably be mapped to wxWEBVIEW_NAV_ERR_AUTH
?
I do see an other warning with clang (also in the CI log), from a recent change:
In file included from D:/dev/wxWidgets/include/wx/msw/statbox.h:14:
D:/dev/wxWidgets/include/wx/compositewin.h:147:26: warning: 'GetCompositeWindowParts' overrides a member function but is not marked 'override'
[-Winconsistent-missing-override]
virtual wxWindowList GetCompositeWindowParts() const = 0;
^
D:/dev/wxWidgets/include/wx/compositewin.h:177:34: note: in instantiation of template class 'wxCompositeWindowSettersOnly<wxStaticBox>' requested here
class wxCompositeWindow : public wxCompositeWindowSettersOnly<W>
^
D:/dev/wxWidgets/include/wx/msw/radiobox.h:23:44: note: in instantiation of template class 'wxCompositeWindow<wxStaticBox>' requested here
class WXDLLIMPEXP_CORE wxRadioBox : public wxCompositeWindow<wxStaticBox>,
^
D:/dev/wxWidgets/include/wx/msw/statbox.h:80:26: note: overridden virtual function is here
virtual wxWindowList GetCompositeWindowParts() const override;
^
and with GCC:
D:\dev\wxWidgets\src\propgrid\propgrid.cpp: In member function 'void wxPropertyGrid::HandleKeyEvent(wxKeyEvent&, bool)':
D:\dev\wxWidgets\src\propgrid\propgrid.cpp:5727:54: warning: 'secondAction' may be used uninitialized [-Wmaybe-uninitialized]
5727 | if ( action == wxPG_ACTION_PREV_PROPERTY || secondAction == wxPG_ACTION_PREV_PROPERTY )
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\dev\wxWidgets\src\propgrid\propgrid.cpp:5645:9: note: 'secondAction' was declared here
5645 | int secondAction;
| ^~~~~~~~~~~~
In member function 'void wxHashTableBase::Create(wxKeyType, size_t)',
inlined from 'void wxHashTable::DoCopy(const wxHashTable&)' at D:\dev\wxWidgets\src\common\hash.cpp:339:11,
inlined from 'wxHashTable::wxHashTable(const wxHashTable&)' at D:\dev\wxWidgets\src\common\hash.cpp:326:11:
D:\dev\wxWidgets\src\common\hash.cpp:62:20: warning: array subscript 0 is outside array bounds of 'void [0]' [-Warray-bounds]
62 | m_table[i] = nullptr;
| ~~~~~~~~~~~^~~~~~~~~
D:\dev\wxWidgets\src\common\hash.cpp:59:49: note: object of size 0 allocated by 'operator new []'
59 | m_table = new wxHashTableBase_Node*[ m_size ];
| ^
In member function 'void wxHashTableBase::Create(wxKeyType, size_t)',
inlined from 'void wxHashTable::DoCopy(const wxHashTable&)' at D:\dev\wxWidgets\src\common\hash.cpp:339:11,
inlined from 'const wxHashTable& wxHashTable::operator=(const wxHashTable&)' at D:\dev\wxWidgets\src\common\hash.cpp:332:11:
D:\dev\wxWidgets\src\common\hash.cpp:62:20: warning: array subscript 0 is outside array bounds of 'void [0]' [-Warray-bounds]
62 | m_table[i] = nullptr;
| ~~~~~~~~~~~^~~~~~~~~
D:\dev\wxWidgets\src\common\hash.cpp:59:49: note: object of size 0 allocated by 'operator new []'
59 | m_table = new wxHashTableBase_Node*[ m_size ];
| ^
And two weird (invalid?) ones caused by using wxT("")
/wxS("")
. Could be fixed by replacing them with wxString()
, but I don't really know what's going on here.
Building CXX object libs/core/CMakeFiles/wxcore.dir/__/__/__/__/src/msw/headerctrl.cpp.obj
In file included from D:/dev/wxWidgets/include/wx/chartype.h:52,
from D:/dev/wxWidgets/include/wx/debug.h:17,
from D:/dev/wxWidgets/include/wx/defs.h:865,
from D:/dev/wxWidgets/include/wx/wxprec.h:12,
from D:/dev/build/wxWidgets/mingw64/rlsmsw/libs/core/CMakeFiles/wxcore.dir/cmake_pch.hxx:5,
from <command-line>:
In function 'wchar_t* wmemcpy(wchar_t*, const wchar_t*, size_t)',
inlined from 'static std::char_traits<wchar_t>::char_type* std::char_traits<wchar_t>::copy(char_type*, const char_type*, std::size_t)' at D:/msys64/mingw64/inc
lude/c++/12.2.0/bits/char_traits.h:558:16,
inlined from 'static void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = wchar_t; _Traits = std
::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:423:21,
inlined from 'static void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = wchar_t; _Traits = std
::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:418:7,
inlined from 'static void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy_chars(_CharT*, const _CharT*, const _CharT*) [with _CharT = wchar_t; _Tr
aits = std::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:477:16,
inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_construct(_InIterator, _InIterator, std::forward_iterator_tag) [with _FwdIterator =
const wchar_t*; _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string
.tcc:243:21,
inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = wchar_t; _Traits = std::char_trait
s<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:642:14,
inlined from 'wxString::wxString(const wchar_t*)' at D:/dev/wxWidgets/include/wx/string.h:1154:7,
inlined from 'bool wxMSWHeaderCtrl::Create(wxWindow*, wxWindowID, const wxPoint&, const wxSize&, long int, const wxString&)' at D:\dev\wxWidgets\src\msw\header
ctrl.cpp:246:27:
D:/msys64/mingw64/include/wchar.h:1502:31: warning: 'void* memcpy(void*, const void*, size_t)' forming offset [2, 3] is out of the bounds [0, 2] [-Warray-bounds]
1502 | return (wchar_t *) memcpy (_S1,_S2,_N*sizeof(wchar_t));
Building CXX object libs/xml/CMakeFiles/wxxml.dir/__/__/__/__/src/xml/xml.cpp.obj
In file included from D:/dev/wxWidgets/include/wx/chartype.h:52,
from D:/dev/wxWidgets/include/wx/debug.h:17,
from D:/dev/wxWidgets/include/wx/defs.h:865,
from D:/dev/wxWidgets/include/wx/wxprec.h:12,
from D:/dev/build/wxWidgets/mingw64/rlsmsw/libs/xml/CMakeFiles/wxxml.dir/cmake_pch.hxx:5,
from <command-line>:
In function 'wchar_t* wmemcpy(wchar_t*, const wchar_t*, size_t)',
inlined from 'static std::char_traits<wchar_t>::char_type* std::char_traits<wchar_t>::copy(char_type*, const char_type*, std::size_t)' at D:/msys64/mingw64/inc
lude/c++/12.2.0/bits/char_traits.h:558:16,
inlined from 'static void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = wchar_t; _Traits = std
::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:423:21,
inlined from 'static void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy(_CharT*, const _CharT*, size_type) [with _CharT = wchar_t; _Traits = std
::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:418:7,
inlined from 'static void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_S_copy_chars(_CharT*, const _CharT*, const _CharT*) [with _CharT = wchar_t; _Tr
aits = std::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:477:16,
inlined from 'void std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::_M_construct(_InIterator, _InIterator, std::forward_iterator_tag) [with _FwdIterator =
const wchar_t*; _CharT = wchar_t; _Traits = std::char_traits<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string
.tcc:243:21,
inlined from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT*, const _Alloc&) [with _CharT = wchar_t; _Traits = std::char_trait
s<wchar_t>; _Alloc = std::allocator<wchar_t>]' at D:/msys64/mingw64/include/c++/12.2.0/bits/basic_string.h:642:14,
inlined from 'wxString::wxString(const wchar_t*)' at D:/dev/wxWidgets/include/wx/string.h:1154:7,
inlined from 'void StartCdataHnd(void*)' at D:\dev\wxWidgets\src\xml\xml.cpp:731:60:
D:/msys64/mingw64/include/wchar.h:1502:31: warning: 'void* memcpy(void*, const void*, size_t)' forming offset [2, 3] is out of the bounds [0, 2] [-Warray-bounds]
1502 | return (wchar_t *) memcpy (_S1,_S2,_N*sizeof(wchar_t));
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
We need to explicitly disable -Winconsistent-missing-override
in wxCompositeWindow
code, just as we already do it for gcc. In fact, we probably need a new macro (wxOVERRIDE_WARNING_SUPPRESS
?) to do it for both compilers to avoid making things too ugly. I wonder why this hasn't resulted in an error in the CI builds, they're supposed to use -Werror
...
The -Warray-bounds
ones I don't understand, does it happen with -O2
only? But it's true that we can always replace wxT("")
with wxString{}
which is also marginally more efficient, so we can do it regardless.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
I don't see the webview warnings, but I suspect they depend on the version of the webview2 sdk. They should probably be mapped to
wxWEBVIEW_NAV_ERR_AUTH
?
BTW, wxWidgets currently requires webview2 SDK v1.0.864.35, but according to the docs, those two enum values were introduced only in v1.0.1108.44, so they can be used only in a version-guarded compile-time check.
I do see an other warning with clang (also in the CI log), from a recent change:
This is probably in the code not in my PR branch (or not shown in the debug build?). Since I am heavily GIT-impaired, I will not attempt to fix them in this PR. Last time I tried to rebase my PR branch on the master, it went horribly wrong.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
Merged #23077 into master.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.