clang compiler gives warnings expecting errors

Alex Kempshall mcmurchy1917-libreoffice at yahoo.co.uk
Fri Sep 15 08:08:38 UTC 2017


Hi Stephen

Thanks for the pointer on how to compile with clang. Done an autogen -

> Running ./configure with 'CC=clang CXX=clang++ --enable-debug 
> --disable-ccache --disable-gtk3 --with-parallelism=5 --without-junit 
> --without-gssapi --without-krb5 --enable-dbgutil 
> --enable-compiler-plugins --enable-option-checking=fatal 
> --srcdir=/home/alex/master --enable-option-checking=fatal'

The make gives me a clean compile, with warnings,  which was not what I 
was hoping for!

> /home/alex/master/sw/source/ui/inc/mmresultdialogs.hxx:213:5: 
> *warning*: VclReferenceBase subclass dispose() function MUST call 
> dispose() of its superclass as the last thing it does 
> [loplugin:vclwidgets]
> /home/alex/master/sw/source/ui/dbui/mmoutputtypepage.cxx:303:1: 
> *warning*: VclReferenceBase subclass dispose() function MUST call 
> dispose() of its superclass as the last thing it does 
> [loplugin:vclwidgets]

I would have liked the compile to have failed in a similar way to 
Jenkins where the *warnings* above became *errors*-

> In file included from 
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/sw/source/ui/dbui/mmoutputtypepage.cxx:37:
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/sw/source/ui/inc/mmresultdialogs.hxx:213:5:***error*: 
> VclReferenceBase subclass dispose() function MUST call dispose() of 
> its superclass as the last thing it does [loplugin:vclwidgets]
>      virtual void        dispose() override;
>      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/sw/source/ui/dbui/mmoutputtypepage.cxx:303:1: 
> *error*: VclReferenceBase subclass dispose() function MUST call 
> dispose() of its superclass as the last thing it does 
> [loplugin:vclwidgets]
> void SwSendMailDialog::dispose()
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 2 errors generated.
> /home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/solenv/gbuild/LinkTarget.mk:288: 
> recipe for target 
> '/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/workdir/CxxObject/sw/source/ui/dbui/mmoutputtypepage.o' 
> failed
> make[1]: *** 
> [/home/tdf/lode/jenkins/workspace/lo_gerrit/Config/linux_clang_dbgutil_64/workdir/CxxObject/sw/source/ui/dbui/mmoutputtypepage.o] 
> Error 1
> make[1]: *** Waiting for unfinished jobs....
> Makefile:266: recipe for target 'build' failed
> make: *** [build] Error 2
> Build step 'Execute shell' marked build as failure
> Finished: FAILURE 

What have I missed?

Alex




On 14/09/17 11:40, Stephan Bergmann wrote:
> On 09/13/2017 11:27 AM, Alex Kempshall wrote:
>> Is there a way that I can pick up these type of errors before 
>> submitting them to gerrit?
>
> By building with Clang and configuring --enable-compiler-plugins. See 
> <https://wiki.documentfoundation.org/Development/Building_LibreOffice_with_Clang> 
> for some pointers (and 
> <https://wiki.documentfoundation.org/Development/Clang_plugins> for 
> more info on loplugin).
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20170915/9e7b5e08/attachment.html>


More information about the LibreOffice mailing list