[C++ PATCH] Add __is_aggregate trait builtin (PR libstdc++/80251)

Jeff Law law@redhat.com
Fri Mar 31 06:27:00 GMT 2017


On 03/30/2017 02:34 PM, Jakub Jelinek wrote:
> Hi!
>
> As discussed with Jon, libstdc++ needs a GCC builtin in order to implement
> this easily.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
>
> 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
>
> 	PR libstdc++/80251
> c-family/
> 	* c-common.h (enum rid): Add RID_IS_AGGREGATE.
> 	* c-common.c (c_common_reswords): Add __is_aggregate trait.
> 	* cp-tree.h (enum cp_trait_kind): Add CPTK_IS_AGGREGATE.
> 	* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
> 	CPTK_IS_AGGREGATE.
> 	* semantics.c (trait_expr_value): Handle CPTK_IS_AGGREGATE.
> 	Remove extraneous parens.
> 	(finish_trait_expr): Handle CPTK_IS_AGGREGATE.
> 	* parser.c (cp_parser_primary_expression): Handle RID_IS_AGGREGATE.
> 	(cp_parser_trait_expr): Likewise.
> testsuite/
> 	* g++.dg/ext/is_aggregate.C: New test.
OK.

jeff



More information about the Libstdc++ mailing list