diff --git a/gcc/analyzer/sm-malloc.cc b/gcc/analyzer/sm-malloc.cc index 90d1da14586..12b2383e4a7 100644 --- a/gcc/analyzer/sm-malloc.cc +++ b/gcc/analyzer/sm-malloc.cc @@ -183,7 +183,9 @@ public: if (const region_svalue *ptr = sval->dyn_cast_region_svalue ()) { const region *reg = ptr->get_pointee (); - if (reg->get_kind () == RK_STRING) + const region *base_reg = reg->get_base_region (); + if (base_reg->get_kind () == RK_DECL + || base_reg->get_kind () == RK_STRING) return m_non_heap; } return m_start;