https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104475

--- Comment #23 from Richard Biener <rguenth at gcc dot gnu.org> ---
Interestingly doing

void QFutureInterfaceBase::setThrottled(bool enable)
{   
    if (&d->m_mutex == nullptr)
      __builtin_unreachable ();
    QMutexLocker lock(&d->m_mutex);

will avoid the diagnostic but instead complains

qfutureinterface.cpp:67:21:warning: the address of
'QFutureInterfaceBasePrivate::m_mutex' will never be NULL [-Waddress]

(that's without the re-ordering).  So the C++ frontend already knows this
but doesn't transfer it to the middle-end.  Maybe we want something
like ADDR_EXPR_NONZERO on the built ADDR_EXPR?

Reply via email to