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

Richard Hazlewood <gcc at hazlewoods dot net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |gcc at hazlewoods dot net

--- Comment #7 from Richard Hazlewood <gcc at hazlewoods dot net> ---
Here's one that slipped through our net, that ought to have been obvious to the
human reviewers...

#include <iostream>
#include <cstdlib>

void fn(bool const b)
{
  if (b)
  {
    std::cout << "side effect 1\n";
  }
  else if (!b)
  {
    std::cout << "side effect 2\n";
  }
  else
  {
    std::cout << "Some important thing\n";
  }
}

int main()
{
  for (auto n = 10; n--; )
    fn(rand() & 1);
}

====
g++ 15.1
-Wall -Wextra -pedantic -std=c++20
It does optimize away the unreachable code with -O2.
(Not sure if it's just another variation of the OP, but didn't want to expand
the unreachable issues.)

Reply via email to