view gcc/testsuite/g++.dg/warn/Wreturn-type-8.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +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 ();
    }
}