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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[12/13/14 Regression]       |Spurious "potential null
                   |Spurious "potential null    |pointer dereference" in
                   |pointer dereference" in     |shared_ptr_base.h with
                   |shared_ptr_base.h with      |"-O1"
                   |"-O1"                       |
          Component|libstdc++                   |tree-optimization
   Target Milestone|12.3                        |---

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This has nothing to do with libstd++, a similar warning can happen with:
struct Base {
        virtual ~Base() = default;
        int b = 0;
};

struct Derived : public Base {};

bool empty(Base* var) {
        auto* var_ref = dynamic_cast<Derived*>(var);
        if (var_ref->b) return false;
        return true;
}

Reply via email to