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

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu.org
            Summary|missing -Wuninitialized     |missing -Wuninitialized
                   |passing structs by value    |passing structs by value
                   |                            |(VOPS)

--- Comment #1 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
This uses VOPS, so it probably needs new code to handle that.  Perhaps PR41953

h ()
{
  struct S s;

  <bb 2> [local count: 1073741824]:
  [./example.cpp:7:3] # DEBUG BEGIN_STMT
  [./example.cpp:8:3] # DEBUG BEGIN_STMT
  [./example.cpp:8:6] # .MEM_2 = VDEF <.MEM_1(D)>
  fs (s); [tail call]
  # .MEM_3 = VDEF <.MEM_2>
  s ={v} {CLOBBER};
  [./example.cpp:9:1] # VUSE <.MEM_3>
  return;
}

There is no difference in the logs that explain why g() is treated differently,
so that must be a special case for const* parameters.

Reply via email to