https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85060

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu.org
      Known to fail|                            |8.0.1

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
It started to be rejected with r236221

            Fix type-dependence and the current instantiation.

            PR c++/10200
            PR c++/69753
            * pt.c (tsubst_decl): Use uses_template_parms.
            (instantiate_template_1): Handle non-dependent calls in templates.
            (value_dependent_expression_p): Handle BASELINK, FUNCTION_DECL.
            (type_dependent_expression_p): Only consider innermost template
args.
            (dependent_template_arg_p): Check enclosing class of a template
here.
            (dependent_template_p): Not here.
            (type_dependent_object_expression_p): New.
            * typeck.c (finish_class_member_access_expr): Use it.
            * parser.c (cp_parser_postfix_expression): Use it.
            (cp_parser_postfix_dot_deref_expression): Use it.  Use comptypes
            to detect the current instantiation.
            (cp_parser_lookup_name): Really implement DR 141.
            * search.c (lookup_field_r): Prefer a dependent using-declaration.
            (any_dependent_bases_p): Split out from...
            * name-lookup.c (do_class_using_decl): ...here.
            * call.c (build_new_method_call_1): Use it.
            * semantics.c (finish_call_expr): 'this' doesn't make a call
dependent.
            * tree.c (non_static_member_function_p): Remove.
            * typeck2.c (build_x_arrow): Use dependent_scope_p.


Then was accepted again with r258116:

            PR c++/84582
            * semantics.c (force_paren_expr): Create a PAREN_EXPR when in
            a template.
            (maybe_undo_parenthesized_ref): Unwrap PAREN_EXPR.
            * typeck2.c (store_init_value): Call fold_non_dependent_expr
instead
            of instantiate_non_dependent_expr.
            * tree.c (lvalue_kind): Handle PAREN_EXPR like NON_DEPENDENT_EXPR.

            * g++.dg/cpp1y/auto-fn15.C: Extend testing.
            * g++.dg/cpp1z/static1.C: New test.
            * g++.dg/template/static37.C: New test.

Reply via email to