From: Jason Merrill Date: Tue, 28 Jan 2025 22:46:59 +0000 (-0500) Subject: c++: 'requires' diagnostic before C++20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47b62be9cace0e2e124650f331788d52ffd5fb25;p=thirdparty%2Fgcc.git c++: 'requires' diagnostic before C++20 We were giving a generic "not declared" error for a requires-expression without concepts enabled; we can do better. gcc/cp/ChangeLog: * lex.cc (unqualified_name_lookup_error): Handle 'requires' better. --- diff --git a/gcc/cp/lex.cc b/gcc/cp/lex.cc index c12b084aad9..12af81ed078 100644 --- a/gcc/cp/lex.cc +++ b/gcc/cp/lex.cc @@ -749,6 +749,9 @@ unqualified_name_lookup_error (tree name, location_t loc) if (IDENTIFIER_ANY_OP_P (name)) error_at (loc, "%qD not defined", name); + else if (!flag_concepts && name == ridpointers[(int)RID_REQUIRES]) + error_at (loc, "% only available with %<-std=c++20%> or " + "%<-fconcepts%>"); else { if (!objc_diagnose_private_ivar (name))