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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
If we just want to avoid the warning in cases like that (there is nothing wrong
in the testcases themselves, the warning just warns about an implementation
detail that a normally uninitialized variable will be really uninitialized even
despite the -ftrivial-auto-var-init= option), then
maybe_warn_switch_unreachable
already has:
      if (gimple_code (stmt) == GIMPLE_GOTO
          && TREE_CODE (gimple_goto_dest (stmt)) == LABEL_DECL
          && DECL_ARTIFICIAL (gimple_goto_dest (stmt)))
        /* Don't warn for compiler-generated gotos.  These occur
           in Duff's devices, for example.  */;
and so for flag_auto_var_init > AUTO_INIT_UNINITIALIZED perhaps we could also
avoid warnings on:
1) call to .DEFERRED_INIT
2) call to __builtin_clear_padding if the second argument is present and
non-zero
3) I guess we would need not to warn on a gimple assign store right after the
.DEFERRED_INIT call that has the lhs of .DEFERRED_INIT as rhs
anything else?

Reply via email to