public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r13-3585] c++: pass std attributes to make_call_declarator
@ 2022-11-01  1:24 Jason Merrill
  0 siblings, 0 replies; only message in thread
From: Jason Merrill @ 2022-11-01  1:24 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:af6d747df7e311a6555dda3a75f6724ecc4481bd

commit r13-3585-gaf6d747df7e311a6555dda3a75f6724ecc4481bd
Author: Jason Merrill <jason@redhat.com>
Date:   Mon Oct 31 13:40:10 2022 -0400

    c++: pass std attributes to make_call_declarator
    
    It seems preferable to pass these to the function rather than set them
    separately after the call.
    
    gcc/cp/ChangeLog:
    
            * parser.cc (make_call_declarator): Add std_attrs parm.
            (cp_parser_lambda_declarator_opt): Pass it.
            (cp_parser_direct_declarator): Pass it.

Diff:
---
 gcc/cp/parser.cc | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index 6a5b0652a09..6da32801bab 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -1607,7 +1607,7 @@ clear_decl_specs (cp_decl_specifier_seq *decl_specs)
 
 static cp_declarator *make_call_declarator
   (cp_declarator *, tree, cp_cv_quals, cp_virt_specifiers, cp_ref_qualifier,
-   tree, tree, tree, tree, location_t);
+   tree, tree, tree, tree, tree, location_t);
 static cp_declarator *make_array_declarator
   (cp_declarator *, tree);
 static cp_declarator *make_pointer_declarator
@@ -1780,7 +1780,8 @@ make_ptrmem_declarator (cp_cv_quals cv_qualifiers, tree class_type,
 /* Make a declarator for the function given by TARGET, with the
    indicated PARMS.  The CV_QUALIFIERS apply to the function, as in
    "const"-qualified member function.  The EXCEPTION_SPECIFICATION
-   indicates what exceptions can be thrown.  */
+   indicates what exceptions can be thrown.  STD_ATTRS contains
+   attributes that appertain to the function type. */
 
 cp_declarator *
 make_call_declarator (cp_declarator *target,
@@ -1792,6 +1793,7 @@ make_call_declarator (cp_declarator *target,
 		      tree exception_specification,
 		      tree late_return_type,
 		      tree requires_clause,
+		      tree std_attrs,
 		      location_t parens_loc)
 {
   cp_declarator *declarator;
@@ -1816,6 +1818,8 @@ make_call_declarator (cp_declarator *target,
   else
     declarator->parameter_pack_p = false;
 
+  declarator->std_attributes = std_attrs;
+
   return declarator;
 }
 
@@ -11684,8 +11688,8 @@ cp_parser_lambda_declarator_opt (cp_parser* parser, tree lambda_expr)
 				       exception_spec,
 				       return_type,
 				       trailing_requires_clause,
+				       std_attrs,
 				       UNKNOWN_LOCATION);
-    declarator->std_attributes = std_attrs;
 
     fco = grokmethod (&return_type_specs,
 		      declarator,
@@ -23264,8 +23268,8 @@ cp_parser_direct_declarator (cp_parser* parser,
 						     exception_specification,
 						     late_return,
 						     requires_clause,
+						     attrs,
 						     parens_loc);
-		  declarator->std_attributes = attrs;
 		  declarator->attributes = gnu_attrs;
 		  /* Any subsequent parameter lists are to do with
 		     return type, so are not those of the declared

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-11-01  1:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-01  1:24 [gcc r13-3585] c++: pass std attributes to make_call_declarator Jason Merrill

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).