// PR debug/95080
// { dg-do compile }
// { dg-options "-Og -fcse-follow-jumps -fnon-call-exceptions -fcompare-debug" }
char *a;
void baz ();
static inline bool
bar ()
{
  int j = a[0] - 1;
  switch (j)
    {
    case 0:
    case 2:
      return true;
    default:
      return false;
    }
}
static inline bool
foo ()
{
  if (bar ())
    baz ();
  return 0;
}
struct S
{
  int h;
   ~S ();
};
S::~S ()
{
  if (a[0] == 0)
    foo () != h;
}