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  <ja...@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

Reply via email to