New Defects reported by Coverity Scan for LibreOffice

Stephan Bergmann sbergman at redhat.com
Mon Apr 18 06:59:56 UTC 2016


On 04/17/2016 06:41 PM, scan-admin at coverity.com wrote:
> *** CID 1358589:  Uninitialized members  (UNINIT_CTOR)
> /tools/source/generic/fract.cxx: 45 in Fraction::Impl::Impl()()
> 39
> 40     struct Fraction::Impl
> 41     {
> 42         bool                        valid;
> 43         boost::rational<sal_Int64>  value;
> 44
>>>>      CID 1358589:  Uninitialized members  (UNINIT_CTOR)
>>>>      Non-static class member "valid" is not initialized in this constructor nor in any functions that it calls.
> 45         Impl() = default;
> 46         Impl(const Impl&) = delete;
> 47         Impl& operator=(const Impl&) = delete;
> 48     };
> 49
> 50     Fraction::Fraction() : mpImpl(new Impl)

FYI: Sent the below to Coverity about the above and similar, that now 
unhelpfully start to crop up.



> To: support at coverity.com
> From: Stephan Bergmann <sbergman at redhat.com>
> Subject: Coverity Scan: False UNINIT_CTOR in defaulted constructor
> Date: Mon, 18 Apr 2016 08:55:55 +0200
>
> (I did not find another way to report this problem with Coverity Scan.
> Both the "Coverity Community" and "Coverity Developer Forums" links at
> <https://scan.coverity.com/about> go to "down for maintenance. We will
> be back in early 2016" pages.)
>
> If you have a C++ struct S with implicitly declared default ctor, Scan
> does not emit any UNINIT_CTOR warnings for S' non-static data members:
>
>    struct S {
>     int x;
>    };
>
> However, if you give it a user-declared defaulted default ctor,
>
>    struct S {
>     int x;
>     S() = default;
>    };
>
> then Scan starts to emit unhelpful UNINIT_CTOR issues, see e.g.
> <https://scan5.coverity.com/reports.htm#v21426/p10276/fileInstanceId=91551340&defectInstanceId=26696003&mergedDefectId=1358589>
> in the LibreOffice code.
>
> It would be great if Scan could be configured to not emit issues in that
> case.


More information about the LibreOffice mailing list