On 2008-01-03 16:42 +0000, Wookey wrote:

I forgot
7) Loch warnings:

Building loch gives a lot of this:
In file included from /usr/include/wx-2.6/wx/gtk/cursor.h:23,
                 from /usr/include/wx-2.6/wx/cursor.h:24,
                 from /usr/include/wx-2.6/wx/event.h:32,
                 from /usr/include/wx-2.6/wx/wx.h:23,
                 from lxWX.h:6,
                 from lxAboutDlg.cxx:1:
/usr/include/wx-2.6/wx/image.h: In member function 
‘wxImageHistogramBase_wxImplementation_HashTable::Node** 
wxImageHistogramBase_wxImplementation_HashTable::GetNodePtr(const long unsigned 
int&) const’:
/usr/include/wx-2.6/wx/image.h:123: warning: dereferencing type-punned pointer 
will break strict-aliasing rules

Which is something to do with referencing structure members using pointer types 
which 
can not be guaranteed to have the same alignment as the pointer the member was
assigned with.

All these appear to be in wx headers, so maybe they are not really anything to 
do
with therion, and all I should do is add -fno-strict-aliasing to the build to 
stop
them appearing.

But I'd like someone who groks C++ properly to tell me that's not just papering 
over
cracks before doing so. Doing this certainly removes all the noise and shows us 
that
there is one genuine set of warnings:
lxRender.cxx: In member function ‘void lxRenderFile::RenderPDFHeader()’:
lxRender.cxx:855: warning: format ‘%u’ expects type ‘unsigned int’, but 
argument 3 has type ‘size_t’
lxRender.cxx: In member function ‘void lxRenderFile::RenderPDFFooter()’:
lxRender.cxx:929: warning: format ‘%u’ expects type ‘unsigned int’, but 
argument 3 has type ‘size_t’
lxRender.cxx:982: warning: format ‘%010u’ expects type ‘unsigned int’, 
but argument 4 has type ‘size_t’
lxRender.cxx:982: warning: format ‘%010u’ expects type ‘unsigned int’, 
but argument 5 has type ‘size_t’
lxRender.cxx:982: warning: format ‘%010u’ expects type ‘unsigned int’, 
but argument 6 has type ‘size_t’
lxRender.cxx:982: warning: format ‘%010u’ expects type ‘unsigned int’, 
but argument 7 has type ‘size_t’
lxRender.cxx:982: warning: format ‘%010u’ expects type ‘unsigned int’, 
but argument 8 has type ‘size_t’
lxRender.cxx:982: warning: format ‘%010u’ expects type ‘unsigned int’, 
but argument 9 has type ‘size_t’
lxRender.cxx:982: warning: format ‘%010u’ expects type ‘unsigned int’, 
but argument 10 has type ‘size_t’
lxRender.cxx:983: warning: format ‘%u’ expects type ‘unsigned int’, but 
argument 3 has type ‘size_t’

Does this just need some casts or should the format be changed?

Wookey
-- 
Principal hats:  Balloonz - Toby Churchill - Aleph One - Debian
http://wookware.org/

Reply via email to