Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp1y/constexpr-86767.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line source
// PR c++/86767 // { dg-do compile { target c++14 } } constexpr int fn0 () noexcept { int r = 0; for (int i = 0; i < 10; ++i) { continue; r++; for (int j = 0; j < 10; ++j ) { } } return r; } static_assert (fn0 () == 0, ""); constexpr int fn1 () noexcept { int r = 0; for (int i = 0; i < 10; ++i) for (int j = 0; j < 10; ++j) { continue; r++; } return r; } static_assert (fn1 () == 0, ""); constexpr int fn2 () noexcept { int r = 0; for (int i = 0; i < 10; ++i) { continue; r++; } return r; } static_assert (fn2 () == 0, ""); constexpr int fn3 () noexcept { int r = 0; for (int i = 0; i < 10; ++i) { continue; r++; while (1) { } } return r; } static_assert (fn3 () == 0, ""); constexpr int fn4 () noexcept { for (int i = 0; i < 10; ++i) { switch (i) { case 5: return i; default: continue; } while (1) { } } return 0; } static_assert (fn4 () == 5, ""); constexpr int fn5 () noexcept { for (int i = 0; i < 10; ++i) { switch (i) { case 0: case 1: case 2: case 3: case 4: continue; default: return i; } while (1) { } } return 0; } static_assert (fn5 () == 5, ""); constexpr int fn6 () noexcept { int r = 0; for (int i = 0; i < 10; ++i) { continue; for (int j = 0; j < 10; ++j ) r++; } return r; } static_assert (fn6 () == 0, "");