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

--- Comment #4 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
This patch seems to fix it, but I'm not yet sure if it's the correct fix.

diff --git a/gcc/analyzer/region-model.cc b/gcc/analyzer/region-model.cc
index f8f19769258..9b42e9e983d 100644
--- a/gcc/analyzer/region-model.cc
+++ b/gcc/analyzer/region-model.cc
@@ -843,6 +843,10 @@ region_model::check_for_poison (const svalue *sval,

   if (const poisoned_svalue *poisoned_sval = sval->dyn_cast_poisoned_svalue
())
     {
+      /* Ignore empty types.  */
+      if (sval->get_type () && is_empty_type (sval->get_type ()))
+       return sval;
+
       /* If we have an SSA name for a temporary, we don't want to print
         '<unknown>'.
         Poisoned values are shared by type, and so we can't reconstruct

Reply via email to