view gcc/testsuite/g++.dg/cpp1y/constexpr-88983.C @ 158:494b0b89df80 default tip

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

// PR c++/88983
// { dg-do compile { target c++14 } }

constexpr int
fn1 (int ay)
{
  switch (ay)
    {
      if (1)
        {
          case 1:
            return 1;
        }
      else
        {
          default:;
        }
    }

  return 0;
}

constexpr int
fn2 (int ay)
{
  switch (ay)
    {
      if (1)
        {
          case 1:
	    break;
        }
      else
        {
          default:;
        }
    }

  return 0;
}

constexpr int
fn3 (int ay)
{
  int i = 0;
  while (i++ < 100)
    {
      if (i == 1)
	return 1;
      switch (ay)
	{
	  if (1)
	    {
	      case 1:
		continue;
	    }
	  else
	    {
	      default:;
	      return -1;
	    }
	}
      return -1;
    }

  return -1;
}

static_assert (fn1 (1) == 1, "");
static_assert (fn2 (1) == 0, "");
static_assert (fn3 (1) == 1, "");