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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2012-04-16 00:00:00         |2021-8-1

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
        <<cleanup_point <<< Unknown tree: expr_stmt
  if (flag)
    {
      (void) tableA[(int) *__gnu_cxx::__normal_iterator<const int*,
std::vector<int> >::operator* (&TARGET_EXPR <D.66535,
__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator++ (&it,
0)>)];
    }
  else
    {
      (void) tableB[(int) *__gnu_cxx::__normal_iterator<const int*,
std::vector<int> >::operator* (&TARGET_EXPR <D.66535,
__gnu_cxx::__normal_iterator<const int*, std::vector<int> >::operator++ (&it,
0)>)];
    } >>>>>;

This is totally bogus.  Basically we did:
(flag ? tableA[*it++] : tableB[*it++]);

But then only the *it++ in one of the branches because we only copied the tree
and do a deap copy.

Reply via email to