This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/11548] [3.4 regression] Forwarding default template args ICEs


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11548


pinskia at physics dot uc dot edu changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2003-07-16 16:01:04
               date|                            |


------- Additional Comments From pinskia at physics dot uc dot edu  2003-07-16 16:01 -------
I can confirm this on the mainline (20030715).
Looks like an other fall out from Mark's patch on 2003-07-08
: Search converges between 2003-07-08-trunk (#330) and 2003-07-09-trunk (#331). 
2003-07-08  Mark Mitchell

        * cp-tree.def (NON_DEPENDENT_EXPR): New node.
        * cp-tree.h (build_call_from_tree): Remove.
        (build_member_call): Likewise.
        (dependent_template_arg_p): Remove.
        (any_dependent_template_arguments_p): New function.
        (dependent_template_id_p): Likewise.
        (any_type_dependent_arguments_p): Likewise.
        (build_non_dependent_expr): Likewise.
        (build_non_dependent_args): Likewise.
        (build_x_compound_expr): Adjust prototype.
        * call.c (build_new_method_call): Handle non-dependent expressions
        correctly.
        * decl2.c (grok_array_decl): Likewise.
        (build_offset_ref_call_from_tree): Likewise.
        (build_call_from_tree): Remove.
        * error.c (dump_decl): Handle NON_DEPENDENT_EXPR.
        (dump_expr): Likewise.
        * init.c (build_member_call): Remove.
        * mangle.c (write_expression): Update handling for template-ids.
        * parser.c (cp_parser_primary_expression): Use
        any_dependent_template_arguments_p.  Update constant-expression
        handling.
        (cp_parser_postfix_expression): Use
        any_type_dependent_arguments_p.  Simplify call processing.
        (cp_parser_unary_expression): Simplify.
        (cp_parser_expression): Adjust for changes to
        build_x_compound_expr.
        (cp_parser_template_argument): Implement standard-conforming
        parsing of non-type template arguments.
        (cp_parser_direct_declarator): Use
        cp_parser_fold_non_dependent_expr.
        (cp_parser_fold_non_dependent_expr): New function.
        (cp_parser_next_token_ends_template_argument_p): Likewise.
        * pt.c (convert_template_argument): Do not call
        maybe_fold_nontype_arg.
        (tsubst_baselink): Likewise.
        (tsubst_copy_and_build): Share common code.  Make sizeof/alignof
        processing work correctly for non-dependent expressions.  Adjust
        handling of COMPOUND_EXPR.  Simplify call processing.
        (value_dependent_expression_p): Deal with functional casts and
        sizeof/alignof correctly.
        (type_dependent_expression_p): Handle overloaded functions.
        (any_type_dependent_arguments_p): New function.
        (any_dependent_template_arguments_p): Likewise.
        (dependent_template_p): Treat SCOPE_REFs as dependent.
        (dependent_template_id_p): Simplify.
        (build_non_dependent_expr): New function.
        (build_non_dependent_args): Likewise.
        * semantics.c (finish_stmt_expr): Don't make dependent
        statement-expresions have void type.
        (finish_call_expr): Handle non-dependent expressions
        correctly.
        * tree.c (lvalue_p_1): Treat NON_DEPENDENT_EXPRs as lvalues.
        * typeck.c (cxx_sizeof_or_alignof_type): Give the expression
        type size_t, even in templates.
        (expr_sizeof): Likewise.
        (finish_class_member_access_expr): Handle non-dependent expressions
        correctly.
        (build_x_indirect_ref): Likewise.
        (build_x_binary_op): Likewise.
        (build_x_unary_op): Likewise.
        (build_x_conditional_expr): Likewise.
        (build_x_compound_expr): Likewise.
        * typeck2.c (build_x_arrow): Likewise.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]