diff gcc/testsuite/g++.dg/cpp1y/constexpr-88983.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc/testsuite/g++.dg/cpp1y/constexpr-88983.C	Thu Feb 13 11:34:05 2020 +0900
@@ -0,0 +1,71 @@
+// 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, "");