view gcc/testsuite/g++.dg/warn/Wreturn-type-8.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
line wrap: on
line source

// PR c++/54046
// { dg-do compile }
// { dg-options "-O0 -Wall" }

void foo (void) __attribute__((noreturn));

struct A
{
  ~A () {}
};

bool
check1 (int x)
{
  A z;
  switch (x)
    {
    case 0:
      return false;
    default:
      throw "X";
      break;
    }
}

bool
check2 (int x)
{
  A z;
  switch (x)
    {
    case 0:
      return false;
    default:
      foo ();
      break;
    }
}

bool
check3 (int x)
{
  switch (x)
    {
    case 0:
      return false;
    default:
      throw "X";
      break;
    }
}

bool
check4 (int x)
{
  switch (x)
    {
    case 0:
      return false;
    default:
      foo ();
      break;
    }
}

bool
check5 (int x)
{
  A z;
  switch (x)
    {
    case 0:
      return false;
    default:
      throw "X";
    }
}

bool
check6 (int x)
{
  A z;
  switch (x)
    {
    case 0:
      return false;
    default:
      foo ();
    }
}