[Libreoffice-commits] core.git: coverity#1323754 we apparently can survive std::abort for a while

Stephan Bergmann sbergman at redhat.com
Fri Sep 11 02:25:29 PDT 2015


On 09/11/2015 10:47 AM, Caolán McNamara wrote:
> commit 044deb37ae308c10a5bc0e976de40e257caa9a4e
> Author: Caolán McNamara <caolanm at redhat.com>
> Date:   Fri Sep 11 09:40:15 2015 +0100
>
>      coverity#1323754 we apparently can survive std::abort for a while
>
>      so try and suppress this warning
>
>      Change-Id: I096352af0116f1ba0911cc201eb884267095a797
>
> diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx
> index 014a5ad..0e0e10c 100644
> --- a/vcl/source/opengl/OpenGLHelper.cxx
> +++ b/vcl/source/opengl/OpenGLHelper.cxx
> @@ -554,6 +554,7 @@ void OpenGLWatchdogThread::execute()
>                       nUnchanged = 0;
>                       std::abort();
>                   }
> +                // coverity[dead_error_line] - we might have caught SIGABRT and failed to exit yet
>                   bAbortFired = true;
>               }
>           }

What am I missing here?  abort is guaranteed to not return to its caller 
(even if there is a handler for SIGABRT).  So, like Coverity, I fail to 
see how that line can ever be reached (and bAbortFired, of automatic 
storage during in OpenGLWatchdogThread::execute, ever be true).

Can it be that what 
<http://cgit.freedesktop.org/libreoffice/core/commit/?id=daa869222edc3aded82f0fc3e73f126b6cfd08ad> 
"http://cgit.freedesktop.org/libreoffice/core/commit/?id=daa869222edc3aded82f0fc3e73f126b6cfd08ad" 
really wanted to do is make bAbortFired static, and set it to true 
/before/ calling std::abort()?


More information about the LibreOffice mailing list