From 596334fa040094c772965ff1998d171fe3e00348 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 15 Jan 2020 14:45:24 -0500 Subject: PR c++/93257 - consteval void function. A prvalue can have void type, and if it doesn't do anything prohibited in a constant expression, it's vacuously constant. * constexpr.c (verify_constant): Allow void_node. --- gcc/cp/constexpr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/cp/constexpr.c') diff --git a/gcc/cp/constexpr.c b/gcc/cp/constexpr.c index bb126a9..17b04d7 100644 --- a/gcc/cp/constexpr.c +++ b/gcc/cp/constexpr.c @@ -2609,7 +2609,8 @@ static bool verify_constant (tree t, bool allow_non_constant, bool *non_constant_p, bool *overflow_p) { - if (!*non_constant_p && !reduced_constant_expression_p (t)) + if (!*non_constant_p && !reduced_constant_expression_p (t) + && t != void_node) { if (!allow_non_constant) error ("%q+E is not a constant expression", t); -- cgit v1.1