view gcc/testsuite/g++.dg/cpp2a/consteval13.C @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents
children
line wrap: on
line source

// { dg-do compile }
// { dg-options "-std=c++2a" }

consteval int bar () { return 42; }
consteval int baz () { return 1; }
typedef int (*fnptr) ();
consteval fnptr quux () { return bar; }

void
foo ()
{
   auto qux = [] (fnptr a = quux ()) consteval { return a (); };
   constexpr auto c = qux (baz);	// { dg-error "28:taking address of an immediate function" }
   constexpr auto d = qux (bar);	// { dg-error "28:taking address of an immediate function" }
   static_assert (c == 1);
   static_assert (d == 42);
}