2007-03-11 04:07:59 +01:00
|
|
|
|
2007-03-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/30274
|
|
|
|
|
* cp-tree.h (unlowered_expr_type): New function.
|
|
|
|
|
* typeck.c (is_bitfield_expr_with_lowered_type): Handle
|
|
|
|
|
COMPOUND_EXPR, MODIFY_EXPR, and SAVE_EXPR.
|
|
|
|
|
(unlowered_expr_type): New function.
|
|
|
|
|
(build_unary_op): Disallow predecrements of bool bitfields.
|
|
|
|
|
* call.c (build_conditional_expr): Use unlowered_expr_type.
|
|
|
|
|
* pt.c (type_unification_real): Likewise.
|
|
|
|
|
|
re PR c++/20599 (variadic template support)
2007-03-09 Douglas Gregor <doug.gregor@gmail.com>
PR c++/20599
* typeck.c (check_return_expr): Check for bare parameter packs.
(comptypes): Compare template parameter packs and
type pack expansions.
* decl.c (grokdeclarator): Deal with the declaration of function
parameter packs.
(grokparms): Verify that the (optional) function parameter pack is
at the end of the parameter list.
(xref_basetypes): Handle pack expansions in the base class.
(cp_tree_node_structure): Handle ARGUMENT_PACK_SELECT.
* cp-tree.def (TYPE_ARGUMENT_PACK): New.
(NONTYPE_ARGUMENT_PACK): New.
(TYPE_PACK_EXPANSION): New.
(EXPR_PACK_EXPANSION): New.
(ARGUMENT_PACK_SELECT): New.
* cp-objcp-common.c (cp_tree_size): Compute size of
(NON)TYPE_ARGUMENT_PACK, (TYPE|EXPR)_PACK_EXPANSION, and
ARGUMENT_PACK_SELECT.
* error.c (dump_template_argument): Print template argument packs.
(dump_template_argument_list): Ditto.
(dump_template_parameter): Dump `...' for template type parameter
packs.
(dump_type): Dump TYPE_PACK_EXPANSION nodes.
(dump_parameters): Print function parameter packs.
(dump_template_parms): Print template argument packs.
(dump_expr): Dump EXPR_PACK_EXPANSION nodes.
(maybe_warn_variadic_templates): New.
* operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION.
* tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
CAST_EXPR.
* mangle.c (write_type): Mangle TYPE_PACK_EXPANSION.
(write_template_arg): Write argument packs as separate arguments.
* cp-tree.h (struct template_parm_index_s): Add flag that
indicates that the template parameter is actually a parameter
pack.
(struct tree_argument_pack_select): New.
(enum cp_tree_node_structure_enum): Add TS_CP_ARGUMENT_PACK_SELECT.
(union lang_tree_node): Add argument_pack_select.
(FUNCTION_PARAMETER_PACK_P): New.
(PACK_EXPANSION_P): New.
(PACK_EXPANSION_PATTERN): New.
(SET_PACK_EXPANSION_PATTERN): New.
(PACK_EXPANSION_PARAMETER_PACKS): New.
(ARGUMENT_PACK_P): New.
(ARGUMENT_PACK_ARGS): New.
(SET_ARGUMENT_PACK_ARGS): New.
(ARGUMENT_PACK_INCOMPLETE_P): New.
(ARGUMENT_PACK_EXPLICIT_ARGS): New.
(TEMPLATE_PARM_PARAMETER_PACK): New.
(TEMPLATE_TYPE_PARAMETER_PACK): New.
(ARGUMENT_PACK_SELECT_FROM_PACK): New.
(ARGUMENT_PACK_SELECT_INDEX): New.
(ARGUMENT_PACK_SELECT_ARG): New.
(struct cp_declarator): Add parameter_pack_p flag.
(maybe_warn_variadic_templates): Declare.
(process_template_parm): Add bool parameter IS_PARAMETER_PACK, to
indicate a template parameter pack.
(uses_parameter_packs): Declare.
(template_parameter_pack_p): Declare.
(template_parms_variadic_p): Declare.
(make_pack_expansion): Declare.
(check_for_bare_parameter_packs): Declare.
* cxx-pretty-print.c (pp_cxx_unary_expression): Print
sizeof... expressions.
(pp_cxx_expression): Print pack expansions and non-type argument
packs.
(pp_cxx_exception_specification): Print pack expansions.
(pp_cxx_direct_declarator): Print ellipsis for parameter packs.
(pp_cxx_ctor_initializer): Print pack expansions.
(pp_cxx_type_id): Print pack expansions.
(pp_cxx_template_argument_list): Print argument packs.
(pp_cxx_template_parameter): Print ellipsis for template parameter
packs.
* pt.c (comp_template_parms): Compare template parameter packs.
(template_parameter_pack_p): New.
(template_parms_variadic_p): New.
(template_args_variadic_p): New.
(make_ith_pack_parameter_name): New.
(struct find_parameter_pack_data): New.
(find_parameter_packs_r): New.
(uses_parameter_packs): New.
(make_pack_expansion): New.
(check_for_bare_parameter_packs): New.
(expand_template_argument_pack): New.
(reduce_template_parm_level): Propagate parameter pack flag.
(process_template_parm): Add is_parameter_pack parameter to state
when the parameter is actually a parameter pack. Create template
parameter packs when is_parameter_pack is true.
(current_template_args): The argument for a template parameter
pack is an argument pack containing a single pack expansion.
(process_partial_specialization): When checking that non-type
argument expressions do not involve template parameters, loop over
the arguments in argument packs separately.
(push_template_decl_real): Check that the type of the declaration
does not have any bare parameter packs. Check that primary
templates have no more than one parameter pack, and that it comes
at the end of the template parameter list.
(convert_template_argument): Handle coercions for pack expansion
expressions by coercing the pattern then rebuilding the expansion.
(coerce_template_parms): When coercing the arguments for a
variadic template, pack "extra" arguments into an argument pack.
(coerce_template_template_parms): Cannot coerce between parameter
packs and non-pack parameters.
(template_args_equal): Compare PACK_EXPANSION_P expressions.
(comp_template_args): Expand all template arguments packs before
comparing template argument lists.
(mangle_class_name_for_template): Make argument packs as separate
template arguments.
(for_each_template_parm_r): No need to handle BASELINK.
(instantiate_class_template): Handle pack expansions in the base
class list.
(tsubst_pack_expansion): New.
(tsubst_template_args): Handle substitutions of argument packs and
pack expansion into template argument lists.
(tsubst_decl): Expand function parameter packs into separate
function parameters.
(tsubst_arg_types): Expand a type pack expansion into separate
argument types.
(tsubst_exception_specification): Handle pack expansions in
exception specifiers.
(tsubst): See through ARGUMENT_PACK_SELECT arguments when
replacing a template parameter with its argument. If we encounter
a substitution for an argument pack, just return the parameter
itself.
(tsubst_copy): sizeof(X...) returns the number of elements in
parameter pack X. See through ARGUMENT_PACK_SELECT when the
PARM_DECL is a parameter pack.
(tsubst_expr): Expression pack expansions and argument packs
cannot show up here; they will all be handled through function
calls, sizeof, and template argument lists.
(tsubst_copy_and_build): sizeof(X...) returns the number of
elements in parameter pack X. Handle pack expansions in TREE_LIST
and CONSTRUCTOR nodes.
(fn_type_unification): Handle "incomplete" explicit template
argument lists that specify some of the arguments for a template
parameter pack.
(type_unification_real): Unify arguments against pack expansions.
(template_parm_level_and_index): New, helper function.
(unify_pack_expansion): New.
(unify): Unify argument packs on an argument-by-argument basis,
handling variadic argument packs as well.
(more_specialized_fn): Handle unification of function parameter
packs. All things being equal, prefer non-variadic function
templates to variadic function templates.
(more_specialized_class): Prefer the variadic class template
partial specialization that binds fewer arguments to a parameter
pack.
(regenerate_decl_from_template): Expand function parameter packs
into separate parameters.
(instantiate_decl): Ditto.
(tsubst_initializer_list): Handle pack expansions for base-class
initializers.
(dependent_type_p_r): Determine dependent types in argument packs
and pack expansions.
(value_dependent_expression_p): Determine value-dependence of
non-type argument packs.
(dependent_template_arg_p): Handle argument packs.
* semantics.c (finish_cond): Check for bare parameter packs.
(finish_expr_stmt): Ditto.
(finish_for_expr): Ditto.
(finish_switch_cond): Ditto.
(finish_mem_initializers): Ditto.
* name-lookup.c (arg_assoc_type): Handle pack expansions and
argument packs.
* decl2.c (cp_build_parm_decl): Mark function parameter packs.
* parser.c (make_declarator): Declarator is not an expansion.
(make_pointer_declarator): Transfer parameter pack flag to outer
declarator.
(make_reference_declarator): Ditto.
(make_ptrmem_declarator): Ditto.
(make_call_declarator): Ditto.
(make_array_declarator): Ditto.
(cp_parser_postfix_expression): Allow pack expansion expressions
in the argument list for a call expression.
(cp_parser_parenthesized_expression_list): Add new parameter
ALLOW_EXPANSION_P. When true, parse the ellipsis to mean "expand
into separate arguments."
(cp_parser_new_placement): Allow pack expansion expressions.
(cp_parser_new_initializer): Ditto.
(cp_parser_mem_initializer_list): Allow ellipsis to create a
base-class initializer expansion.
(cp_parser_mem_initializer): Ditto.
(cp_parser_template_parameter_list): Keep track of whether the
template parameter is a template parameter pack.
(cp_parser_template_parameter): Parse the ellipsis to indicate a
template parameter pack.
(cp_parser_type_parameter): Ditto.
(cp_parser_template_argument_list): Parse the ellipsis to indicate
a pack expansion.
(cp_parser_direct_declarator): Parse the ellipsis to indicate that
this declarator is a parameter pack.
(cp_parser_parameter_declaration): The ellipsis does not end the
parameter declaration, because it might be a parameter pack. Parse
the ellipsis to indicate a parameter pack.
(cp_parser_initializer): Allow pack expansions.
(cp_parser_initializer_list): Allow ellipsis to create an
initializer expansion.
(cp_parser_base_clause): Allow ellipsis to create a base specifier
expansion.
(cp_parser_type_id_list): Allow ellipsis to create an exception
specifier expansion.
(cp_parser_attribute_list): Don't allow pack expansions.
(cp_parser_functional_cast): Allow pack expansions.
(cp_parser_sizeof_operand): Allow ellipsis following "sizeof" to
compute the length of a parameter pack.
(cp_parser_next_token_ends_template_argument_p): An ellipsis can
end a template argument.
* tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
CAST_EXPR.
From-SVN: r122788
2007-03-10 02:58:58 +01:00
|
|
|
|
2007-03-09 Douglas Gregor <doug.gregor@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20599
|
|
|
|
|
* typeck.c (check_return_expr): Check for bare parameter packs.
|
|
|
|
|
(comptypes): Compare template parameter packs and
|
|
|
|
|
type pack expansions.
|
|
|
|
|
* decl.c (grokdeclarator): Deal with the declaration of function
|
|
|
|
|
parameter packs.
|
|
|
|
|
(grokparms): Verify that the (optional) function parameter pack is
|
|
|
|
|
at the end of the parameter list.
|
|
|
|
|
(xref_basetypes): Handle pack expansions in the base class.
|
|
|
|
|
(cp_tree_node_structure): Handle ARGUMENT_PACK_SELECT.
|
|
|
|
|
* cp-tree.def (TYPE_ARGUMENT_PACK): New.
|
|
|
|
|
(NONTYPE_ARGUMENT_PACK): New.
|
|
|
|
|
(TYPE_PACK_EXPANSION): New.
|
|
|
|
|
(EXPR_PACK_EXPANSION): New.
|
|
|
|
|
(ARGUMENT_PACK_SELECT): New.
|
|
|
|
|
* cp-objcp-common.c (cp_tree_size): Compute size of
|
|
|
|
|
(NON)TYPE_ARGUMENT_PACK, (TYPE|EXPR)_PACK_EXPANSION, and
|
|
|
|
|
ARGUMENT_PACK_SELECT.
|
|
|
|
|
* error.c (dump_template_argument): Print template argument packs.
|
|
|
|
|
(dump_template_argument_list): Ditto.
|
|
|
|
|
(dump_template_parameter): Dump `...' for template type parameter
|
|
|
|
|
packs.
|
|
|
|
|
(dump_type): Dump TYPE_PACK_EXPANSION nodes.
|
|
|
|
|
(dump_parameters): Print function parameter packs.
|
|
|
|
|
(dump_template_parms): Print template argument packs.
|
|
|
|
|
(dump_expr): Dump EXPR_PACK_EXPANSION nodes.
|
|
|
|
|
(maybe_warn_variadic_templates): New.
|
|
|
|
|
* operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION.
|
|
|
|
|
* tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
|
|
|
|
|
NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
|
|
|
|
|
CAST_EXPR.
|
|
|
|
|
* mangle.c (write_type): Mangle TYPE_PACK_EXPANSION.
|
|
|
|
|
(write_template_arg): Write argument packs as separate arguments.
|
|
|
|
|
* cp-tree.h (struct template_parm_index_s): Add flag that
|
|
|
|
|
indicates that the template parameter is actually a parameter
|
|
|
|
|
pack.
|
|
|
|
|
(struct tree_argument_pack_select): New.
|
|
|
|
|
(enum cp_tree_node_structure_enum): Add TS_CP_ARGUMENT_PACK_SELECT.
|
|
|
|
|
(union lang_tree_node): Add argument_pack_select.
|
|
|
|
|
(FUNCTION_PARAMETER_PACK_P): New.
|
|
|
|
|
(PACK_EXPANSION_P): New.
|
|
|
|
|
(PACK_EXPANSION_PATTERN): New.
|
|
|
|
|
(SET_PACK_EXPANSION_PATTERN): New.
|
|
|
|
|
(PACK_EXPANSION_PARAMETER_PACKS): New.
|
|
|
|
|
(ARGUMENT_PACK_P): New.
|
|
|
|
|
(ARGUMENT_PACK_ARGS): New.
|
|
|
|
|
(SET_ARGUMENT_PACK_ARGS): New.
|
|
|
|
|
(ARGUMENT_PACK_INCOMPLETE_P): New.
|
|
|
|
|
(ARGUMENT_PACK_EXPLICIT_ARGS): New.
|
|
|
|
|
(TEMPLATE_PARM_PARAMETER_PACK): New.
|
|
|
|
|
(TEMPLATE_TYPE_PARAMETER_PACK): New.
|
|
|
|
|
(ARGUMENT_PACK_SELECT_FROM_PACK): New.
|
|
|
|
|
(ARGUMENT_PACK_SELECT_INDEX): New.
|
|
|
|
|
(ARGUMENT_PACK_SELECT_ARG): New.
|
|
|
|
|
(struct cp_declarator): Add parameter_pack_p flag.
|
|
|
|
|
(maybe_warn_variadic_templates): Declare.
|
|
|
|
|
(process_template_parm): Add bool parameter IS_PARAMETER_PACK, to
|
|
|
|
|
indicate a template parameter pack.
|
|
|
|
|
(uses_parameter_packs): Declare.
|
|
|
|
|
(template_parameter_pack_p): Declare.
|
|
|
|
|
(template_parms_variadic_p): Declare.
|
|
|
|
|
(make_pack_expansion): Declare.
|
|
|
|
|
(check_for_bare_parameter_packs): Declare.
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_unary_expression): Print
|
|
|
|
|
sizeof... expressions.
|
|
|
|
|
(pp_cxx_expression): Print pack expansions and non-type argument
|
|
|
|
|
packs.
|
|
|
|
|
(pp_cxx_exception_specification): Print pack expansions.
|
|
|
|
|
(pp_cxx_direct_declarator): Print ellipsis for parameter packs.
|
|
|
|
|
(pp_cxx_ctor_initializer): Print pack expansions.
|
|
|
|
|
(pp_cxx_type_id): Print pack expansions.
|
|
|
|
|
(pp_cxx_template_argument_list): Print argument packs.
|
|
|
|
|
(pp_cxx_template_parameter): Print ellipsis for template parameter
|
|
|
|
|
packs.
|
|
|
|
|
* pt.c (comp_template_parms): Compare template parameter packs.
|
|
|
|
|
(template_parameter_pack_p): New.
|
|
|
|
|
(template_parms_variadic_p): New.
|
|
|
|
|
(template_args_variadic_p): New.
|
|
|
|
|
(make_ith_pack_parameter_name): New.
|
|
|
|
|
(struct find_parameter_pack_data): New.
|
|
|
|
|
(find_parameter_packs_r): New.
|
|
|
|
|
(uses_parameter_packs): New.
|
|
|
|
|
(make_pack_expansion): New.
|
|
|
|
|
(check_for_bare_parameter_packs): New.
|
|
|
|
|
(expand_template_argument_pack): New.
|
|
|
|
|
(reduce_template_parm_level): Propagate parameter pack flag.
|
|
|
|
|
(process_template_parm): Add is_parameter_pack parameter to state
|
|
|
|
|
when the parameter is actually a parameter pack. Create template
|
|
|
|
|
parameter packs when is_parameter_pack is true.
|
|
|
|
|
(current_template_args): The argument for a template parameter
|
|
|
|
|
pack is an argument pack containing a single pack expansion.
|
|
|
|
|
(process_partial_specialization): When checking that non-type
|
|
|
|
|
argument expressions do not involve template parameters, loop over
|
|
|
|
|
the arguments in argument packs separately.
|
|
|
|
|
(push_template_decl_real): Check that the type of the declaration
|
|
|
|
|
does not have any bare parameter packs. Check that primary
|
|
|
|
|
templates have no more than one parameter pack, and that it comes
|
|
|
|
|
at the end of the template parameter list.
|
|
|
|
|
(convert_template_argument): Handle coercions for pack expansion
|
|
|
|
|
expressions by coercing the pattern then rebuilding the expansion.
|
|
|
|
|
(coerce_template_parms): When coercing the arguments for a
|
|
|
|
|
variadic template, pack "extra" arguments into an argument pack.
|
|
|
|
|
(coerce_template_template_parms): Cannot coerce between parameter
|
|
|
|
|
packs and non-pack parameters.
|
|
|
|
|
(template_args_equal): Compare PACK_EXPANSION_P expressions.
|
|
|
|
|
(comp_template_args): Expand all template arguments packs before
|
|
|
|
|
comparing template argument lists.
|
|
|
|
|
(mangle_class_name_for_template): Make argument packs as separate
|
|
|
|
|
template arguments.
|
|
|
|
|
(for_each_template_parm_r): No need to handle BASELINK.
|
|
|
|
|
(instantiate_class_template): Handle pack expansions in the base
|
|
|
|
|
class list.
|
|
|
|
|
(tsubst_pack_expansion): New.
|
|
|
|
|
(tsubst_template_args): Handle substitutions of argument packs and
|
|
|
|
|
pack expansion into template argument lists.
|
|
|
|
|
(tsubst_decl): Expand function parameter packs into separate
|
|
|
|
|
function parameters.
|
|
|
|
|
(tsubst_arg_types): Expand a type pack expansion into separate
|
|
|
|
|
argument types.
|
|
|
|
|
(tsubst_exception_specification): Handle pack expansions in
|
|
|
|
|
exception specifiers.
|
|
|
|
|
(tsubst): See through ARGUMENT_PACK_SELECT arguments when
|
|
|
|
|
replacing a template parameter with its argument. If we encounter
|
|
|
|
|
a substitution for an argument pack, just return the parameter
|
|
|
|
|
itself.
|
|
|
|
|
(tsubst_copy): sizeof(X...) returns the number of elements in
|
|
|
|
|
parameter pack X. See through ARGUMENT_PACK_SELECT when the
|
|
|
|
|
PARM_DECL is a parameter pack.
|
|
|
|
|
(tsubst_expr): Expression pack expansions and argument packs
|
|
|
|
|
cannot show up here; they will all be handled through function
|
|
|
|
|
calls, sizeof, and template argument lists.
|
|
|
|
|
(tsubst_copy_and_build): sizeof(X...) returns the number of
|
|
|
|
|
elements in parameter pack X. Handle pack expansions in TREE_LIST
|
|
|
|
|
and CONSTRUCTOR nodes.
|
|
|
|
|
(fn_type_unification): Handle "incomplete" explicit template
|
|
|
|
|
argument lists that specify some of the arguments for a template
|
|
|
|
|
parameter pack.
|
|
|
|
|
(type_unification_real): Unify arguments against pack expansions.
|
|
|
|
|
(template_parm_level_and_index): New, helper function.
|
|
|
|
|
(unify_pack_expansion): New.
|
|
|
|
|
(unify): Unify argument packs on an argument-by-argument basis,
|
|
|
|
|
handling variadic argument packs as well.
|
|
|
|
|
(more_specialized_fn): Handle unification of function parameter
|
|
|
|
|
packs. All things being equal, prefer non-variadic function
|
|
|
|
|
templates to variadic function templates.
|
|
|
|
|
(more_specialized_class): Prefer the variadic class template
|
|
|
|
|
partial specialization that binds fewer arguments to a parameter
|
|
|
|
|
pack.
|
|
|
|
|
(regenerate_decl_from_template): Expand function parameter packs
|
|
|
|
|
into separate parameters.
|
|
|
|
|
(instantiate_decl): Ditto.
|
|
|
|
|
(tsubst_initializer_list): Handle pack expansions for base-class
|
|
|
|
|
initializers.
|
|
|
|
|
(dependent_type_p_r): Determine dependent types in argument packs
|
|
|
|
|
and pack expansions.
|
|
|
|
|
(value_dependent_expression_p): Determine value-dependence of
|
|
|
|
|
non-type argument packs.
|
|
|
|
|
(dependent_template_arg_p): Handle argument packs.
|
|
|
|
|
* semantics.c (finish_cond): Check for bare parameter packs.
|
|
|
|
|
(finish_expr_stmt): Ditto.
|
|
|
|
|
(finish_for_expr): Ditto.
|
|
|
|
|
(finish_switch_cond): Ditto.
|
|
|
|
|
(finish_mem_initializers): Ditto.
|
|
|
|
|
* name-lookup.c (arg_assoc_type): Handle pack expansions and
|
|
|
|
|
argument packs.
|
|
|
|
|
* decl2.c (cp_build_parm_decl): Mark function parameter packs.
|
|
|
|
|
* parser.c (make_declarator): Declarator is not an expansion.
|
|
|
|
|
(make_pointer_declarator): Transfer parameter pack flag to outer
|
|
|
|
|
declarator.
|
|
|
|
|
(make_reference_declarator): Ditto.
|
|
|
|
|
(make_ptrmem_declarator): Ditto.
|
|
|
|
|
(make_call_declarator): Ditto.
|
|
|
|
|
(make_array_declarator): Ditto.
|
|
|
|
|
(cp_parser_postfix_expression): Allow pack expansion expressions
|
|
|
|
|
in the argument list for a call expression.
|
|
|
|
|
(cp_parser_parenthesized_expression_list): Add new parameter
|
|
|
|
|
ALLOW_EXPANSION_P. When true, parse the ellipsis to mean "expand
|
|
|
|
|
into separate arguments."
|
|
|
|
|
(cp_parser_new_placement): Allow pack expansion expressions.
|
|
|
|
|
(cp_parser_new_initializer): Ditto.
|
|
|
|
|
(cp_parser_mem_initializer_list): Allow ellipsis to create a
|
|
|
|
|
base-class initializer expansion.
|
|
|
|
|
(cp_parser_mem_initializer): Ditto.
|
|
|
|
|
(cp_parser_template_parameter_list): Keep track of whether the
|
|
|
|
|
template parameter is a template parameter pack.
|
|
|
|
|
(cp_parser_template_parameter): Parse the ellipsis to indicate a
|
|
|
|
|
template parameter pack.
|
|
|
|
|
(cp_parser_type_parameter): Ditto.
|
|
|
|
|
(cp_parser_template_argument_list): Parse the ellipsis to indicate
|
|
|
|
|
a pack expansion.
|
|
|
|
|
(cp_parser_direct_declarator): Parse the ellipsis to indicate that
|
|
|
|
|
this declarator is a parameter pack.
|
|
|
|
|
(cp_parser_parameter_declaration): The ellipsis does not end the
|
|
|
|
|
parameter declaration, because it might be a parameter pack. Parse
|
|
|
|
|
the ellipsis to indicate a parameter pack.
|
|
|
|
|
(cp_parser_initializer): Allow pack expansions.
|
|
|
|
|
(cp_parser_initializer_list): Allow ellipsis to create an
|
|
|
|
|
initializer expansion.
|
|
|
|
|
(cp_parser_base_clause): Allow ellipsis to create a base specifier
|
|
|
|
|
expansion.
|
|
|
|
|
(cp_parser_type_id_list): Allow ellipsis to create an exception
|
|
|
|
|
specifier expansion.
|
|
|
|
|
(cp_parser_attribute_list): Don't allow pack expansions.
|
|
|
|
|
(cp_parser_functional_cast): Allow pack expansions.
|
|
|
|
|
(cp_parser_sizeof_operand): Allow ellipsis following "sizeof" to
|
|
|
|
|
compute the length of a parameter pack.
|
|
|
|
|
(cp_parser_next_token_ends_template_argument_p): An ellipsis can
|
|
|
|
|
end a template argument.
|
|
|
|
|
* tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
|
|
|
|
|
NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
|
|
|
|
|
CAST_EXPR.
|
|
|
|
|
|
2007-03-09 17:16:35 +01:00
|
|
|
|
2007-03-09 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
* cp/call.c (build_new_op): Call warn_logical_operator.
|
|
|
|
|
|
2007-03-08 08:26:43 +01:00
|
|
|
|
2007-03-08 Volker Reichelt <reichelt@netcologne.de>
|
|
|
|
|
|
2007-03-08 08:31:47 +01:00
|
|
|
|
PR c++/30852
|
|
|
|
|
* semantics.c (finish_offsetof): Handle COMPOUND_EXPR.
|
|
|
|
|
|
2007-03-08 08:26:43 +01:00
|
|
|
|
PR c++/30534
|
|
|
|
|
* pt.c (any_template_arguments_need_structural_equality_p):
|
|
|
|
|
Robustify.
|
|
|
|
|
|
2007-03-08 07:48:21 +01:00
|
|
|
|
2007-03-08 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Disable warnings for anonymous
|
|
|
|
|
bitfields.
|
|
|
|
|
|
2007-03-05 09:26:23 +01:00
|
|
|
|
2007-03-05 Volker Reichelt <reichelt@netcologne.de>
|
|
|
|
|
|
|
|
|
|
* typeck2.c (readonly_error): Always emit a hard error.
|
|
|
|
|
Remove last argument.
|
|
|
|
|
* cp-tree.h (readonly_error): Adjust prototype.
|
|
|
|
|
* semantics.c (finish_asm_stmt): Adjust call to readonly_error.
|
|
|
|
|
* typeck.c (build_unary_op): Likewise.
|
|
|
|
|
(build_modify_expr): Likewise.
|
|
|
|
|
|
2007-03-04 20:50:54 +01:00
|
|
|
|
2007-03-04 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/30895
|
|
|
|
|
* tree.c (cp_tree_equal): Properly handle COMPLEX_CST trees.
|
|
|
|
|
|
2007-03-03 16:32:13 +01:00
|
|
|
|
2007-03-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/15787
|
|
|
|
|
* parser.c (struct cp_parser): New IN_IF_STMT.
|
|
|
|
|
(cp_parser_statement_seq_opt): Handle an unexpected 'else',
|
|
|
|
|
returning if parsing the body of an 'if' statement or issuing an
|
|
|
|
|
error and continuing.
|
|
|
|
|
(cp_parser_selection_statement): Set IN_IF_STMT bit when parsing
|
|
|
|
|
body of 'if'.
|
|
|
|
|
(cp_parser_jump_statement): Mask new IN_IF_STMT bit.
|
|
|
|
|
|
2007-03-02 23:09:20 +01:00
|
|
|
|
2007-03-02 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/28253
|
|
|
|
|
* class.c (update_vtable_entry_for_fn): Properly handle invalid overriders
|
|
|
|
|
for thunks.
|
|
|
|
|
|
2007-03-02 22:07:37 +01:00
|
|
|
|
2007-03-02 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* g++spec.c (lang_specific_driver): Add -lstdc++ when compiling
|
|
|
|
|
Objective-C++. Don't exit early if -shared-libgcc needs to be
|
|
|
|
|
added.
|
|
|
|
|
|
2007-03-02 12:09:52 +01:00
|
|
|
|
2007-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* typeck.c (common_base_type): Delete unused function.
|
|
|
|
|
|
2007-03-02 01:16:37 +01:00
|
|
|
|
2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in: Add dummy lang.install-pdf target.
|
|
|
|
|
|
2007-03-01 20:13:02 +01:00
|
|
|
|
2007-03-01 Simon Baldwin <simonb@google.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23689
|
|
|
|
|
* decl.c (check_tag_decl): Added new warning for typedef ignored
|
|
|
|
|
when it precedes an otherwise valid non-typedef declaration.
|
|
|
|
|
|
builtins.c (fold_builtin_call_list, [...]): Delete, and replace with...
2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
* gcc/builtins.c (fold_builtin_call_list, fold_builtin_call_valist):
Delete, and replace with...
(fold_builtin_call_array): This. Update callers to use it.
* gcc/fold-const.c (fold_build_call_list): Delete, and replace with...
(fold_build_call_array): This.
(fold_build_call_list_initializer): Delete, and replace with...
(fold_build_call_array_initializer): This.
* gcc/tree.h: Update declarations to reflect above changes.
* gcc/c-typeck.c (build_function_call): Store converted arguments
in a stack-allocated array instead of building a list.
(convert_arguments): Store arguments in the array passed in as an
argument, and return the actual number of arguments.
* gcc/c-format.c: (check_function_format): Pass arguments in an
array instead of a list.
* gcc/c-common.c (check_function_nonnull): Likewise.
(check_function_sentinel): Likewise.
(check_function_arguments): Likewise.
* gcc/c-common.h: Update declarations to reflect above changes.
* gcc/cp/typeck.c (build_function_call): Store converted arguments
in a stack-allocated array instead of building a list.
(convert_arguments): Store arguments in the array passed in as an
argument, and return the actual number of arguments.
* gcc/cp/call.c (build_call): Delete, and replace with...
(build_call_n, build_call_a): New.
(build_op_delete_call): Rewrite to avoid constructing argument lists.
(build_over_call): Store converted arguments in a stack-allocated
array instead of building a list.
(build_cxx_call): Pass arguments in an array instead of as a list.
(build_java_interface_fn_ref): Rewrite to avoid constructing
argument lists.
* gcc/cp/tree.h: Update declarations to reflect above changes.
* gcc/cp/method.c (use_thunk): Use a stack-allocated array to hold
the arguments instead of a list.
* gcc/cp/rtti.c (throw_bad_cast): Update call to cxx_call.
(throw_bad_typeid): Likewise.
(build_dynamic_cast_1): Likewise.
* gcc/cp/init.c (build_builtin_delete_call): Use build_call_n.
* gcc/cp/decl.c (expand_static_init): Likewise.
* gcc/cp/except.c (cp_protect_cleanup_actions): Likewise.
* gcc/cp/cp-gimplify.c (genericize_eh_spec_block): Likewise.
(gimplify_must_not_throw_expr): Likewise.
(cxx_omp_apply_fn): Use build_call_a.
From-SVN: r122411
2007-02-28 20:21:20 +01:00
|
|
|
|
2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_function_call): Store converted arguments
|
|
|
|
|
in a stack-allocated array instead of building a list.
|
|
|
|
|
(convert_arguments): Store arguments in the array passed in as an
|
|
|
|
|
argument, and return the actual number of arguments.
|
|
|
|
|
* call.c (build_call): Delete, and replace with...
|
|
|
|
|
(build_call_n, build_call_a): New.
|
|
|
|
|
(build_op_delete_call): Rewrite to avoid constructing argument lists.
|
|
|
|
|
(build_over_call): Store converted arguments in a stack-allocated
|
|
|
|
|
array instead of building a list.
|
|
|
|
|
(build_cxx_call): Pass arguments in an array instead of as a list.
|
|
|
|
|
(build_java_interface_fn_ref): Rewrite to avoid constructing
|
|
|
|
|
argument lists.
|
|
|
|
|
* tree.h: Update declarations to reflect above changes.
|
|
|
|
|
* method.c (use_thunk): Use a stack-allocated array to hold
|
|
|
|
|
the arguments instead of a list.
|
|
|
|
|
* rtti.c (throw_bad_cast): Update call to cxx_call.
|
|
|
|
|
(throw_bad_typeid): Likewise.
|
|
|
|
|
(build_dynamic_cast_1): Likewise.
|
|
|
|
|
* init.c (build_builtin_delete_call): Use build_call_n.
|
|
|
|
|
* decl.c (expand_static_init): Likewise.
|
|
|
|
|
* except.c (cp_protect_cleanup_actions): Likewise.
|
|
|
|
|
* cp-gimplify.c (genericize_eh_spec_block): Likewise.
|
|
|
|
|
(gimplify_must_not_throw_expr): Likewise.
|
|
|
|
|
(cxx_omp_apply_fn): Use build_call_a.
|
|
|
|
|
|
2007-02-26 22:14:24 +01:00
|
|
|
|
2007-02-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (expand_or_defer_fn): Call c_record_cdtor_fn.
|
|
|
|
|
* decl2.c (cp_write_gloabl_declarations): Call c_build_cdtor_fns.
|
|
|
|
|
|
2007-02-25 19:47:05 +01:00
|
|
|
|
2007-02-25 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (static_ctors): Remove.
|
|
|
|
|
* cp-tree.h (static_dtors): Likewise.
|
|
|
|
|
* cp-objcp-common.c (decl_shadowed_for_var_lookup): Adjust for
|
|
|
|
|
refactoring of tree_map hierarchy.
|
|
|
|
|
(decl_shadowed_for_var_insert): Likewise.
|
|
|
|
|
* semantics.c (expand_body): Use c_expand_body.
|
|
|
|
|
(expand_or_defer_fn): Don't update static_ctors or static_dtors.
|
|
|
|
|
* decl2.c (static_ctors): Remove.
|
|
|
|
|
(static_dtors): Likewise.
|
|
|
|
|
(generate_ctor_or_dtor_function): Pass NULL_TREE to
|
|
|
|
|
objc_generate_static_init_call. Do not call static_[cd]tors.
|
|
|
|
|
(generate_ctor_and_dtor_functions_for_priority): Do not check for
|
|
|
|
|
static_[cd]tors.
|
|
|
|
|
(cp_write_global_declarations): Likewise.
|
|
|
|
|
|
2007-02-23 12:08:39 +01:00
|
|
|
|
2007-02-23 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* class.c (note_name_declared_in_class): Make declaration
|
|
|
|
|
changes meaning a pedwarn.
|
|
|
|
|
|
2007-02-22 18:03:48 +01:00
|
|
|
|
2007-02-22 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/29433
|
|
|
|
|
* cp-tree.h (TFF_UNQUALIFIED_NAME): New formatting flag.
|
|
|
|
|
* error.c (dump_aggr_type, dump_simple_decl, dump_decl,
|
|
|
|
|
dump_function_decl): Guard emitting outer scopes by new flag.
|
|
|
|
|
* cp-lang.c (cxx_dwarf_name): New function.
|
|
|
|
|
(LANG_HOOKS_DWARF_NAME): Define to cxx_dwarf_name.
|
|
|
|
|
* pt.c (classtype_mangled_name, mangle_class_name_for_template):
|
|
|
|
|
Remove functions.
|
|
|
|
|
(push_template_decl_real, lookup_template_class): Remove calls
|
|
|
|
|
to above functions.
|
|
|
|
|
|
2007-02-20 08:28:35 +01:00
|
|
|
|
2007-02-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* call.c (build_new_method_call): Ensure that explicit calls of
|
|
|
|
|
destructors have type "void".
|
|
|
|
|
|
2007-02-19 21:02:28 +01:00
|
|
|
|
2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_binary_op): Replace -Wstring-literal-comparison
|
|
|
|
|
and -Walways-true with -Waddress.
|
|
|
|
|
* cvt.c (convert_to_void): Replace unconditional warning with
|
|
|
|
|
-Waddress.
|
|
|
|
|
|
2007-02-18 01:59:36 +01:00
|
|
|
|
2007-02-18 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c, tree.c: Fix comment typos.
|
|
|
|
|
|
2007-02-16 02:23:35 +01:00
|
|
|
|
2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
|
|
|
|
|
|
|
|
|
PR C++/30158
|
|
|
|
|
* semantics.c (finish_stmt_expr_expr): Set TREE_TYPE of the
|
|
|
|
|
statement expression if we had an error mark node.
|
|
|
|
|
|
tree.h (enum tree_code_class): Add tcc_vl_exp.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* tree.h (enum tree_code_class): Add tcc_vl_exp.
(VL_EXP_CLASS_P): New.
(TREE_OPERAND_CHECK): Use TREE_OPERAND_LENGTH instead of
TREE_CODE_LENGTH.
(TREE_OPERAND_CHECK_CODE): Likewise.
(GIMPLE_STMT_OPERAND_CHECK): Likewise.
(TREE_RTL_OPERAND_CHECK): Likewise.
(tree_operand_check_failed): Make second parameter the whole tree
instead of its code. Fixed callers.
(VL_EXP_CHECK): New.
(TREE_OPERAND_LENGTH): New.
(VL_EXP_OPERAND_LENGTH): New.
(CALL_EXPR_FN): New.
(CALL_EXPR_STATIC_CHAIN): New.
(CALL_EXPR_ARGS): New.
(CALL_EXPR_ARG): New.
(call_expr_nargs): New.
(CALL_EXPR_ARGP): New.
(build_nt_call_list): Declare.
(build_vl_exp_stat): Declare.
(build_vl_exp): New.
(build_call_list): Declare.
(build_call_nary): Declare.
(build_call_valist): Declare.
(build_call_array): Declare.
(call_expr_arg): Declare.
(call_expr_argp): Declare.
(call_expr_arglist): Declare.
(fold_build_call_list): Declare.
(fold_build_call_list_initializer): Declare.
(fold_call_expr): Declare to replace fold_builtin.
(fold_builtin_fputs): Update to agree with modified definition.
(fold_builtin_strcpy): Likewise.
(fold_builtin_strncpy): Likewise.
(fold_builtin_memory_chk): Likewise.
(fold_builtin_stxcpy_chk): Likewise.
(fold_builtin_strncpy_chk): Likewise.
(fold_builtin_next_arg): Likewise.
(fold_build_call_expr): Declare.
(fold_builtin_call_list): Declare.
(fold_builtin_call_valist): Declare.
(build_call_expr): Declare.
(validate_arglist): Update to agree with modified definition.
(tree_operand_length): New.
(call_expr_arg_iterator): New.
(init_call_expr_arg_iterator): New.
(next_call_expr_arg): New.
(first_call_expr_arg): New.
(more_call_expr_args_p): New.
(FOR_EACH_CALL_EXPR_ARG): New.
* tree.c (tree_code_class_string): Add entries for tcc_vl_exp
and tcc_gimple_stmt.
(tree_code_size): Update documentation. Use sizeof (tree) rather
than sizeof (char *).
(tree_size): Likewise. Add case for tcc_vl_exp.
(tree_node_structure): Add case for tcc_vl_exp.
(contains_placeholder_p): Likewise.
(substitute_in_expr): Likewise.
(substitute_placeholder_in_expr): Likewise.
(stabilize_reference_1): Likewise.
(build3_stat): Remove logic for CALL_EXPRs. Replace with assertion
to diagnose breakage of this interface for constructing CALL_EXPRs.
(build_nt): Add similar assertion here.
(build_nt_call_list): New.
(simple_cst_equal) <CALL_EXPR>: Rewrite to use new accessors.
(iterative_hash_expr): Use TREE_OPERAND_LENGTH instead of
TREE_CODE_LENGTH.
(get_callee_fndecl): Use new CALL_EXPR accessors.
(tree_operand_check_failed): Change parameters to pass entire node
instead of its code, so that we can call TREE_OPERAND_LENGTH on it.
(process_call_operands): New.
(build_vl_exp_stat): New.
(build_call_list): New.
(build_call_nary): New.
(build_call_valist): New.
(build_call_array): New.
(walk_tree): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
(call_expr_arglist): New.
* tree.def (CALL_EXPR): Change representation of CALL_EXPRs to use
tcc_vl_exp instead of a fixed-size tcc_expression.
* doc/c-tree.texi (CALL_EXPR): Document new representation and
accessors for CALL_EXPRs.
(AGGR_INIT_EXPR): Likewise.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* builtins.c (c_strlen): Return NULL_TREE instead of 0.
(expand_builtin_nonlocal_goto): Change parameter to be entire
CALL_EXPR instead of an arglist. Use new CALL_EXPR accessors.
(expand_builtin_prefetch): Likewise.
(expand_builtin_classify_type): Likewise.
(mathfn_built_in): Return NULL_TREE instead of 0.
(expand_errno_check): Use new CALL_EXPR accessors.
(expand_builtin_mathfn): Use new CALL_EXPR accessors and constructors.
Return NULL_RTX instead of 0.
(expand_builtin_mathfn_2): Likewise.
(expand_builtin_mathfn_3): Likewise.
(expand_builtin_interclass_mathfn): Likewise.
(expand_builtin_sincos): Likewise.
(expand_builtin_cexpi): Likewise.
(expand_builtin_int_roundingfn): Likewise.
(expand_builtin_int_roundingfn_2): Likewise.
(expand_builtin_pow): Likewise.
(expand_builtin_powi): Likewise.
(expand_builtin_strlen): Pass entire CALL_EXPR as parameter instead
of arglist, fixing callers appropriately. Use new CALL_EXPR
accessors and constructors. Return NULL_RTX instead of 0.
(expand_builtin_strstr): Likewise.
(expand_builtin_strchr): Likewise.
(expand_builtin_strrchr): Likewise.
(expand_builtin_strpbrk): Likewise.
(expand_builtin_memcpy): Likewise.
(expand_builtin_mempcpy): Likewise.
(expand_builtin_mempcpy_args): New.
(expand_builtin_memmove): Similarly to expand_builtin_mempcpy.
(expand_builtin_memmove_args): New.
(expand_builtin_bcopy): Similarly to expand_builtin_mempcpy.
(expand_movstr): Likewise.
(expand_builtin_strcpy): Likewise.
(expand_builtin_strcpy_args): New.
(expand_builtin_stpcpy): Similarly to expand_builtin_strcpy.
(expand_builtin_strncpy): Likewise.
(expand_builtin_memset): Likewise.
(expand_builtin_memset_args): New.
(expand_builtin_bzero): Similarly to expand_builtin_memset.
(expand_builtin_memcmp): Likewise.
(expand_builtin_strcmp): Likewise.
(expand_builtin_strncmp): Likewise.
(expand_builtin_strcat): Likewise.
(expand_builtin_strncat): Likewise.
(expand_builtin_strspn): Likewise.
(expand_builtin_strcspn): Likewise.
(expand_builtin_args_info): Likewise.
(expand_builtin_va_start): Likewise.
(gimplify_va_arg_expr): Likewise.
(expand_builtin_va_end): Likewise.
(expand_builtin_va_copy): Likewise.
(expand_builtin_frame_address): Likewise.
(expand_builtin_alloca): Likewise.
(expand_builtin_bswap): Likewise.
(expand_builtin_unop): Likewise.
(expand_builtin_fputs): Likewise.
(expand_builtin_expect): Likewise.
(expand_builtin_fabs): Likewise.
(expand_builtin_copysign): Likewise.
(expand_builtin_printf): Likewise.
(expand_builtin_fprintf): Likewise.
(expand_builtin_sprintf): Likewise.
(expand_builtin_init_trampoline): Likewise.
(expand_builtin_signbit): Likewise.
(expand_builtin_fork_or_exec): Likewise.
(expand_builtin_sync_operation): Likewise.
(expand_builtin_compare_and_swap): Likewise.
(expand_builtin_lock_test_and_set): Likewise.
(expand_builtin_lock_release): Likewise.
(expand_builtin): Likewise.
(builtin_mathfn_code): Likewise.
(fold_builtin_constant_p): Pass call arguments individually instead
of as an arglist, fixing callers appropriately. Use new CALL_EXPR
accessors and constructors. Return NULL_TREE instead of 0.
(fold_builtin_expect): Likewise.
(fold_builtin_classify_type): Likewise.
(fold_builtin_strlen): Likewise.
(fold_builtin_nan): Likewise.
(integer_valued_real_p): Likewise.
(fold_trunc_transparent_mathfn): Likewise.
(fold_fixed_mathfn): Likewise.
(fold_builtin_cabs): Likewise.
(fold_builtin_sqrt): Likewise.
(fold_builtin_cbrt): Likewise.
(fold_builtin_cos): Likewise.
(fold_builtin_cosh): Likewise.
(fold_builtin_tan): Likewise.
(fold_builtin_sincos): Likewise.
(fold_builtin_cexp): Likewise.
(fold_builtin_trunc): Likewise.
(fold_builtin_floor): Likewise.
(fold_builtin_ceil): Likewise.
(fold_builtin_round): Likewise.
(fold_builtin_int_roundingfn): Likewise.
(fold_builtin_bitop): Likewise.
(fold_builtin_bswap): Likewise.
(fold_builtin_logarithm): Likewise.
(fold_builtin_hypot): Likewise.
(fold_builtin_pow): Likewise.
(fold_builtin_powi): Likewise.
(fold_builtin_exponent): Likewise.
(fold_builtin_memset): Likewise.
(fold_builtin_bzero): Likewise.
(fold_builtin_memory_op): Likewise.
(fold_builtin_bcopy): Deleted; call site changed to invoke
fold_builtin_memory_op directly.
(fold_builtin_strcpy): Similarly as for fold_builtin_memory_op.
(fold_builtin_strncpy): Likewise.
(fold_builtin_memcmp): Likewise.
(fold_builtin_strcmp): Likewise.
(fold_builtin_strncmp): Likewise.
(fold_builtin_signbit): Likewise.
(fold_builtin_copysign): Likewise.
(fold_builtin_isascii): Likewise.
(fold_builtin_toascii): Likewise.
(fold_builtin_isdigit): Likewise.
(fold_builtin_fabs): Likewise.
(fold_builtin_abs): Likewise.
(fold_builtin_fmin_fmax): Likewise.
(fold_builtin_carg): Likewise.
(fold_builtin_classify): Likewise.
(fold_builtin_unordered_cmp): Likewise.
(fold_builtin_0, fold_builtin_2, fold_builtin_3, fold_builtin_4):
New functions split out from fold_builtin_1.
(fold_builtin_n): New.
(fold_builtin_varargs): New.
(fold_builtin): Deleted. Most callers changed to use fold_call_expr
instead.
(fold_call_expr): New.
(build_function_call_expr): Rewrite to use new helper function.
(fold_builtin_call_list): New.
(build_call_expr): New.
(fold_builtin_call_valist): New.
(rewrite_call_expr): New.
(validate_arg): New.
(validate_arglist): Change parameter to be entire CALL_EXPR instead
of an arglist. Change return type to bool. Use new CALL_EXPR
accessors.
(fold_builtin_strstr): Pass call arguments individually instead
of as an arglist, fixing callers appropriately. Use new CALL_EXPR
accessors and constructors. Return NULL_TREE instead of 0.
(fold_builtin_strchr): Likewise.
(fold_builtin_strrchr): Likewise.
(fold_builtin_strpbrk): Likewise.
(fold_builtin_strcat): Likewise.
(fold_builtin_strncat): Likewise.
(fold_builtin_strspn): Likewise.
(fold_builtin_strcspn): Likewise.
(fold_builtin_fputs): Likewise.
(fold_builtin_next_arg): Likewise.
(fold_builtin_sprintf): Likewise.
(expand_builtin_object_size): Use new CALL_EXPR accessors. Use
NULL_RTX instead of 0.
(expand_builtin_memory_chk): Likewise.
(maybe_emit_chk_warning): Likewise.
(maybe_emit_sprintf_chk_warning): Likewise.
(fold_builtin_object_size): Pass call arguments individually instead
of as an arglist, fixing callers appropriately. Use new CALL_EXPR
accessors and constructors. Return NULL_TREE instead of 0.
(fold_builtin_memory_chk): Likewise.
(fold_builtin_stxcpy_chk): Likewise.
(fold_builtin_strncpy_chk): Likewise.
(fold_builtin_strcat_chk): Likewise.
(fold_builtin_strcat_chk): Likewise.
(fold_builtin_strncat_chk): Likewise.
(fold_builtin_sprintf_chk): Likewise.
(fold_builtin_snprintf_chk): Likewise.
(fold_builtin_printf): Likewise.
(fold_builtin_vprintf): Likewise.
* fold-const.c (negate_expr_p): Use new CALL_EXPR accessors and
constructors.
(operand_equal_p): Add separate tcc_vl_exp/CALL_EXPR case.
(make_range): Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
(extract_muldiv_1): Add VL_EXP_CLASS_P case.
(fold_mathfn_compare): Use new CALL_EXPR accessors and constructors.
(fold_unary): Likewise.
(fold_binary): Likewise.
(fold_ternary): Remove CALL_EXPR case, since they are no longer
ternary expressions.
(fold): Add logic for tcc_vl_exp.
(fold_checksum_tree): Make it know about tcc_vl_exp. Use
TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
(fold_build3_stat): Add assertion to flag broken interface for
constructing CALL_EXPRs.
(fold_build_call_list): New.
(fold_build_call_list_initializer): New.
(tree_expr_nonnegative_p): Use new CALL_EXPR accessors and
constructors.
(fold_strip_sign_ops): Likewise.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* tree-dump.c (dequeue_and_dump) <CALL_EXPR>: Use new CALL_EXPR
accessors and dump arguments explicitly.
* tree-pretty-print.c (do_niy): Use TREE_OPERAND_LENGTH instead of
TREE_CODE_LENGTH.
(dump_generic_node): Use new CALL_EXPR accessors and walk arguments
explicitly.
(print_call_name): Use new CALL_EXPR accessors.
* print-tree.c (print_node): Add case tcc_vl_exp. Print
CALL_EXPR arguments explicitly instead of as a list. Use
TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
* tree-vrp.c (stmt_interesting_for_vrp): Use new CALL_EXPR accessors.
(vrp_visit_stmt): Likewise.
* tree-ssa-loop-im.c (outermost_invariant_loop_expr): Make it
know about tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of
TREE_CODE_LENGTH.
(force_move_till_expr): Likewise.
* targhooks.c (default_external_stack_protect_fail): Use
build_call_expr instead of build_function_call_expr.
(default_hidden_stack_protect_fail): Likewise.
* tree-complex.c (expand_complex_libcall): Use build_call_expr to
build the call.
* cgraphbuild.c (build_cgraph_edges): Use new CALL_EXPR accessors
and walk arguments explicitly.
* tree-ssa-loop-niter.c (simplify_replace_tree): Use
TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
(expand_simple_operations): Likewise.
(infer_loop_bounds_from_array): Use new CALL_EXPR accessors.
* gengtype.c (adjust_field_tree_exp): Use TREE_OPERAND_LENGTH instead
of TREE_CODE_LENGTH.
(walk_type): Tweak walking of arrays not to blow up on CALL_EXPRs.
* optabs.c (expand_widen_pattern-expr): Use TREE_OPERAND_LENGTH
instead of TREE_CODE_LENGTH.
* value_prof.c (tree_ic): Use new CALL_EXPR accessors.
(tree_ic_transform): Likewise.
(interesting_stringop_to_profile_p): Pass entire CALL_EXPR as
parameter instead of arglist. Fix callers.
(tree_stringop_fixed_value): Use new CALL_EXPR accessors.
(tree_stringops_transform): Likewise.
(tree_indirect_call_to_profile): Likewise.
(tree_stringops_values_to_profile): Likewise.
* tree-tailcall.c (find_tail_calls): Use new CALL_EXPR iterator.
(eliminate_tail_call): Likewise.
* ipa-cp.c (ipcp_update_callgraph): Use new CALL_EXPR accessors.
* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
Use TREE_OPERAND_LENGTH and generalize to handle any number of
operands.
(instantiate_parameters_1): Can't handle tcc_vl_exp here.
* omp-low.c (build_omp_barrier): Use build_call_expr.
(lower_rec_input_clauses): Likewise.
(lower_reduction_clauses): Likewise.
(expand_parallel_call): Likewise.
(maybe_catch_exception): Likewise.
(expand_omp_for_generic): Likewise.
(expand_omp_for_static_nochunk): Likewise.
(expand_omp_sections): Likewise.
(lower_omp_single_simple): Likewise.
(lower_omp_single_copy): Likewise.
(lower_omp_master): Likewise.
(lower_omp_ordered): Likewise.
(lower_omp_critical): Likewise.
* ipa-reference.c (check-call): Use new CALL_EXPR iterator.
(scan_for_static_refs): Create tcc_vl_exp case for CALL_EXPR.
* tree-gimple.c (is_gimple_call_addr): Fix doc.
(recalculate_side_effects): Use TREE_OPERAND_LENGTH instead of
TREE_CODE_LENGTH. Add tcc_vl_exp case.
* tree-chrec.c (chrec_contains_symbols): Use TREE_OPERAND_LENGTH
and generalize to handle any number of operands.
(chrec_contains_undetermined): Likewise.
(tree_contains_chrecs): Likewise.
(evolution_function_is_invariant_rec_p): Use TREE_OPERAND_LENGTH.
* cgraphunit.c (update_call_expr): Use new CALL_EXPR accessors.
* tree-ssa-ccp.c (ccp_fold): Use new CALL_EXPR accessors. Use
fold_call_expr instead of fold_builtin.
(ccp_fold_builtin): Likewise. Update calls into builtins.c to
match declarations there.
(fold_stmt): Use new CALL_EXPR constructor and accessors. Doc
updates.
* tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Use
TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
* ipa-pure-const.c (check_call): Use new CALL_EXPR accessors.
(scan_function): Add case tcc_vl_exp for CALL_EXPR.
* tree-stdarg.c (execute_optimize_stdarg): Use new CALL_EXPR
accessors.
* tree-ssa-math-opts.c (execute_cse_sincos_1): Use build_call_expr.
(execute_cse_sincos): Use new CALL_EXPR accessors.
* tree-ssa-alias.c (find_used_portions): Use new CALL_EXPR iterator.
* gimple-low.c (lower_function_body): Use build_call_expr.
(lower_builtin_setjmp): Likewise.
* expr.c (emit_block_move_via_libcall): Use build_call_expr.
(set_storage_via_libcall): Likewise.
(safe_from_p): Add tcc_vl_exp case. Use TREE_OPERAND_LENGTH
instead of TREE_CODE_LENGTH.
(expand_expr_real_1): Use new CALL_EXPR accessors.
* tree-browser.c (store_child_info): Use TREE_OPERAND_LENGTH and
generalize to handle any number of operands.
(TB_parent_eq): Likewise.
* predict.c (expr_expected_value): Use new CALL_EXPR accessors.
(strip_builtin_expect): Likewise.
* function.c (gimplify_parameters): Use build_call_expr.
* tree-vectorizer.c (vect_is_simple_reduction): Use TREE_OPERAND_LENGTH
instead of TREE_CODE_LENGTH.
* ipa-type-escape.c (check_call): Use new CALL_EXPR iterators.
(scan_for_refs): Add case tcc_vl_exp for CALL_EXPR.
* tree-data-ref.c (get_references_in_stmt): Use new CALL_EXPR
iterators.
* gimplify.c (build_stack_save_restore): Use build_call_expr.
(gimplify_decl_expr): Likewise.
(gimplify_call_expr): Use fold_call_expr instead of fold_builtin.
Use new CALL_EXPR iterators.
(gimplify_modify_expr_to_memcpy): Use build_call_expr.
(gimplify_modify_expr_to_memset): Likewise.
(gimplify_variable_sized_compare): Likewise.
(gimplify_omp_atomic_fetch_op): Likewise.
(gimplify_omp_atomic_pipeline): Likewise.
(gimplify_omp_atomic_mutex): Likewise.
(gimplify_function_tree): Likewise.
* calls.c (alloca_call_p): Use new CALL_EXPR accessors.
(call_expr_flags): Likewise.
(expand_call): Likewise.
* except.c (expand_builtin_eh_return_data_regno): Pass entire
CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
accessors.
* coverage.c (create_coverage): Use build_call_expr.
* tree-ssa-pre.c (expression_node_pool, list_node_pool): Delete.
(temp_call_expr_obstack): New.
(pool_copy_list): Delete.
(temp_copy_call_expr): New.
(phi_translate): Add case tcc_vl_exp for CALL_EXPR. Use new
CALL_EXPR accessors. Get rid of special goo for copying argument
lists and use temp_copy_call_expr instead.
(valid_in_sets): Add case tcc_vl_exp for CALL_EXPR. Use new
CALL_EXPR accessors.
(create_expression_by_pieces): Likewise. Use build_call_array
to construct the result instead of fold_build3.
(create_value_expr_from): Add tcc_vl_exp. Delete special goo for
dealing with argument lists.
(init_pre): Remove references to expression_node_pool and
list_node_pool. Init temp_call_expr_obstack instead.
(fini_pre): Remove references to expression_node_pool and
list_node_pool.
* tree-sra.c (sra_walk_call_expr): Use new CALL_EXPR accessors
and walk arguments explicitly instead of as a list.
* tree-mudflap.c (mf_build_check_statement_for): Use build_call_expr.
(mx_register_decls): Likewise.
(mudflap_register_call): Likewise.
(mudflap_finish_file): Likewise.
* ipa-prop.c (ipa_callsite_compute_count): Use new CALL_EXPR accessors.
(ipa_callsite_compute_param): Likewise.
* tree-vect-patterns.c (vect_recog_pow_pattern): Use new CALL_EXPR
accessors and constructor.
* tree-nested.c (convert_nl_goto_reference): Use new CALL_EXPR
accessors and constructor.
(convert_tramp_reference): Likewise.
(convert_call_expr): Likewise.
(finalize_nesting_tree_1): Likewise.
* tree-ssa.c (tree_ssa_useless_type_conversion): Use new CALL_EXPR
accessors.
* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Use build_call_expr.
* tree-inline.c (initialize_inlined_parameters): Pass entire
CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR
accessors.
(estimate_num_insns_1): Use new CALL_EXPR accessors.
(expand_call_inline): Tidy up call to initialize_inlined_parameters.
* tree-vect-transform.c (vect_create_epilog_for_reduction): Use
TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
(vectorizable_reduction): Likewise.
(vectorizable_call): Use new CALL_EXPR iterators.
(vectorizable_conversion): Use build_call_expr.
(vectorizable_operation): Use TREE_OPERAND_LENGTH.
(vect_gen_widened_results_half): Use build_call_expr.
(vect_setup_realignment): Likewise.
(vectorizable_live_operation): Use TREE_OPERAND_LENGTH.
* tree-object-size.c (alloc_object_size): Use new CALL_EXPR accessors.
(pass_through_call): Likewise.
(compute_object_sizes): Likewise. Use fold_call_expr instead of
fold_builtin.
* tree-profile.c (tree_gen_interval_profiler): Use build_call_expr.
(tree_gen_pow2_profiler): Likewise.
(tree_gen_one_value_profiler): Likewise.
(tree_gen_ic_func_profiler): Likewise.
(tree_gen_average_profiler): Likewise.
(tree_gen_ior_profiler): Likewise.
* tree-ssa-structalias.c (get_constraint_for): Add case tcc_vl_exp.
(find_func_aliases): Use new CALL_EXPR accessors. Add case
tcc_vl_exp. Use TREE_OPERAND_LENGTH instead of TREE_CODE_LENGTH.
* tree-ssa-reassoc.c (get_rank): Use TREE_OPERAND_LENGTH instead
of TREE_CODE_LENGTH.
* stmt.c (warn_if_unused_value): Use TREE_OPERAND_LENGTH instead
of TREE_CODE_LENGTH.
* convert.c (convert_to_real): Use new CALL_EXPR accessors and
constructor.
(convert_to_integer): Likewise.
* tree-ssa-operands.c (get_call_expr_operands): Use new CALL_EXPR
accessors.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* config/alpha/alpha.c (alpha_expand_builtin): Use new CALL_EXPR
accessors.
* config/frv/frv.c (frv_expand_builtin): Likewise.
* config/s390/s390.c (s390_expand_builtin): Likewise.
* config/sparc/sparc.c (sparc_gimplify_va_arg): Use build_call_expr.
(sparc_expand_builtin): Use new CALL_EXPR accessors.
* config/i386/i386.c (ix86_function_ok_for_sibcall): Likewise.
(ix86_expand_binop_builtin): Pass entire CALL_EXPR as parameter
instead of arglist. Use new CALL_EXPR accessors on it. Fix callers.
(ix86_expand_store_builtin): Likewise.
(ix86_expand_unop_builtin): Likewise.
(ix86_expand_unop1_builtin): Likewise.
(ix86_expand_sse_compare): Likewise.
(ix86_expand_sse_comi): Likewise.
(ix86_expand_vec_init_builtin): Likewise.
(ix86_expand_vec_ext_builtin): Likewise.
(ix86_expand_vec_set_builtin): Likewise.
(ix86_expand_builtin): Use new CALL_EXPR accessors.
* config/sh/sh.c (sh_expand_builtin): Use new CALL_EXPR accessors.
* config/c4x/c4x.c (c4x_expand_builtin): Likewise.
* config/iq2000/iq2000.c (expand_one_builtin): Pass entire CALL_EXPR
instead of arglist. Use new CALL_EXPR accessors. Fix callers.
(iq2000_expand_builtin): Use new CALL_EXPR accessors.
* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Use
build_call_expr.
* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
(rs6000_expand_unop_builtin): Pass entire CALL_EXPR instead of
arglist. Use new CALL_EXPR accessors. Fix callers.
(altivec_expand_abs_builtin): Likewise.
(rs6000_expand_binop_builtin): Likewise.
(altivec_expand_predicate_builtin): Likewise.
(altivec_expand_lv_builtin): Likewise.
(spe_expand_stv_builtin): Likewise.
(altivec_expand_stv_builtin): Likewise.
(rs6000_expand_ternop_builtin): Likewise.
(altivec_expand_ld_builtin): Use new CALL_EXPR accessors.
(altivec_expand_st_builtin): Likewise.
(altivec_expand_dst_builtin): Likewise.
(altivec_expand_vec_init_builtin): Pass entire CALL_EXPR instead of
arglist. Use new CALL_EXPR accessors. Fix callers.
(altivec_expand_vec_set_builtin): Likewise.
(altivec_expand_vec_ext_builtin): Likewise.
(altivec_expand_builtin): Use new CALL_EXPR accessors.
(spe_expand_builtin): Likewise.
(spe_expand_predicate_builtin): Pass entire CALL_EXPR instead of
arglist. Use new CALL_EXPR accessors. Fix callers.
(spe_expand_evsel_builtin): Likewise.
(rs6000_expand_builtin): Use new CALL_EXPR accessors. VCFUX and
FCFSX cases must construct whole new CALL_EXPR, not just arglist.
* config/arm/arm.c (arm_expand_binop_builtin): Pass entire CALL_EXPR
instead of arglist. Use new CALL_EXPR accessors. Fix callers.
(arm_expand_unop_builtin): Likewise.
(arm_expand_builtin): Use new CALL_EXPR accessors.
* config/mips/mips.c (mips_expand_builtin): Use new CALL_EXPR
accessors.
* config/bfin/bfin.c (bfin_expand_binop_builtin): Pass entire CALL_EXPR
instead of arglist. Use new CALL_EXPR accessors. Fix callers.
(bfin_expand_unop_builtin): Likewise.
(bfin_expand_builtin): Use new CALL_EXPR accessors.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* c-semantics.c (build_stmt): Add internal diagnostic check.
* c-pretty-print.c (pp_c_postfix_expression): Use new CALL_EXPR
accessors. Print arguments explicitly instead of as a list.
* c-typeck.c (build_function_call): Use new CALL_EXPR constructors.
* c-omp.c (c_finish_omp_barrier): Use build_call_expr.
(c_finish_omp_flish): Likewise.
* c-common.c (verify_tree): Use new CALL_EXPR accessors. Traverse
arguments explicitly instead of as a list. Use TREE_OPERAND_LENGTH
instead of TREE_CODE_LENGTH.
(check_function_arguments_recurse): Use new CALL_EXPR accessors.
(c_warn_unused_result): Likewise.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
Change class to tcc_vl_exp.
* call.c (build_call): Use build_call_list instead
of build3.
(build_over_call): Likewise.
(build_new_method_call): Use build_min_non_dep_call_list
instead of build_min_non_dep.
* error.c (dump_call_expr_args): New function.
(dump_aggr_init_expr_args): New function.
(dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them.
Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
* cvt.c (convert_to_void): Use build_call_array instead
of build3; use new AGGR_INIT_EXPR accessor macros.
* mangle.c (write_expression): Use TREE_OPERAND_LENGTH
instead of TREE_CODE_LENGTH.
* dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
AGGR_INIT_EXPR accessor macros.
* cp-gimplify.c (cp_gimplify_init_expr): Use
AGGR_INIT_EXPR_SLOT to set the slot operand.
* cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
(AGGR_INIT_EXPR_SLOT): New macro.
(AGGR_INIT_EXPR_ARG): New macro.
(aggr_init_expr_nargs): New macro.
(AGGR_INIT_EXPR_ARGP): New macro.
(aggr_init_expr_arg_iterator): New.
(init_aggr_init_expr_arg_iterator): New.
(next_aggr_init_expr_arg): New.
(first_aggr_init_expr_arg): New.
(more_aggr_init_expr_args_p): New.
(FOR_EACH_AGGR_INIT_EXPR_ARG): New.
(stabilize_aggr_init): New declaration.
(build_min_non_dep_call_list): Likewise.
* tree.c (process_aggr_init_operands): New function.
(build_aggr_init_array) New function.
(build_cplus_new): Update to use new CALL_EXPR and
AGGR_INIT_EXPR accessor macros. Replace use of build3 with
build_aggr_init_array.
(build_min_non_dep_call_list) New function.
(build_min_nt): Assert input code parameter is not a variable
length expression class.
(build_min, build_min_non_dep): Likewise.
(cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
to check for equality instead of recursing. Handle tcc_vl_exp
tree code classes.
(stabilize_call): Update to only handle CALL_EXPRs, not
AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
(stabilize_aggr_init): New function.
(stabilize_init): Use it.
* cxx-pretty-print.c (pp_cxx_postfix_expression)
<AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
AGGR_INIT_EXPR accessor macros and argument iterators.
* pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
build_vl_exp. Iterate through the operands, recursively
processing each one.
(tsubst_copy_and_build) <CALL_EXPR>: Update to use new
CALL_EXPR accessor macros.
(value_dependent_expression_p) <default>: Handle tcc_vl_exp
tree code classes. Use TREE_OPERAND_LENGTH instead of
TREE_CODE_LENGTH.
* semantics.c (finish_call_expr): Use build_nt_call_list
instead of build_nt.
(simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR
accessor macros. Use build_call_array to construct the
CALL_EXPR node instead of build3
* decl2.c (build_offset_ref_call_from_tree): Use
build_nt_call_list and build_min_non_dep_call_list instead
of build_min_nt and build_min_non_dep.
* parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
Use build_nt_call_list instead of build_min_nt.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* java-tree.h (BUILD_MONITOR_ENTER): Use build_call_nary instead
of build3.
(BUILD_MONITOR_EXIT): Likewise.
* java-gimplify.c (java_gimplify_component_ref): Use build_call_expr.
(java_gimplify_modify_expr): Likewise.
* class.c (cache_this_class_ref): Use build_call_expr.
(build_static_field_ref): Likewise.
(emit_indirect_register_classes): Likewise.
(emit_register_classes): Likewise.
* resource.c (write_resource_constructor): Use build_call_expr.
* builtins.c (builtin_creator_function): Change interpretation of
the second parameter to be the whole CALL_EXPR instead of the arglist.
(max_builtin): Tweak parameter list. Use new CALL_EXPR accessors.
(min_builtin): Likewise.
(abs_builtin): Likewise.
(java_build_function_call_expr): Likewise.
(convert_real): Likewise.
(UNMARSHAL3): Likewise.
(UNMARSHAL4): Likewise.
(UNMARSHAL5): Likewise.
(build_arglist_for_builtin): Delete. Fix callers to use
build_call_expr instead.
(putObject_builtin): Tweak parameter list. Use new CALL_EXPR
accessors.
(compareAndSwapInt_builtin): Likewise.
(compareAndSwapLong_builtin): Likewise.
(compareAndSwapObject_builtin): Likewise.
(putVolatile_builtin): Likewise.
(getVolatile_builtin): Likewise.
(VMSupportsCS8_builtin): Likewise.
(check_for_builtin): Pass entire CALL_EXPR to builtin expander
instead of arglist.
* expr.c (build_java_athrow): Use build_call_nary instead of build3.
(build_java_throw_out_of_bounds_exception): Likewise.
(java_check_reference): Likewise.
(build_java_arraystore_check): Likewise.
(build_newarray): Likewise.
(build_anewarray): Likewise.
(expand_java_multinewarray): Use build_call_list instead of build3.
(build_java_monitor): Use build_call_nary instead of build3.
(java_create_object): Likewise.
(expand_java_NEW): Likewise.
(build_instanceof): Likewise.
(expand_java_CHECKCAST): Likewise.
(build_java_soft_divmod): Likewise.
(build_java_binop): Likewise.
(build_field_ref): Likewise.
(build_class_init): Likewise.
(rewrite_arglist_getcaller): Use build_call_expr.
(build_invokeinterface): Use build_call_nary instead of build3.
(expand_invoke): Use build_call_list instead of build3.
(build_jni_stub): Use build_call_nary, build_call_list, or
build_call_expr instead of build3.
(expand_java_field_op): Use build_call_expr instead of build3.
(force_evaluation_order): Use new CALL_EXPR accessors.
* lang.c (java_get_callee_fndecl): Use new CALL_EXPR accessors.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* objc-act.c (receiver_is_class_object): Use new CALL_EXPR accessors.
(objc_get_callee_fndecl): Likewise.
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
Brooks Moses <brooks.moses@codesourcery.com>
Lee Millward <lee.millward@codesourcery.com>
* trans-expr.c (gfc_conv_power_op): Use build_call_expr.
(gfc_conv_string_tmp): Likewise.
(gfc_conv_concat_op): Likewise.
(gfc_build_compare_string): Likewise.
(gfc_conv_function_call): Use build_call_list instead of build3.
* trans-array.c (gfc_trans_allocate_array_storage): Use
build_call_expr.
(gfc_grow_array): Likewise.
(gfc_trans_array_ctor_element): Likewise.
(gfc_trans_array_constructor_value): Likewise.
(gfc_array_allocate): Likewise.
(gfc_array_deallocate): Likewise.
(gfc_trans_auto_array_allocation): Likewise.
(gfc_trans_dummy_array_bias): Likewise.
(gfc_conv_array_parameter): Likewise.
(gfc_trans_dealloc_allocated): Likewise.
(gfc_duplicate_allocatable): Likewise.
* trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
(gfc_trans_omp_flush): Likewise.
* trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
(gfc_trans_pause): Likewise.
(gfc_trans_stop): Likewise.
(gfc_trans_character_select): Likewise.
(gfc_do_allocate): Likewise.
(gfc_trans_assign_need_temp): Likewise.
(gfc_trans_pointer_assign_need_temp): Likewise.
(gfc_trans_forall_1): Likewise.
(gfc_trans_where_2): Likewise.
(gfc_trans_allocate): Likewise.
(gfc_trans_deallocate): Likewise.
* trans.c (gfc_trans_runtime_check): Use build_call_expr.
* trans-io.c (gfc_trans_open): Use build_call_expr.
(gfc_trans_close): Likewise.
(build_filepos): Likewise.
(gfc_trans_inquire): Likewise.
(NML_FIRST_ARG): Delete.
(NML_ADD_ARG): Delete.
(transfer_namelist_element): Use build_call_expr.
(build_dt): Likewise.
(gfc_trans_dt_end): Likewise.
(transfer_expr): Likewise.
(transfer_array-desc): Likewise.
* trans-decl.c (gfc_generate_function_code): Use build_call_expr.
(gfc_generate_constructors): Likewise.
* trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
(gfc_conv_intrinsic_fdate): Likewise.
(gfc_conv_intrinsic_ttynam): Likewise.
(gfc_conv_intrinsic_array_transfer): Likewise.
(gfc_conv_associated): Likewise.
(gfc_conv_intrinsic_si_kind): Likewise.
(gfc_conv_intrinsic_trim): Likewise.
(gfc_conv_intrinsic_repeat: Likewise.
(gfc_conv_intrinsic_iargc): Likewise.
Co-Authored-By: Brooks Moses <brooks.moses@codesourcery.com>
Co-Authored-By: Lee Millward <lee.millward@codesourcery.com>
From-SVN: r122018
2007-02-16 00:50:49 +01:00
|
|
|
|
2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
|
|
|
|
|
Brooks Moses <brooks.moses@codesourcery.com>
|
|
|
|
|
Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
|
|
|
|
|
Change class to tcc_vl_exp.
|
|
|
|
|
|
|
|
|
|
* call.c (build_call): Use build_call_list instead
|
|
|
|
|
of build3.
|
|
|
|
|
(build_over_call): Likewise.
|
|
|
|
|
(build_new_method_call): Use build_min_non_dep_call_list
|
|
|
|
|
instead of build_min_non_dep.
|
|
|
|
|
|
|
|
|
|
* error.c (dump_call_expr_args): New function.
|
|
|
|
|
(dump_aggr_init_expr_args): New function.
|
|
|
|
|
(dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them.
|
|
|
|
|
Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
|
|
|
|
|
|
|
|
|
|
* cvt.c (convert_to_void): Use build_call_array instead
|
|
|
|
|
of build3; use new AGGR_INIT_EXPR accessor macros.
|
|
|
|
|
|
|
|
|
|
* mangle.c (write_expression): Use TREE_OPERAND_LENGTH
|
|
|
|
|
instead of TREE_CODE_LENGTH.
|
|
|
|
|
|
|
|
|
|
* dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
|
|
|
|
|
AGGR_INIT_EXPR accessor macros.
|
|
|
|
|
|
|
|
|
|
* cp-gimplify.c (cp_gimplify_init_expr): Use
|
|
|
|
|
AGGR_INIT_EXPR_SLOT to set the slot operand.
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
|
|
|
|
|
(AGGR_INIT_EXPR_SLOT): New macro.
|
|
|
|
|
(AGGR_INIT_EXPR_ARG): New macro.
|
|
|
|
|
(aggr_init_expr_nargs): New macro.
|
|
|
|
|
(AGGR_INIT_EXPR_ARGP): New macro.
|
|
|
|
|
(aggr_init_expr_arg_iterator): New.
|
|
|
|
|
(init_aggr_init_expr_arg_iterator): New.
|
|
|
|
|
(next_aggr_init_expr_arg): New.
|
|
|
|
|
(first_aggr_init_expr_arg): New.
|
|
|
|
|
(more_aggr_init_expr_args_p): New.
|
|
|
|
|
(FOR_EACH_AGGR_INIT_EXPR_ARG): New.
|
|
|
|
|
(stabilize_aggr_init): New declaration.
|
|
|
|
|
(build_min_non_dep_call_list): Likewise.
|
|
|
|
|
|
|
|
|
|
* tree.c (process_aggr_init_operands): New function.
|
|
|
|
|
(build_aggr_init_array) New function.
|
|
|
|
|
(build_cplus_new): Update to use new CALL_EXPR and
|
|
|
|
|
AGGR_INIT_EXPR accessor macros. Replace use of build3 with
|
|
|
|
|
build_aggr_init_array.
|
|
|
|
|
(build_min_non_dep_call_list) New function.
|
|
|
|
|
(build_min_nt): Assert input code parameter is not a variable
|
|
|
|
|
length expression class.
|
|
|
|
|
(build_min, build_min_non_dep): Likewise.
|
|
|
|
|
(cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
|
|
|
|
|
to check for equality instead of recursing. Handle tcc_vl_exp
|
|
|
|
|
tree code classes.
|
|
|
|
|
(stabilize_call): Update to only handle CALL_EXPRs, not
|
|
|
|
|
AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
|
|
|
|
|
(stabilize_aggr_init): New function.
|
|
|
|
|
(stabilize_init): Use it.
|
|
|
|
|
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_postfix_expression)
|
|
|
|
|
<AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
|
|
|
|
|
AGGR_INIT_EXPR accessor macros and argument iterators.
|
|
|
|
|
|
|
|
|
|
* pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
|
|
|
|
|
build_vl_exp. Iterate through the operands, recursively
|
|
|
|
|
processing each one.
|
|
|
|
|
(tsubst_copy_and_build) <CALL_EXPR>: Update to use new
|
|
|
|
|
CALL_EXPR accessor macros.
|
|
|
|
|
(value_dependent_expression_p) <default>: Handle tcc_vl_exp
|
|
|
|
|
tree code classes. Use TREE_OPERAND_LENGTH instead of
|
|
|
|
|
TREE_CODE_LENGTH.
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_call_expr): Use build_nt_call_list
|
|
|
|
|
instead of build_nt.
|
|
|
|
|
(simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR
|
|
|
|
|
accessor macros. Use build_call_array to construct the
|
|
|
|
|
CALL_EXPR node instead of build3
|
|
|
|
|
|
|
|
|
|
* decl2.c (build_offset_ref_call_from_tree): Use
|
|
|
|
|
build_nt_call_list and build_min_non_dep_call_list instead
|
|
|
|
|
of build_min_nt and build_min_non_dep.
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
|
|
|
|
|
Use build_nt_call_list instead of build_min_nt.
|
|
|
|
|
|
2007-02-15 23:15:20 +01:00
|
|
|
|
2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/28943
|
|
|
|
|
* call.c (build_conditional_expr): Improve error message.
|
|
|
|
|
|
2007-02-13 00:55:17 +01:00
|
|
|
|
2007-02-13 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
* friend.c (do_friend): Annotate warning about friend
|
|
|
|
|
declarations in templates with OPT_Wnon_template_friend.
|
|
|
|
|
Convert informal message from warning() to inform().
|
|
|
|
|
|
2007-02-12 23:17:06 +01:00
|
|
|
|
2007-02-12 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/14622
|
|
|
|
|
* pt.c (do_decl_instantiation): Detect type mismatches in explicit
|
|
|
|
|
instantiations for variables.
|
|
|
|
|
|
2007-02-12 10:32:08 +01:00
|
|
|
|
2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR middle-end/7651
|
|
|
|
|
* cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings.
|
|
|
|
|
Check warn_unused_value just once.
|
|
|
|
|
|
2007-02-11 21:15:13 +01:00
|
|
|
|
2007-02-11 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26988
|
|
|
|
|
* pt.c (determine_specialization): Use skip_artificial_parms_for.
|
|
|
|
|
(fn_type_unificiation): Likewise.
|
|
|
|
|
(get_bindings): Likewise.
|
|
|
|
|
|
|
|
|
|
o2007-02-06 Mark Mitchell <mark@codesourcery.com>
|
2007-02-11 19:58:05 +01:00
|
|
|
|
|
|
|
|
|
PR target/29487
|
|
|
|
|
* decl.c (finish_function): Use DECL_REPLACEABLE.
|
|
|
|
|
* tree.c (cp_cannot_inline_tree_fn): Likewise.
|
|
|
|
|
|
2007-02-11 00:30:13 +01:00
|
|
|
|
2007-02-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_primary_expression): Reformat overly long lines.
|
|
|
|
|
|
Makefile.in (libgcc-support, [...]): Add emutls.c.
gcc/ChangeLog:
* Makefile.in (libgcc-support, libgcc.mvars): Add emutls.c.
* builtin-types.def (BT_WORD): Make unsigned.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
(BUILT_IN_EMUTLS_REGISTER_COMMON): New.
* c-decl.c (grokdeclarator): Don't error if !have_tls.
* c-parser.c (c_parser_omp_threadprivate): Likewise.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
emulated tls.
* expr.c (emutls_var_address): New.
(expand_expr_real_1): Expand emulated tls.
(expand_expr_addr_expr_1): Likewise.
* libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
* output.h (emutls_finish): Declare.
* toplev.c (compile_file): Call it.
* tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
address before wrapping in CONST.
* varasm.c (emutls_htab, emutls_object_type): New.
(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
(get_emutls_object_name, get_emutls_object_type): New.
(get_emutls_init_templ_addr, emutls_decl): New.
(emutls_common_1, emutls_finish): New.
(assemble_variable): When emulating tls, swap decls; generate
constructor for the emutls objects.
(do_assemble_alias): When emulating tls, swap decl and target name.
(default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
for emulated tls.
* varpool.c (decide_is_variable_needed): Look at force_output.
Recurse for emulated tls.
(cgraph_varpool_remove_unreferenced_decls): Remove checks redundant
with decide_is_variable_needed.
* emutls.c: New file.
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
tls_object for real tls.
gcc/cp/ChangeLog:
* decl.c (grokvardecl): Don't error if !have_tls.
(grokdeclarator): Likewise.
* parser.c (cp_parser_omp_threadprivate): Likewise.
gcc/fortran/ChangeLog:
* f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
and __emutls_register_common.
* openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
* trans-common.c (build_common_decl): Don't check have_tls.
* trans-decl.c (gfc_finish_var_decl): Likewise.
* types.def (BT_WORD, BT_FN_PTR_PTR): New.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
gcc/testsuite/ChangeLog:
* lib/target-supports.exp (check_effective_target_tls): Redefine
to mean non-emulated tls.
* gcc.dg/tls/alias-1.c: Remove tls requirement.
* gcc.dg/tls/asm-1.c, gcc.dg/tls/debug-1.c, gcc.dg/tls/diag-1.c,
gcc.dg/tls/diag-2.c, gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c,
gcc.dg/tls/diag-5.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c,
gcc.dg/tls/opt-10.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c,
gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c, gcc.dg/tls/pic-1.c,
gcc.dg/tls/struct-1.c, gcc.dg/tls/trivial.c: Likewise.
From-SVN: r121800
2007-02-10 20:19:10 +01:00
|
|
|
|
2007-02-10 Richard Henderson <rth@redhat.com>, Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokvardecl): Don't error if !have_tls.
|
|
|
|
|
(grokdeclarator): Likewise.
|
|
|
|
|
* parser.c (cp_parser_omp_threadprivate): Likewise.
|
|
|
|
|
|
2007-02-07 13:16:22 +01:00
|
|
|
|
2007-02-07 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/30703
|
|
|
|
|
* cp-gimplify.c (cp_genericize_r): Don't dereference invisiref
|
|
|
|
|
parameters and result decls in omp clauses.
|
|
|
|
|
(cxx_omp_privatize_by_reference): Pass also invisiref PARM_DECLs
|
|
|
|
|
by reference.
|
|
|
|
|
|
2007-02-05 13:43:17 +01:00
|
|
|
|
2007-02-05 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR bootstrap/30510
|
|
|
|
|
* parser.c (cp_parser_class_specifier): Always initialize bases.
|
|
|
|
|
|
2007-02-05 08:57:49 +01:00
|
|
|
|
2007-02-05 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (OMP_ATOMIC_CODE): Delete.
|
|
|
|
|
(OMP_ATOMIC_DEPENDENT_P): Rewrite.
|
|
|
|
|
* pt.c (tsubst_expr): Adjust for new format of dependent OMP_ATOMIC
|
|
|
|
|
expressions.
|
|
|
|
|
* semantics.c (finish_omp_atomic): Store a whole expression node
|
|
|
|
|
in operand 1, and integer_zero_node in operand 0, for dependent
|
|
|
|
|
OMP_ATOMIC. Rewrite to make flow easier to understand.
|
|
|
|
|
|
2007-02-04 06:05:06 +01:00
|
|
|
|
2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Use OPT_Wreturn_type instead of 0.
|
|
|
|
|
|
class.c, [...]: Follow spelling conventions.
* class.c, cp-tree.h, decl.c, decl2.c, g++spec.c, init.c,
parser.c, pt.c, tree.c, typeck.c: Follow spelling conventions.
From-SVN: r121566
2007-02-04 05:24:53 +01:00
|
|
|
|
2007-02-04 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* class.c, cp-tree.h, decl.c, decl2.c, g++spec.c, init.c,
|
|
|
|
|
parser.c, pt.c, tree.c, typeck.c: Follow spelling conventions.
|
|
|
|
|
|
2007-02-04 04:59:02 +01:00
|
|
|
|
2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_lexer_get_preprocessor_token): Attach the C++0x
|
|
|
|
|
keyword warning to -Wc++0x-compat.
|
|
|
|
|
|
2007-02-04 01:37:32 +01:00
|
|
|
|
2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Update documentation.
|
|
|
|
|
|
2007-02-02 13:23:18 +01:00
|
|
|
|
2007-02-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/30536
|
|
|
|
|
* decl.c (grokdeclarator): If __thread is used together with
|
|
|
|
|
a storage class other than extern and static, clear thread_p
|
|
|
|
|
after issuing diagnostics and fall through to checking the
|
|
|
|
|
storage class.
|
|
|
|
|
|
2007-01-31 03:15:45 +01:00
|
|
|
|
2007-01-30 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* error.c (dump_type_suffix): Avoid use of cp_build_binary_op when
|
|
|
|
|
calculating the size of an array (to avoid recursive errors).
|
|
|
|
|
|
2007-01-30 23:29:11 +01:00
|
|
|
|
2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/24745
|
|
|
|
|
* typeck.c (build_binary_op): Fix logic for warning. Move warning
|
|
|
|
|
to -Wpointer-arith.
|
|
|
|
|
* call.c (convert_like_real): Don't warn when converting to
|
|
|
|
|
boolean type.
|
|
|
|
|
|
2007-01-29 22:05:58 +01:00
|
|
|
|
2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* decl.c (pop_label): Replace warning with call to
|
|
|
|
|
warn_for_unused_label.
|
|
|
|
|
|
2007-01-28 19:09:25 +01:00
|
|
|
|
2007-01-28 Andrew Pinski <pinskia@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR C++/28988
|
|
|
|
|
* semantics.c (finish_pseudo_destructor_expr): Check the
|
|
|
|
|
destrutor name by calling check_dtor_name.
|
|
|
|
|
|
2007-01-25 05:02:36 +01:00
|
|
|
|
2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
|
|
|
|
|
|
|
|
|
|
* lex.c (D_CPP0X): Rename.
|
|
|
|
|
(D_CXX0X): To this.
|
|
|
|
|
(reswords): D_CPP0X -> D_CXX0X.
|
|
|
|
|
(init_reswords): Ditto.
|
|
|
|
|
* parser.c (cp_lexer_get_preprocessor_token): Warn about the use
|
|
|
|
|
of C++0x keywords as identifiers.
|
|
|
|
|
|
2007-01-23 23:33:51 +01:00
|
|
|
|
2007-01-23 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/27492
|
|
|
|
|
* decl.c (duplicate_decls): Don't reset DECL_INVALID_OVERRIDER_P for
|
|
|
|
|
function decls.
|
|
|
|
|
|
2007-01-23 22:46:51 +01:00
|
|
|
|
2007-01-23 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (convert_for_assignment): Only warn about a = b = c
|
|
|
|
|
when converting to bool.
|
|
|
|
|
|
2007-01-23 19:17:40 +01:00
|
|
|
|
2007-01-23 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* call.c (null_ptr_cst_p): Replace use of TREE_CONSTANT_OVERFLOW with
|
|
|
|
|
TREE_OVERFLOW.
|
|
|
|
|
* typeck.c (ignore_overflows): Remove the remaining uses of
|
|
|
|
|
TREE_CONSTANT_OVERFLOW.
|
|
|
|
|
|
2007-01-20 01:30:19 +01:00
|
|
|
|
2007-01-20 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* decl2.c (start_objects, start_static_storage_duration_function):
|
|
|
|
|
Do not make the functions uninlinable.
|
|
|
|
|
|
vec.h (VEC_reserve_exact): Define.
./: * vec.h (VEC_reserve_exact): Define.
(vec_gc_p_reserve_exact): Declare.
(vec_gc_o_reserve_exact): Declare.
(vec_heap_p_reserve_exact): Declare.
(vec_heap_o_reserve_exact): Declare.
(VEC_OP (T,A,reserve_exact)): New static inline function, three
versions.
(VEC_OP (T,A,reserve)) [all versions]: Remove handling of
negative parameter.
(VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
(VEC_OP (T,A,copy)) [all versions]: Likewise.
(VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
* vec.c (calculate_allocation): Add exact parameter. Change all
callers.
(vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
(vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
(vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
(vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
(vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
(vec_heap_p_reserve_exact): New function.
(vec_heap_o_reserve_exact): New function.
cp/:
* class.c (add_method): Call VEC_reserve_exact rather than passing
a negative size to VEC_reserve.
From-SVN: r120861
2007-01-17 18:42:10 +01:00
|
|
|
|
2007-01-17 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
|
|
* class.c (add_method): Call VEC_reserve_exact rather than passing
|
|
|
|
|
a negative size to VEC_reserve.
|
|
|
|
|
|
2007-01-11 20:46:03 +01:00
|
|
|
|
2007-01-11 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/29573
|
|
|
|
|
* tree.c (cp_tree_equal): Properly handle MODOP_EXPR trees.
|
|
|
|
|
|
2007-01-11 04:24:33 +01:00
|
|
|
|
2007-01-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28999
|
|
|
|
|
* decl.c (make_typename_type): If the qualified name is not a
|
|
|
|
|
type, issue an error.
|
|
|
|
|
* parser.c (cp_parser_elaborated_type_specifier): Fix comment
|
|
|
|
|
formatting.
|
|
|
|
|
|
2007-01-09 08:48:38 +01:00
|
|
|
|
2007-01-08 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* rtti.c: Include target.h.
|
|
|
|
|
(emit_support_tinfos): If ! targetm.cxx.library_rtti_comdat (),
|
|
|
|
|
don't emit typeinfo for fundamental types as weak.
|
|
|
|
|
* Make-lang.in (cp/rtti.o): Update and correct dependencies.
|
|
|
|
|
|
2007-01-08 23:53:20 +01:00
|
|
|
|
2007-01-08 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* cvt.c (cp_convert_to_pointer): Use build_int_cst_type.
|
|
|
|
|
|
2007-01-08 10:25:07 +01:00
|
|
|
|
2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* call.c (standard_conversion): Pass flag to
|
|
|
|
|
vector_types_convertible_p to disallow emission of note.
|
|
|
|
|
* typeck.c (convert_for_assignment): Pass flag to
|
|
|
|
|
vector_types_convertible_p to allow emission of note.
|
|
|
|
|
(ptr_reasonably_similar): Pass flag to vector_types_convertible_p
|
|
|
|
|
to disallow emission of note.
|
|
|
|
|
|
2007-01-08 00:39:55 +01:00
|
|
|
|
2007-01-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/28986
|
|
|
|
|
* typeck.c (build_binary_op): Call overflow_warning if
|
|
|
|
|
TREE_OVERFLOW_P is true for the result and not for any of the
|
|
|
|
|
operands.
|
|
|
|
|
|
2007-01-06 02:06:04 +01:00
|
|
|
|
2007-01-06 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19439
|
|
|
|
|
* class.c (add_method): Don't wait until template
|
|
|
|
|
instantiation time to complain about duplicate methods.
|
|
|
|
|
|
2007-01-05 22:57:01 +01:00
|
|
|
|
2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c/19978
|
|
|
|
|
* semantics.c (finish_unary_op_expr): Warn only if result
|
|
|
|
|
overflowed and operands did not.
|
|
|
|
|
|
2007-01-05 20:05:46 +01:00
|
|
|
|
2007-01-05 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_binary_op): Warn about comparing a non-weak
|
|
|
|
|
address to NULL.
|
|
|
|
|
|
2007-01-05 15:16:48 +01:00
|
|
|
|
2007-01-05 Douglas Gregor <doug.gregor@gmail.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (tsubst): Propagate the need for structural equality checks
|
|
|
|
|
when reducing the level of template parameters.
|
|
|
|
|
|
2007-01-03 09:37:54 +01:00
|
|
|
|
2007-01-03 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* pt.c: Fix a comment typo.
|
|
|
|
|
|
2007-01-02 18:49:07 +01:00
|
|
|
|
2006-01-02 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (maybe_convert_cond): Optionally warn when using an
|
|
|
|
|
assignment as a condition.
|
|
|
|
|
* typeck.c (convert_for_assignment): Optionally warn about
|
|
|
|
|
assigning the result of an assignment to a bool.
|
|
|
|
|
|
2007-01-02 15:26:29 +01:00
|
|
|
|
2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (canonical_template_parms): Correct typo in comment.
|
|
|
|
|
|
c-common.c (c_common_nodes_and_builtins): Since variants of void_type_node get built before it is given a name...
2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
* c-common.c(c_common_nodes_and_builtins): Since variants of
void_type_node get built before it is given a name, we need to
give those variants the name, too.
(complete_array_type): We need to work with the canonical main
type of the array, from which we will build the qualified version.
* params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
* print-tree.c (print_node): Display canonical type information
for each type.
* stor-layout.c (layout_type): When we don't know the
alignment of a type for which we're building an array, we end up
guessing wrong, so make the type require structural equality.
* tree.c (make_node_stat): When we build a new type, it is its
own canonical type.
(build_type_attribute_qual_variant): When building an attribute
variant, its canonical type is the non-attribute variant. However,
if the attributes are target-dependent and they differ, we need to
use structural equality checks for this type.
(build_qualified_type): A qualified type is not equivalent to its
unqualified variant; set the canonical type appropriately.
(build_distinct_type_copy): When building a distinct type from
another type, the new type is its own canonical type.
(build_variant_type_copy): When building a new type variant, we
assume that it is equivalent to the original type.
(build_pointer_type_for_mode): When building a pointer type, also
build a canonical type pointer.
(build_reference_type_for_mode): When building a reference type,
also build a canonical type reference.
(build_index_type): When we can't hash an index type (e.g.,
because its maximum value is negative), the index type requires
structural equality tests.
(build_array_type): Build the canonical form of an array type.
(build_function_type): Function types require structural equality,
because they contain default arguments, attributes, etc.
(build_method_type_directly): Ditto for method types.
(build_offset_type): Build the canonical offset type.
(build_complex_type): Build the canonical vector type.
(make_vector_type): Build the canonical vector type.
* tree.h (TYPE_CANONICAL): New.
(TYPE_STRUCTURAL_EQUALITY_P): New.
(SET_TYPE_STRUCTURAL_EQUALITY): New.
(struct tree_type): Added "canonical" field.
* params.h (VERIFY_CANONICAL_TYPES): New.
* doc/c-tree.texi (TYPE_CANONICAL): Document.
(TYPE_STRUCTURAL_EQUALITY_P): Document.
(SET_TYPE_STRUCTURAL_EQUALITY): Document.
* doc/invoke.texi (verify-canonical-types): Document --param
parameter for verifying canonical types.
2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
* typeck.c (structural_comptypes): Renamed from "comptypes".
(comptypes): Use canonical type information to perform fast type
comparison. When VERIFY_CANONICAL_TYPES, verify that the
canonical type comparison returns the same results as we would see
from the current, structural check. Support COMPARE_STRUCTURAL
when we need structural checks.
* decl.c (typename_compare): Fix comment.
(build_typename_type): TYPENAME_TYPE nodes require structural
equality checks, because they resolve different based on the
current class type.
(make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
require structural equality checks (for now).
(build_ptrmemfunc_type): Build the canonical pointer to member
function type.
(compute_array_index_type): Whenever we build a new index type
to represent the size of an array in a template, we need to mark
this index type as requiring structural equality. This goes for
arrays with value-dependent sizes with the current ABI, or all
arrays with ABI-1.
* tree.c (cplus_array_hash): New.
(struct cplus_array_info): New.
(cplus_array_compare): New.
(cplus_array_htab): New.
(build_cplus_array_type_1): Use a hash table to cache the array
types we build. Build the canonical array type for each array
type.
(cp_build_qualified_type_real): When building a cv-qualified array
type, use the hash table of array types and build canonical array
types as necessary.
(bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
use structural equality (for now).
* cp-tree.h (COMPARE_STRUCTURAL): New.
* pt.c (canonical_template_parms): New.
(canonical_type_parameter): New.
(process_template_parm): Find the canonical type parameter.
(lookup_template_class): When we have named the primary template
type, set the canonical type for our template class to the primary
template type. If any of the template arguments need structural
equality checks, the template class needs structural equality
checks.
(tsubst): When reducing the level of a template template
parameter, we require structural equality tests for the resulting
parameter because its template parameters have not had their types
canonicalized. When reducing a template type parameter, find the
canonical reduced type parameter.
(any_template_arguments_need_structural_equality_p): New.
2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
* objc-act.c (objc_build_volatilized_type): Keep track of
canonical types.
(objc_get_protocol_qualified_type): Ditto.
From-SVN: r120341
2007-01-02 15:23:26 +01:00
|
|
|
|
2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (structural_comptypes): Renamed from "comptypes".
|
|
|
|
|
(comptypes): Use canonical type information to perform fast type
|
|
|
|
|
comparison. When VERIFY_CANONICAL_TYPES, verify that the
|
|
|
|
|
canonical type comparison returns the same results as we would see
|
|
|
|
|
from the current, structural check. Support COMPARE_STRUCTURAL
|
|
|
|
|
when we need structural checks.
|
|
|
|
|
* decl.c (typename_compare): Fix comment.
|
|
|
|
|
(build_typename_type): TYPENAME_TYPE nodes require structural
|
|
|
|
|
equality checks, because they resolve different based on the
|
|
|
|
|
current class type.
|
|
|
|
|
(make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
|
|
|
|
|
require structural equality checks (for now).
|
|
|
|
|
(build_ptrmemfunc_type): Build the canonical pointer to member
|
|
|
|
|
function type.
|
|
|
|
|
(compute_array_index_type): Whenever we build a new index type
|
|
|
|
|
to represent the size of an array in a template, we need to mark
|
|
|
|
|
this index type as requiring structural equality. This goes for
|
|
|
|
|
arrays with value-dependent sizes with the current ABI, or all
|
|
|
|
|
arrays with ABI-1.
|
|
|
|
|
* tree.c (cplus_array_hash): New.
|
|
|
|
|
(struct cplus_array_info): New.
|
|
|
|
|
(cplus_array_compare): New.
|
|
|
|
|
(cplus_array_htab): New.
|
|
|
|
|
(build_cplus_array_type_1): Use a hash table to cache the array
|
|
|
|
|
types we build. Build the canonical array type for each array
|
|
|
|
|
type.
|
|
|
|
|
(cp_build_qualified_type_real): When building a cv-qualified array
|
|
|
|
|
type, use the hash table of array types and build canonical array
|
|
|
|
|
types as necessary.
|
|
|
|
|
(bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
|
|
|
|
|
use structural equality (for now).
|
|
|
|
|
* cp-tree.h (COMPARE_STRUCTURAL): New.
|
|
|
|
|
* pt.c (canonical_template_parms): New.
|
|
|
|
|
(canonical_type_parameter): New.
|
|
|
|
|
(process_template_parm): Find the canonical type parameter.
|
|
|
|
|
(lookup_template_class): When we have named the primary template
|
|
|
|
|
type, set the canonical type for our template class to the primary
|
|
|
|
|
template type. If any of the template arguments need structural
|
|
|
|
|
equality checks, the template class needs structural equality
|
|
|
|
|
checks.
|
|
|
|
|
(tsubst): When reducing the level of a template template
|
|
|
|
|
parameter, we require structural equality tests for the resulting
|
|
|
|
|
parameter because its template parameters have not had their types
|
|
|
|
|
canonicalized. When reducing a template type parameter, find the
|
|
|
|
|
canonical reduced type parameter.
|
|
|
|
|
(any_template_arguments_need_structural_equality_p): New.
|
|
|
|
|
|
2006-12-31 17:09:07 +01:00
|
|
|
|
2006-12-31 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/29731
|
|
|
|
|
* parser.c (cp_parser_primary_expression): Return error_mark_node when
|
|
|
|
|
a statement-expression is found outside of a function body.
|
|
|
|
|
|
2006-12-28 07:48:38 +01:00
|
|
|
|
2006-12-28 Kazu Hirata <kazu@codesourcery.com>
|
2006-12-28 07:46:16 +01:00
|
|
|
|
|
2006-12-28 07:51:24 +01:00
|
|
|
|
* cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
|
|
|
|
|
Remove.
|
2006-12-28 07:46:16 +01:00
|
|
|
|
|
2006-12-28 07:48:38 +01:00
|
|
|
|
* decl2.c: Fix a comment typo.
|
|
|
|
|
|
2006-12-22 09:31:03 +01:00
|
|
|
|
2006-12-21 Andrew Pinski <pinskia@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR C++/30225
|
|
|
|
|
* decl.c (cxx_builtin_function): Only copy the decl if adding
|
|
|
|
|
it to the std namespace.
|
|
|
|
|
|
2006-12-22 08:30:55 +01:00
|
|
|
|
2006-12-21 Andrew Pinski <pinskia@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR C++/30168
|
|
|
|
|
* optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
|
|
|
|
|
|
2006-12-22 02:10:59 +01:00
|
|
|
|
2006-12-22 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c: Fix a coment typo.
|
|
|
|
|
|
2006-12-18 20:56:58 +01:00
|
|
|
|
2006-12-18 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (start_preparsed_function): Add support for
|
|
|
|
|
-Wmissing-declarations.
|
|
|
|
|
|
2006-12-16 09:51:42 +01:00
|
|
|
|
2006-12-16 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/29475
|
|
|
|
|
* cp-tree.h (struct deferred_access_check): New structure to represent a
|
|
|
|
|
deferred access check. It replaces the previous representation as a tree.
|
|
|
|
|
(get_deferred_access_checks): Return a vector of struct
|
|
|
|
|
deferred_access_check instead of a tree list.
|
|
|
|
|
(perform_access_checks): Take a vector of struct deferred_access_check
|
|
|
|
|
instead of a tree list.
|
|
|
|
|
* semantics.c (struct deferred_access): Store the deferred access checks
|
|
|
|
|
as a vector of struct deferred_access_check instead of a tree list.
|
|
|
|
|
(push_deferring_access_checks): Handle the change in struct
|
|
|
|
|
deferred_access.
|
|
|
|
|
(get_deferred_access_checks): Likewise.
|
|
|
|
|
(pop_to_parent_deferring_access_checks): Likewise.
|
|
|
|
|
(perform_or_defer_access_check): Likewise.
|
|
|
|
|
(perform_access_checks): Take a vector of struct deferred_access_check
|
|
|
|
|
instead of a tree list.
|
|
|
|
|
* parser.c (struct tree_check): New structure to store various data
|
|
|
|
|
associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
|
|
|
|
|
(struct cp_token): Changed the value field to be a union with a pointer to
|
|
|
|
|
a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
|
|
|
|
|
tokens and a tree field for all other tokens.
|
|
|
|
|
(eof_token): Adjusted due to the change in struct cp_token.
|
|
|
|
|
(cp_lexer_get_preprocessor_token): Likewise.
|
|
|
|
|
(cp_lexer_purge_token): Likewise.
|
|
|
|
|
(cp_lexer_purge_tokens_after): Likewise.
|
|
|
|
|
(cp_lexer_print_token): Likewise.
|
|
|
|
|
(cp_parser_error): Likewise.
|
|
|
|
|
(cp_parser_identifier): Likewise.
|
|
|
|
|
(cp_parser_string_literal): Likewise.
|
|
|
|
|
(cp_parser_primary_expression): Likewise.
|
|
|
|
|
(cp_parser_unqualified_id): Likewise.
|
|
|
|
|
(cp_parser_parenthesized_expression_list): Likewise.
|
|
|
|
|
(cp_parser_storage_class_specifier_opt): Likewise.
|
|
|
|
|
(cp_parser_function_specifier_opt): Likewise.
|
|
|
|
|
(cp_parser_type_specifier): Likewise.
|
|
|
|
|
(cp_parser_simple_type_specifier): Likewise.
|
|
|
|
|
(cp_parser_initializer_list): Likewise.
|
|
|
|
|
(cp_parser_member_specification_opt): Likewise.
|
|
|
|
|
(cp_parser_attribute_list): Likewise.
|
|
|
|
|
(cp_parser_objc_expression): Likewise.
|
|
|
|
|
(cp_parser_objc_protocol_qualifiers): Likewise.
|
|
|
|
|
(cp_parser_objc_selector): Likewise.
|
|
|
|
|
(cp_parser_objc_declaration): Likewise.
|
|
|
|
|
(cp_parser_objc_statement): Likewise.
|
|
|
|
|
(cp_parser_omp_clause_name): Likewise.
|
|
|
|
|
(cp_parser_omp_clause_default): Likewise.
|
|
|
|
|
(cp_parser_omp_clause_schedule): Likewise.
|
|
|
|
|
(cp_parser_omp_parallel): Likewise.
|
|
|
|
|
(cp_parser_initial_pragma): Likewise.
|
|
|
|
|
(pragma_lex): Likewise.
|
|
|
|
|
(cp_parser_pre_parsed_nested_name_specifier): Likewise.
|
|
|
|
|
(cp_parser_nested_name_specifier_opt): Likewise.
|
|
|
|
|
Use cp_token::u::tree_check_value to save the token's value, the
|
|
|
|
|
associated deferred checks and its qualifying scope.
|
|
|
|
|
(cp_parser_template_id): Likewise.
|
|
|
|
|
(cp_parser_template_declaration_after_export): Adjusted the call to
|
|
|
|
|
get_deferred_access_checks.
|
|
|
|
|
(cp_parser_init_declarator): Take the access checks as a vector of struct
|
|
|
|
|
deferred_access_check instead of a tree list.
|
|
|
|
|
(cp_parser_single_declaration): Likewise.
|
|
|
|
|
(cp_parser_perform_template_parameter_access_checks): Likewise.
|
|
|
|
|
(cp_parser_simple_declaration): Adjusted the call to
|
|
|
|
|
cp_parser_init_declarator.
|
|
|
|
|
(cp_parser_explicit_specialization): Adjusted the call to
|
|
|
|
|
cp_parser_single_declaration.
|
|
|
|
|
|
2006-12-14 06:49:06 +01:00
|
|
|
|
2006-12-13 Ian Lance Taylor <iant@google.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19564
|
|
|
|
|
PR c++/19756
|
|
|
|
|
* parser.c (cp_parser_expression_stack_entry): Add field
|
|
|
|
|
lhs_type.
|
|
|
|
|
(cp_parser_binary_expression): Track tree code of left hand side
|
|
|
|
|
of expression. Use it when calling build_x_binary_op.
|
|
|
|
|
(cp_parser_selection_statement): Add if_p parameter. Change all
|
|
|
|
|
callers. Warn about ambiguous else.
|
|
|
|
|
(cp_parser_statement): Add if_p parameter. Change all callers.
|
|
|
|
|
(cp_parser_implicitly_scoped_statement): Likewise.
|
|
|
|
|
* typeck.c (build_x_binary_op): Add parameters arg1_code and
|
|
|
|
|
arg2_code. Change all callers. Call warn_about_parentheses.
|
|
|
|
|
* cp-tree.h (build_x_binary_op): Update declaration.
|
|
|
|
|
|
2006-12-12 11:40:39 +01:00
|
|
|
|
2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* decl.c (build_enumerator): Update error message to match C
|
|
|
|
|
front-end.
|
|
|
|
|
|
Move all varpool routines out of cgraph/cgraphunit to varpool.c
Move all varpool routines out of cgraph/cgraphunit to varpool.c
* cgraph.c: Update comments.
(cgraph_varpool_hash,
cgraph_varpool_nodes, cgraph_varpool_last_needed_node
cgraph_varpool_node_name, cgraph_varpool_node,
cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node,
cgraph_variable_initializer_availability): Move to
varpool.c and drop cgraph_ prefixes.
(cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue,
cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl):
move to varpool.c; drop cgraph_ prefix; make static.
(dump_cgraph_varpool_node): Move to varpool.c under name
dump_varpool_node.
(dump_varpool, hash_varpool_node, eq_varpool_node,
decide_is_variable_needed): Move to varpool.c
(decl_assembler_name_equal): Move to tree.c.
(availability_names): Rename to ...
(cgraph_availability_names): ... this one.
(dump_cgraph_node): Update.
* cgraph.h: Reorder declarations now in varpool.c
(cgraph_vailablity_names): Declare.
(struct cgraph_varpool_node): Rename to ...
(struct varpool_node): ... this one.
(cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue,
cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node,
cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node,
cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node,
cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls,
cgraph_variable_initializer_availability): Rename to ...
(varpool_first_unanalyzed_node, varpool_nodes_queue,
varpool_first_unanalyzed_node, varpool_node,
varpool_node_for_asm, varpool_mark_needed_node,
varpool_finalize_decl, varpool_enqueue_needed_node,
varpool_assemble_pending_decls, variable_initializer_availability):
Rename to ...
* tree.c (decl_assembler_name_equal): Move here from cgraph.c.
* tree.h (decl_assembler_name_equal): Declare.
* omp-low.c (lower_omp_critical): Update.
* ipa-reference (analyze_variable, static_execute): Likewise.
* toplev.c (wrapup_global_declaration_2, compile_file): Update.
* cgraphunit.c: Update comments.
(cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name
varpool_assembled_nodes_queue.
(cgraph_varpool_analyze_pending_decls): Move to varpool.c under name
varpool_analyze_pending_decls.
(cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name
varpool_remove_unreferenced_decls.
(record_reference): Update.
(cgraph_create_edges): Update.
(record_referneces_in_initializer): New function.
(cgraph_varpool_assemble_decl): Move to varpool.c under name
varpool_assemble_decl; make global.
(cgraph_varpool_assemble_pending_decls): Move to varpool.c under name
varpool_assemble_pending_decls.
(process_function_and_variable_attributes, cgraph_finalize_compilation_unit,
struct cgraph_order_sort, cgraph_output_in_order,
cgraph_function_and_variable_invisibility, cgraph_optimize,
cgraph_increase_alignment): Update.
* dwarf2out.c (decls_for_scope): Likewise.
* ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise.
* except.c (output_ttype): Likewise.
* varasm.c (mark_decl_referenced): Likewise.
(find_decl_and_mark_referenced, assemble_alias): update.
* Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c
* passes.c (rest_of_decl_compilation): Update.
* cp/decl2.c (var_finalized_p): Update for renamed varpool functions.
* fortran/f59-lang.c (gfc_expand_function): Update for renamed varpool functions.
From-SVN: r119731
2006-12-11 09:07:52 +01:00
|
|
|
|
2006-12-11 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* decl2.c (var_finalized_p): Update for renamed varpool functions.
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
2006-12-09 Zack Weinberg <zackw@panix.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (yydebug, enum pragma_omp_clause): Delete.
|
|
|
|
|
|
2006-12-08 07:27:22 +01:00
|
|
|
|
2006-12-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29732
|
|
|
|
|
* cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
|
|
|
|
|
(explicit_class_specialization_p): Declare.
|
|
|
|
|
* pt.c (explicit_class_specialization_p): New function.
|
|
|
|
|
* parser.c (cp_parser_init_declarator): Check correct number of
|
|
|
|
|
template parameters for in-class function definitions.
|
|
|
|
|
(cp_parser_check_declrator_template_parameters): Stop looking for
|
|
|
|
|
template classes when we find an explicit specialization.
|
|
|
|
|
|
2006-12-07 20:16:38 +01:00
|
|
|
|
2006-12-07 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
PR c++/29980
|
|
|
|
|
* cp_parser_elaborated_type_specifier: Check
|
|
|
|
|
the return value of check_elaborated_type_specifier.
|
|
|
|
|
|
2006-12-06 23:54:51 +01:00
|
|
|
|
2006-12-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29730
|
|
|
|
|
* parser.c (cp_parser_init_declarator): Reject initialization of
|
|
|
|
|
functions.
|
|
|
|
|
|
2006-12-05 22:33:20 +01:00
|
|
|
|
2006-12-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-12-06 06:12:46 +01:00
|
|
|
|
PR c++/29729
|
|
|
|
|
* decl2.c (check_member_template): Move check for member
|
|
|
|
|
templates in local classes to ...
|
|
|
|
|
* parser.c (cp_parser_template_declaration_after_export):
|
|
|
|
|
... here.
|
|
|
|
|
|
2006-12-05 22:33:20 +01:00
|
|
|
|
PR c++/29728
|
|
|
|
|
* decl.c (check_array_designated_initializer): New function.
|
|
|
|
|
(maybe_deduce_size_from_array_init): Use it.
|
|
|
|
|
(reshape_init_array): Likewise.
|
|
|
|
|
|
2006-12-05 18:26:05 +01:00
|
|
|
|
2006-12-05 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
Merge from gimple-tuples-branch.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-12-05 18:26:05 +01:00
|
|
|
|
2006-10-05 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
|
|
|
|
|
(cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
|
|
|
|
|
(cxx_omp_clause_copy_ctor): Same.
|
|
|
|
|
(cxx_omp_clause_assign_op): Same.
|
|
|
|
|
|
|
|
|
|
2006-09-28 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* cp-tree.h (union lang_tree_node): Gimple statements do not
|
2006-12-05 18:26:05 +01:00
|
|
|
|
have a TREE_CHAIN.
|
|
|
|
|
(TREE_INDIRECT_USING): Look in base.
|
|
|
|
|
|
2006-12-04 23:51:42 +01:00
|
|
|
|
2006-12-04 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* cp-objcp-common.c (cp_expr_size): Return NULL in the case
|
|
|
|
|
size is undefined.
|
|
|
|
|
|
2006-12-04 19:00:32 +01:00
|
|
|
|
2006-12-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-12-04 19:08:11 +01:00
|
|
|
|
PR c++/29733
|
|
|
|
|
* pt.c (tsubst_decl): Disallow variables of function type.
|
|
|
|
|
|
2006-12-04 19:00:32 +01:00
|
|
|
|
PR c++/29632
|
|
|
|
|
* call.c (add_builtin_candidate): Do not permit NULL pointer
|
|
|
|
|
constants to be compared with template parameters.
|
|
|
|
|
|
2006-12-04 08:47:32 +01:00
|
|
|
|
2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
|
|
|
|
|
Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
|
|
|
|
|
|
2006-12-04 03:24:42 +01:00
|
|
|
|
2006-12-03 Richard Henderson <rth@redhat.com>
|
2006-12-10 06:09:29 +01:00
|
|
|
|
Andrew Pinski <pinskia@gmail.com>
|
2006-12-04 03:24:42 +01:00
|
|
|
|
|
|
|
|
|
PR C++/14329
|
|
|
|
|
* error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
|
|
|
|
|
|
2006-12-02 18:01:04 +01:00
|
|
|
|
2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
|
|
|
|
|
|
|
|
|
PR C++/30033
|
|
|
|
|
* decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
|
|
|
|
|
|
2006-12-02 02:44:17 +01:00
|
|
|
|
2006-12-02 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c: Follow spelling conventions.
|
|
|
|
|
|
2006-12-02 00:01:05 +01:00
|
|
|
|
2006-12-01 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (poplevel): Check DECL_INITIAL invariant.
|
|
|
|
|
(duplicate_decls): Preserve DECL_INITIAL when eliminating
|
|
|
|
|
a new definition in favour of an old declaration.
|
|
|
|
|
(start_preparsed_function): Define and document value of
|
|
|
|
|
DECL_INITIAL before and after routine.
|
|
|
|
|
(finish_function): Check DECL_INITIAL invariant.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* parser.c
|
|
|
|
|
(cp_parser_function_definition_from_specifiers_and_declarator):
|
2006-12-02 00:01:05 +01:00
|
|
|
|
Skip duplicate function definitions.
|
|
|
|
|
|
2006-12-01 22:35:25 +01:00
|
|
|
|
2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/30022
|
|
|
|
|
* typeck.c (type_after_usual_arithmetic_conversions):
|
|
|
|
|
Fix assertion for vector types.
|
|
|
|
|
(build_binary_op): Use temporary for inner type of vector types.
|
|
|
|
|
|
2006-12-01 16:55:11 +01:00
|
|
|
|
2006-12-01 Ryan Mansfield <rmansfield@qnx.com>
|
|
|
|
|
|
2006-12-02 18:01:04 +01:00
|
|
|
|
PR c++/29066
|
2006-12-01 16:55:11 +01:00
|
|
|
|
* typeck.c (build_binary_op): Fix pointer to member function
|
|
|
|
|
comparison for ptrmemfunc_vbit_in_delta targets.
|
|
|
|
|
|
2006-12-01 00:08:27 +01:00
|
|
|
|
2006-12-01 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/18313
|
|
|
|
|
* decl.c (grokdeclarator): Warn for type qualifiers on return
|
|
|
|
|
type for non-dependent types.
|
|
|
|
|
* pt.c (tsubst_function_type): Warn for type qualifiers on
|
|
|
|
|
return type for dependent types.
|
|
|
|
|
|
2006-11-30 22:53:57 +01:00
|
|
|
|
2006-11-30 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* rtti.c (get_tinfo_decl): Handle return value from
|
|
|
|
|
pushdecl_top_level_and_finish.
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
2006-11-29 Lee Millward <lee.millward@codesourcery.com>
|
2006-11-29 16:19:39 +01:00
|
|
|
|
|
|
|
|
|
PR c++/29022
|
|
|
|
|
* parser.c (cp_parser_class_head): Move processing
|
|
|
|
|
of any base classes to...
|
|
|
|
|
(cp_parser_class_specifier) ...here. Take an extra
|
|
|
|
|
tree* parameter for any base classes. Only process
|
|
|
|
|
them if the opening brace was found.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-11-28 13:56:53 +01:00
|
|
|
|
2006-11-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29735
|
|
|
|
|
* decl.c (grokfndecl): Check main's type after applying
|
|
|
|
|
attributes, not before.
|
|
|
|
|
|
2006-11-28 03:19:02 +01:00
|
|
|
|
2006-11-27 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* class.c (build_vcall_offset_vtbl_entries): Do not add vcall
|
|
|
|
|
entries for a primary construction virtual table.
|
|
|
|
|
|
2006-11-27 04:38:57 +01:00
|
|
|
|
2006-11-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29886
|
|
|
|
|
* parser.c (cp_parser): Add in_function_body.
|
|
|
|
|
(cp_parser_new): Initialize it.
|
|
|
|
|
(cp_parser_primary_expression): Use parser->in_function_body
|
|
|
|
|
instead of at_function_scope_p.
|
|
|
|
|
(cp_parser_asm_definition): Likewise.
|
|
|
|
|
(cp_parser_direct_declarator): Likewise.
|
|
|
|
|
(cp_parser_class_specifier): Clear parser->in_function_body.
|
|
|
|
|
(cp_parser_constructor_declarator_p): Use parser->in_function_body
|
|
|
|
|
instead of at_function_scope_p.
|
|
|
|
|
(cp_parser_function_body_after_declarator): Set
|
|
|
|
|
parser->in_function_body.
|
|
|
|
|
|
2006-11-21 21:23:03 +01:00
|
|
|
|
2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* cp-tree.def (STATIC_ASSERT): New.
|
2006-11-21 21:23:03 +01:00
|
|
|
|
* cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
|
|
|
|
|
* error.c (dump_decl): Handle STATIC_ASSERT.
|
|
|
|
|
* cp-tree.h (STATIC_ASSERT_CONDITION): New.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
(STATIC_ASSERT_MESSAGE): New.
|
2006-11-21 21:23:03 +01:00
|
|
|
|
(STATIC_ASSERT_SOURCE_LOCATION): New.
|
|
|
|
|
(struct tree_static_assert): New.
|
|
|
|
|
(enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
|
|
|
|
|
(union lang_tree_node): Add static_assertion.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
(finish_static_assert): Declare.
|
2006-11-21 21:23:03 +01:00
|
|
|
|
* cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
|
|
|
|
|
(pp_cxx_declaration): Handle STATIC_ASSERT.
|
|
|
|
|
* pt.c (instantiate_class_template): Handle
|
|
|
|
|
STATIC_ASSERT members.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
(tsubst_expr): Handle STATIC_ASSERT statements.
|
2006-11-21 21:23:03 +01:00
|
|
|
|
* semantics.c (finish_static_assert): New.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* lex.c (D_CPP0X): New.
|
|
|
|
|
(reswords): Add static_assert keyword.
|
|
|
|
|
(init_reswords): If not flag_cpp0x, mask out C++0x keywords.
|
|
|
|
|
* parser.c (cp_parser_block_declaration): Parse static
|
2006-11-21 21:23:03 +01:00
|
|
|
|
assertions.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
(cp_parser_static_assert): New.
|
|
|
|
|
(cp_parser_member_declaration): Parse static assertions.
|
2006-11-21 21:23:03 +01:00
|
|
|
|
|
2006-11-21 10:41:27 +01:00
|
|
|
|
2006-11-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2006-11-21 10:43:16 +01:00
|
|
|
|
PR c++/29570
|
|
|
|
|
* decl.c (cp_finish_decl): Check for value dependent brace enclosed
|
|
|
|
|
scalar initializer.
|
|
|
|
|
|
2006-11-21 10:41:27 +01:00
|
|
|
|
PR c++/29734
|
|
|
|
|
* cp-tree.h (WANT_VECTOR): Define.
|
|
|
|
|
(WANT_ARITH): Add WANT_VECTOR.
|
|
|
|
|
* cvt.c (build_expr_type_conversion): Handle vector types.
|
|
|
|
|
* typeck.c (build_unary_op): Add WANT_VECTOR to
|
|
|
|
|
build_expr_type_conversion flags.
|
|
|
|
|
|
2006-11-20 22:15:44 +01:00
|
|
|
|
2006-11-20 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/29475
|
|
|
|
|
* cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
|
|
|
|
|
extra argument that represents the declaration to use to print
|
|
|
|
|
potential error messages.
|
|
|
|
|
* init.c (build_offset_ref): Adjusted the call to
|
|
|
|
|
perform_or_defer_access_check.
|
|
|
|
|
* class.c (alter_access, resolve_address_of_overloaded_function):
|
|
|
|
|
Likewise.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* decl.c (make_typename_type, make_unbound_class_template): Likewise.
|
2006-11-20 22:15:44 +01:00
|
|
|
|
* search.c (lookup_member): Likewise.
|
|
|
|
|
* friend.c (add_friend): Likewise.
|
|
|
|
|
* parser.c (cp_parser_template_id,
|
|
|
|
|
cp_parser_pre_parsed_nested_name_specifier): Likewise.
|
|
|
|
|
* semantics.c (finish_non_static_data_member,
|
|
|
|
|
check_accessibility_of_qualified_id, finish_id_expression): Likewise.
|
|
|
|
|
(pop_to_parent_deferring_access_checks, perform_access_checks,
|
|
|
|
|
perform_or_defer_access_check): Adjusted the call to enforce_access.
|
|
|
|
|
* call.c (enforce_access): Use the new extra argument to build the
|
|
|
|
|
error message.
|
|
|
|
|
(build_op_delete_call): Adjusted the call to
|
|
|
|
|
perform_or_defer_access_check.
|
|
|
|
|
(build_over_call): Likewise.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-11-16 23:07:30 +01:00
|
|
|
|
2006-11-16 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (begin_scope): Use GGC_CNEW instead of
|
|
|
|
|
GGC_NEW and memset.
|
|
|
|
|
|
2006-11-14 00:28:25 +01:00
|
|
|
|
2006-11-13 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
|
|
|
|
|
base type info initializer has the correct type.
|
|
|
|
|
|
2006-11-13 18:49:43 +01:00
|
|
|
|
2006-11-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29518
|
|
|
|
|
* pt.c (coerce_template_parms): Do not skip_evaluation while
|
|
|
|
|
substituting template arguments.
|
|
|
|
|
|
tree.def (FIX_CEIL_EXPR, [...]): Remove unused tree codes.
2006-11-11 Richard Guenther <rguenther@suse.de>
* tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
Remove unused tree codes.
* tree-vrp.c (extract_range_from_unary_expr): Remove handling
of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
* tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
* tree.c (stabilize_reference): Likewise.
* fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
fold_unary): Likewise.
* tree-gimple.c (is_gimple_cast): Likewise.
* dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
* expr.c (expand_expr_real_1): Likewise.
* tree-eh.c (tree_could_trap_p): Likewise.
* gimplify.c (gimplify_expr): Likewise.
* tree-inline.c (estimate_num_insns_1): Likewise.
* tree-cfg.c (verify_expr): Likewise.
cp/
* typeck.c (build_unary_op): Likewise.
java/
* check-init.c (check_init): Likewise.
ada/
* trans.c (maybe_stabilize_reference): Likewise.
fortran/
* trans-intrinsic.c (enum rounding_mode): New enum.
(build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR,
FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR.
From-SVN: r118692
2006-11-11 13:05:16 +01:00
|
|
|
|
2006-11-11 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
|
|
|
|
|
FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
|
|
|
|
|
|
2006-11-04 01:51:51 +01:00
|
|
|
|
2006-11-03 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* call.c (build_op_delete_call): Test user-visible type against
|
|
|
|
|
size_type_node, instead of against the internal type, sizetype.
|
|
|
|
|
* class.c (type_requires_array_cookie): Likewise.
|
|
|
|
|
* mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
|
|
|
|
|
handling of TYPE_IS_SIZETYPE.
|
|
|
|
|
* typeck.c (type_after_usual_arithmetic_conversions): Remove
|
|
|
|
|
special case handling of TYPE_IS_SIZETYPE.
|
|
|
|
|
(comptypes): Likewise.
|
|
|
|
|
|
2006-11-01 07:23:12 +01:00
|
|
|
|
2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
* decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
|
|
|
|
|
if targetm.cxx.use_atexit_for cxa_atexit.
|
|
|
|
|
(start_cleanup_fn): Likewise.
|
|
|
|
|
(register_dtor_fn): Likewise.
|
|
|
|
|
|
2006-11-01 06:16:14 +01:00
|
|
|
|
2006-09-25 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (cp_write_global_declarations): Rename from
|
|
|
|
|
cp_finish_file.
|
|
|
|
|
* cp-lang.c (finish_file): Don't call cp_finish_file.
|
|
|
|
|
* cp-tree.h (cp_write_global_declarations): Rename from
|
|
|
|
|
cp_finish_file.
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
|
|
|
|
|
cp_write_global_declarations.
|
|
|
|
|
|
2006-11-01 06:06:12 +01:00
|
|
|
|
2006-10-31 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (get_anonymous_namespace_name): New.
|
|
|
|
|
(push_namespace_with_attribs): Use get_anonymous_namespace_name.
|
|
|
|
|
* decl2.c (start_objects): Update for rename of
|
|
|
|
|
get_file_function_name_long.
|
|
|
|
|
|
2006-10-31 00:32:29 +01:00
|
|
|
|
2006-10-30 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28704
|
|
|
|
|
* decl.c (grokdeclarator): Duplicate diagnostic message
|
|
|
|
|
for easier translation.
|
2006-10-31 00:56:15 +01:00
|
|
|
|
* decl.c (grokdeclarator): Fix line-wrapping.
|
2006-10-31 00:32:29 +01:00
|
|
|
|
|
2006-10-31 00:15:42 +01:00
|
|
|
|
2006-10-30 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/6321
|
|
|
|
|
* decl.c (grokfndecl): Use check_main_parameter_types.
|
|
|
|
|
|
2006-10-31 00:08:59 +01:00
|
|
|
|
2006-10-30 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28669
|
|
|
|
|
* decl.c (grokfndecl): Duplicate warning message for
|
|
|
|
|
easier translation.
|
|
|
|
|
|
2006-10-30 15:44:45 +01:00
|
|
|
|
2006-10-30 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_unary_op): Fix indenting. Use G_().
|
|
|
|
|
|
2006-10-29 20:52:52 +01:00
|
|
|
|
2006-10-29 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/29089
|
|
|
|
|
* typeck.c (build_unary_op): Duplicate warning message
|
|
|
|
|
for easier translation.
|
|
|
|
|
|
2006-10-29 19:38:26 +01:00
|
|
|
|
2006-10-29 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/16307
|
|
|
|
|
* typeck.c (build_array_ref): Warn for char subscriptions
|
|
|
|
|
on pointers.
|
|
|
|
|
|
2006-10-29 05:38:03 +01:00
|
|
|
|
2006-10-29 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c: Fix a comment typo.
|
|
|
|
|
|
2006-10-29 01:01:59 +02:00
|
|
|
|
2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
|
|
|
|
|
|
|
|
|
PR C++/29295
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* typeck.c (build_unary_op): Use same_type_p when comparing to
|
2006-10-29 01:01:59 +02:00
|
|
|
|
boolean type.
|
|
|
|
|
|
2006-10-29 00:34:06 +02:00
|
|
|
|
2006-10-29 Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/29033
|
|
|
|
|
* typeck.c (build_binary_op): Duplicate warning message
|
|
|
|
|
for better translation.
|
|
|
|
|
|
|
|
|
|
2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
|
2006-10-23 21:47:58 +02:00
|
|
|
|
|
|
|
|
|
* decl.c (builtin_function_1): Move common code to
|
|
|
|
|
add_builtin_function.
|
|
|
|
|
(builtin_function): Rename to cxx_builtin_function.
|
|
|
|
|
Change the signature.
|
|
|
|
|
* call.c: Include langhooks.h.
|
|
|
|
|
(build_java_interface_fn_ref): Replace calls to
|
|
|
|
|
builtin_function with add_builtin_function.
|
|
|
|
|
* Make-lang.in (cp/call.o): Depend on langhooks.h.
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
|
|
|
|
|
cxx_builtin_function.
|
|
|
|
|
* cp-tree.h (builtin_function): Rename to cxx_builtin_function.
|
|
|
|
|
Change the signature.
|
|
|
|
|
|
2006-10-22 18:07:41 +02:00
|
|
|
|
2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20647
|
|
|
|
|
* rtti.c (tinfo_base_init): The type info string is always global.
|
|
|
|
|
|
2006-10-20 22:13:42 +02:00
|
|
|
|
2006-10-20 Lee Millward <lee.millward@codesourcery.com>
|
2006-12-10 06:09:29 +01:00
|
|
|
|
Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28053
|
|
|
|
|
* decl2.c (grokbitfield): Detect invalid non-integral
|
|
|
|
|
types earlier when possible.
|
2006-10-20 22:13:42 +02:00
|
|
|
|
|
2006-10-18 12:57:18 +02:00
|
|
|
|
2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26884
|
|
|
|
|
* typeck2.c (digest_init): Raise error upon attempts to
|
|
|
|
|
initialize arrays with variables.
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
2006-10-17 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27952
|
|
|
|
|
* cp-tree.h (xref_basetypes): Return bool instead of void.
|
|
|
|
|
* decl.c (xref_basetypes): Adjust definition. Return false
|
|
|
|
|
if the class bases are invalid.
|
|
|
|
|
* parser.c (cp_parser_class_head): Check the return value
|
|
|
|
|
from xref_basetypes.
|
2006-10-18 01:22:14 +02:00
|
|
|
|
|
2006-10-18 00:43:37 +02:00
|
|
|
|
2006-10-17 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-10-18 00:50:01 +02:00
|
|
|
|
PR c++/28261
|
|
|
|
|
* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
|
|
|
|
|
comment.
|
|
|
|
|
|
2006-10-18 00:43:37 +02:00
|
|
|
|
PR c++/28261
|
|
|
|
|
* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
|
|
|
|
|
function.
|
|
|
|
|
(cp_parser_constructor_declarator_p): Use it.
|
|
|
|
|
(cp_parser_check_type_definition): Return a value indicating
|
|
|
|
|
whether or not the definition is valid.
|
|
|
|
|
(cp_parser_enum_specifier): Skip invalid enum definitions.
|
|
|
|
|
|
2006-10-18 00:35:29 +02:00
|
|
|
|
2006-10-17 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29039
|
|
|
|
|
* typeck2.c (build_functional_cast): Don't zero-initialize
|
|
|
|
|
non-PODs; instead, call their constructors.
|
|
|
|
|
* method.c (synthesize_method): Always build mem-initializers, if
|
|
|
|
|
we're synthesizing the default constructor.
|
|
|
|
|
|
2006-10-18 00:25:35 +02:00
|
|
|
|
2006-10-17 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27270
|
|
|
|
|
* decl.c (reshape_init_class): Move check for designated
|
|
|
|
|
to ...
|
|
|
|
|
* parser.c (cp_parser_initializer_list): ... here.
|
|
|
|
|
* pt.c (tsubst_copy_and_build): Use finish_compound_literal.
|
|
|
|
|
|
2006-10-16 19:02:07 +02:00
|
|
|
|
2006-10-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-10-17 04:01:27 +02:00
|
|
|
|
PR c++/27270
|
|
|
|
|
* typeck2.c (process_init_constructor_array): Reword comment.
|
|
|
|
|
* pt.c (tsubst_copy_and_built): Call reshape_init before calling
|
|
|
|
|
digest_init.
|
|
|
|
|
|
2006-10-17 01:07:46 +02:00
|
|
|
|
PR c++/29408
|
|
|
|
|
* parser.c (cp_parser_using_declaration): Stop parsing when
|
|
|
|
|
something goes wrong with an access declaration.
|
|
|
|
|
|
2006-10-17 01:06:35 +02:00
|
|
|
|
PR c++/29435
|
|
|
|
|
* typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
|
|
|
|
|
types when their sizes are required. Refine test for VLAs.
|
|
|
|
|
|
2006-10-16 19:02:07 +02:00
|
|
|
|
PR c++/28211
|
|
|
|
|
* parser.c (cp_parser_template_argument): Don't consider "&var" a
|
|
|
|
|
possible constant-expression.
|
|
|
|
|
* pt.c (convert_nontype_argument): Refine handling of arguments of
|
|
|
|
|
pointer type.
|
|
|
|
|
|
2006-10-13 10:38:43 +02:00
|
|
|
|
2006-10-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28506
|
|
|
|
|
* parser.c (function_declarator_p): New function.
|
|
|
|
|
(cp_parser_init_declarator): Use it.
|
|
|
|
|
(cp_parser_member_declaration): Likewise.
|
|
|
|
|
|
2006-10-13 06:09:41 +02:00
|
|
|
|
2006-10-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29318
|
|
|
|
|
* rtti.c (get_tinfo_decl): Refuse to create type info objects for
|
|
|
|
|
variably modified types.
|
|
|
|
|
|
2006-10-12 22:02:53 +02:00
|
|
|
|
2006-10-12 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27961
|
|
|
|
|
* decl.c (start_decl): Return error_mark_node if a
|
|
|
|
|
function is initialized like a variable.
|
|
|
|
|
(check_var_type): If a variable of field is declared void,
|
|
|
|
|
set the type to error_mark_node.
|
|
|
|
|
(grokdeclarator): Check the return type of check_var_type.
|
|
|
|
|
* class.c (finish_struct_1): Robustify.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-10-12 06:35:56 +02:00
|
|
|
|
2006-10-11 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29175
|
|
|
|
|
* decl.c (check_initializer): Issue errors about trying to
|
|
|
|
|
initialize arrays whose elements have variable size.
|
|
|
|
|
|
2006-10-11 21:31:33 +02:00
|
|
|
|
2006-10-11 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29024
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* cp-tree (struct cp_decl_specifier_seq): Rename to
|
|
|
|
|
conflicting_specifiers_p
|
|
|
|
|
* parser.c (cp_parser_set_storage_class): Set
|
|
|
|
|
conflicting_specifiers_p for the input decl specifier
|
|
|
|
|
if a typedef specifier is present. Rename uses of
|
|
|
|
|
multiple_specifiers_p to conflicting_specifiers_p.
|
|
|
|
|
(cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
|
|
|
|
|
class specifier has already been set for this declaration,
|
|
|
|
|
set conflicting_specifiers_p to true on the decl_specs.
|
|
|
|
|
* decl.c (grokdeclarator): Rename uses of
|
|
|
|
|
multiple_specifiers_p to conflicting_specifiers_p.
|
2006-10-11 21:31:33 +02:00
|
|
|
|
|
2006-10-11 01:48:09 +02:00
|
|
|
|
2006-10-10 Brooks Moses <bmoses@stanford.edu>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in: Added "c++.pdf" target support.
|
|
|
|
|
|
2006-10-10 10:27:02 +02:00
|
|
|
|
2006-10-10 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR rtl-optimization/29323
|
|
|
|
|
* decl.c (finish_function): Set TREE_NOTHROW only for
|
|
|
|
|
functions that bind local.
|
|
|
|
|
|
2006-10-09 18:27:14 +02:00
|
|
|
|
2006-10-09 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
Revert emutls patch.
|
|
|
|
|
|
Makefile.in (libgcc.mk, [...]): Add emutls.c.
gcc/
* Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c.
* builtin-types.def (BT_WORD): Make unsigned.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New.
(BUILT_IN_EMUTLS_REGISTER_COMMON): New.
* c-decl.c (grokdeclarator): Don't error if !have_tls.
* c-parser.c (c_parser_omp_threadprivate): Likewise.
* cgraph.c (decide_is_variable_needed): Look at force_output.
Recurse for emulated tls.
* cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove
checks redundant with decide_is_variable_needed.
(cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls.
* dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for
emulated tls.
* expr.c (emutls_var_address): New.
(expand_expr_real_1): Expand emulated tls.
(expand_expr_addr_expr_1): Likewise.
* libgcc-std.ver: Add __emutls_get_address, __emutls_register_common.
* output.h (emutls_finish): Declare.
* toplev.c (compile_file): Call it.
* tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the
address before wrapping in CONST.
* varasm.c (emutls_htab, emutls_object_type): New.
(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New.
(get_emutls_object_name, get_emutls_object_type): New.
(get_emutls_init_templ_addr, emutls_decl): New.
(emutls_common_1, emutls_finish): New.
(assemble_variable): When emulating tls, swap decls; generate
constructor for the emutls objects.
(do_assemble_alias): When emulating tls, swap decl and target name.
(default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT
for emulated tls.
* emutls.c: New file.
* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit
tls_object for real tls.
gcc/cp/
* decl.c (grokvardecl): Don't error if !have_tls.
(grokdeclarator): Likewise.
* parser.c (cp_parser_omp_threadprivate): Likewise.
gcc/fortran/
* f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
and __emutls_register_common.
* openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
* trans-common.c (build_common_decl): Don't check have_tls.
* trans-decl.c (gfc_finish_var_decl): Likewise.
* types.def (BT_WORD, BT_FN_PTR_PTR): New.
(BT_FN_VOID_PTR_WORD_WORD_PTR): New.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_tls): Redefine
to mean non-emulated tls.
* gcc.dg/tls/alias-1.c: Remove tls requirement.
* gcc.dg/tls/asm-1.c, gcc.dg/tls/debug-1.c, gcc.dg/tls/diag-1.c,
gcc.dg/tls/diag-2.c, gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c,
gcc.dg/tls/diag-5.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c,
gcc.dg/tls/opt-10.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c,
gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c, gcc.dg/tls/pic-1.c,
gcc.dg/tls/struct-1.c, gcc.dg/tls/trivial.c: Likewise.
From-SVN: r117440
2006-10-04 23:09:20 +02:00
|
|
|
|
2006-10-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokvardecl): Don't error if !have_tls.
|
|
|
|
|
(grokdeclarator): Likewise.
|
|
|
|
|
* parser.c (cp_parser_omp_threadprivate): Likewise.
|
|
|
|
|
|
2006-10-03 20:04:10 +02:00
|
|
|
|
2006-10-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-10-04 08:53:55 +02:00
|
|
|
|
PR c++/29020
|
|
|
|
|
* friend.c (do_friend): Improve comments; add assertion.
|
|
|
|
|
* parser.c (cp_parser_nested_name_specifier_opt): Resolve
|
|
|
|
|
typenames for qualified names used in declarations, even when
|
|
|
|
|
caching qualified name lookup.
|
|
|
|
|
|
2006-10-03 20:04:10 +02:00
|
|
|
|
PR c++/29138
|
|
|
|
|
* decl2.c (grokfield): Don't handle access declarations here.
|
|
|
|
|
* parser.c (cp_parser_using_declaration): Handle access
|
|
|
|
|
declarations too.
|
|
|
|
|
(cp_parser_block_declaration): Adjust calls to
|
|
|
|
|
cp_parser_using_declaration.
|
|
|
|
|
(cp_parser_member_declaration): Likewise. Use
|
|
|
|
|
cp_parser_using_declaration to look for access_declarations.
|
|
|
|
|
|
2006-10-03 12:08:22 +02:00
|
|
|
|
2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/29291
|
|
|
|
|
* init.c (build_new): Check for invalid init.
|
|
|
|
|
|
2006-10-03 00:21:02 +02:00
|
|
|
|
2006-10-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29226
|
|
|
|
|
* typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
|
|
|
|
|
not try to actually evaluate sizeof for a VLA type.
|
|
|
|
|
|
2006-10-02 06:12:30 +02:00
|
|
|
|
2006-10-01 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29105
|
|
|
|
|
* pt.c (tsubst_baselink): Substituteinto the qualifying scope.
|
|
|
|
|
* semantics.c (baselink_for_fns): Build a baselink, even when
|
|
|
|
|
processing a template.
|
|
|
|
|
|
|
|
|
|
PR c++/29080
|
|
|
|
|
* parser.c (cp_parser_postfix_dot_deref_expression): Use
|
|
|
|
|
BASELINK_ACCESS_BINFO as the qualifying scope when calling
|
2006-12-10 06:09:29 +01:00
|
|
|
|
adjust_result_of_qualified_name_lookup.
|
2006-10-02 06:12:30 +02:00
|
|
|
|
|
2006-09-25 21:45:34 +02:00
|
|
|
|
2006-09-25 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
PR c++/27329
|
|
|
|
|
PR c++/26938
|
|
|
|
|
* cp-tree.h (redeclare_class_template): Adjust declaration
|
|
|
|
|
to return bool instead of void.
|
|
|
|
|
* pt.c (redeclare_class_template): Update definition.
|
2006-09-25 21:45:34 +02:00
|
|
|
|
Return false on error.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* decl.c (xref_tag): Return error_mark_node if
|
2006-09-25 21:45:34 +02:00
|
|
|
|
redeclare_class_template returned false.
|
2006-09-25 21:58:10 +02:00
|
|
|
|
|
|
|
|
|
PR c++/27667
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* cp-tree.h (begin_specialization): Return bool
|
2006-09-25 21:58:10 +02:00
|
|
|
|
instead of void.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* pt.c (check_specialization_scope): Likwise.
|
|
|
|
|
Adjust comment. Return false if a specialization
|
2006-09-25 21:58:10 +02:00
|
|
|
|
isn't permitted in the current scope.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
(begin_specialization): Use the return value of
|
|
|
|
|
check_specialization_scope.
|
|
|
|
|
* parser.c (cp_parser_explicit_specialization): If
|
|
|
|
|
begin_specialization returned false, skip the rest
|
2006-09-25 21:58:10 +02:00
|
|
|
|
of the specialization.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-09-22 00:18:54 +02:00
|
|
|
|
2006-09-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/29016
|
|
|
|
|
* typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
|
|
|
|
|
BASELINK.
|
|
|
|
|
|
2006-09-21 20:22:11 +02:00
|
|
|
|
2006-09-21 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28861
|
|
|
|
|
* decl.c (shadow_tag): Return error_mark_node
|
2006-12-10 06:09:29 +01:00
|
|
|
|
if maybe_process_partial_specialization failed.
|
2006-09-21 20:33:49 +02:00
|
|
|
|
|
|
|
|
|
PR c++/28303
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* decl.c (grokdeclarator): Return error_mark_node on
|
|
|
|
|
declaration with two or more data types.
|
|
|
|
|
|
2006-09-21 01:27:05 +02:00
|
|
|
|
2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR target/27650
|
|
|
|
|
* class.c (check_for_override): Remove dllimport from virtual
|
|
|
|
|
methods.
|
|
|
|
|
|
2006-09-18 17:32:43 +02:00
|
|
|
|
2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/29087
|
|
|
|
|
* parser.c (cp_parser_labeled_statement): Return nothing. Do
|
|
|
|
|
not take in_statement_expr and in_compound as arguments. Rename
|
|
|
|
|
to cp_parser_label_for_labeled_statement. Parse only the label,
|
|
|
|
|
not the statement.
|
|
|
|
|
(cp_parser_statement): Parse the statement of a labeled-statement
|
|
|
|
|
from here, using tail recursion.
|
|
|
|
|
|
2006-09-15 06:50:04 +02:00
|
|
|
|
2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/29002
|
|
|
|
|
* init.c (build_zero_init): If we have an error mark node for
|
|
|
|
|
the array size, return.
|
|
|
|
|
|
2006-09-11 02:40:15 +02:00
|
|
|
|
2006-09-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28991
|
|
|
|
|
* cp-objcp-common.c (cxx_staticp): New function.
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
|
|
|
|
|
* cp-tree.h (cxx_staticp): New function.
|
|
|
|
|
|
2006-09-10 00:26:53 +02:00
|
|
|
|
2006-09-09 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28996
|
|
|
|
|
* cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
|
|
|
|
|
|
2006-09-09 00:56:44 +02:00
|
|
|
|
2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28858
|
|
|
|
|
* parser.c (cp_parser_skip_until_found): Rename to
|
|
|
|
|
cp_parser_skip_to_end_of_template_parameter_list. Remove last two
|
|
|
|
|
parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
|
|
|
|
|
Reorganize. Adjust comment.
|
|
|
|
|
(cp_parser_template_declaration_after_export): Adjust call.
|
|
|
|
|
(cp_parser_enclosed_template_argument_list): Likewise.
|
|
|
|
|
|
2006-09-08 04:49:11 +02:00
|
|
|
|
2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/28906
|
|
|
|
|
* init.c (build_new_1): Build a distinct type copy
|
|
|
|
|
for the array type that was returned from
|
|
|
|
|
build_cplus_array_type.
|
|
|
|
|
|
2006-09-07 23:06:28 +02:00
|
|
|
|
2006-09-07 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
2006-09-08 00:47:34 +02:00
|
|
|
|
PR c++/27371
|
|
|
|
|
* cvt.c (convert_to_void): Enable previous change.
|
|
|
|
|
|
2006-09-07 23:06:28 +02:00
|
|
|
|
PR c++/26957
|
|
|
|
|
* method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
|
|
|
|
|
parms.
|
|
|
|
|
|
2006-09-07 19:25:05 +02:00
|
|
|
|
2006-09-07 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/28284
|
2006-09-07 23:06:28 +02:00
|
|
|
|
* pt.c (fold_non_dependent_expr): Make sure expr is not
|
|
|
|
|
dereferenced if it is NULL.
|
2006-09-07 19:25:05 +02:00
|
|
|
|
|
2006-09-07 08:53:21 +02:00
|
|
|
|
2006-09-06 Zak Kipling <zak@transversal.com>
|
|
|
|
|
|
2006-09-08 04:49:11 +02:00
|
|
|
|
PR c++/26195
|
2006-09-07 08:53:21 +02:00
|
|
|
|
* decl.c (make_rtl_for_nonlocal_decl),
|
|
|
|
|
(start_preparsed_function): Don't use lbasename on
|
|
|
|
|
input_filename when calling get_fileinfo.
|
|
|
|
|
* semantics.c (begin_class_definition): Likewise.
|
|
|
|
|
* lex.c (cxx_make_type): Likewise.
|
|
|
|
|
(handle_pragma_interface): Call get_fileinfo on input_filename,
|
|
|
|
|
not on the parameter to the directive.
|
|
|
|
|
|
2006-09-07 03:04:07 +02:00
|
|
|
|
2006-09-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28903
|
|
|
|
|
* pt.c (tsubst): Use fold_non_dependent_expr to fold array
|
|
|
|
|
dimensions.
|
|
|
|
|
|
|
|
|
|
PR c++/28886
|
|
|
|
|
* pt.c (unify): Avoid unnecessary calls to fold_build2 for array
|
|
|
|
|
dimensions.
|
|
|
|
|
|
2006-09-06 19:06:00 +02:00
|
|
|
|
2006-09-06 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
2006-09-07 03:12:00 +02:00
|
|
|
|
PR c++/27371
|
|
|
|
|
* cvt.c (convert_to_void): Strip useless TARGET_EXPR.
|
|
|
|
|
* cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
|
|
|
|
|
* tree.c (build_cplus_new): Set it.
|
|
|
|
|
|
2006-09-06 19:06:00 +02:00
|
|
|
|
PR c++/26696
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* cvt.c (convert_to_void): Replace a subexpression with no side
|
2006-09-06 19:06:00 +02:00
|
|
|
|
effects with void_zero_node.
|
|
|
|
|
* tree.c (is_overloaded_fn): Look through COMPONENT_REF.
|
|
|
|
|
(get_first_fn): Ditto.
|
|
|
|
|
* decl.c (grokdeclarator): No need to look through COMPONENT_REF.
|
|
|
|
|
|
2006-09-06 03:15:39 +02:00
|
|
|
|
2006-09-05 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
2006-09-06 07:28:08 +02:00
|
|
|
|
PR c++/26571
|
|
|
|
|
* parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
|
|
|
|
|
where the name is a type used incorrectly.
|
|
|
|
|
|
2006-09-06 07:25:29 +02:00
|
|
|
|
PR c++/26671
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* typeck.c (maybe_warn_about_returning_address_of_local): Look
|
|
|
|
|
through COMPONENT_REF and ARRAY_REF.
|
2006-09-06 07:25:29 +02:00
|
|
|
|
|
2006-09-06 03:15:39 +02:00
|
|
|
|
PR c++/26102
|
|
|
|
|
* name-lookup.c (do_class_using_decl): Try to find the base even
|
|
|
|
|
if bases_dependent_p.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* pt.c (type_dependent_expression_p): A USING_DECL is dependent.
|
2006-09-06 03:15:39 +02:00
|
|
|
|
|
|
|
|
|
PR c++/19809
|
|
|
|
|
* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
|
|
|
|
|
|
2006-09-04 17:21:50 +02:00
|
|
|
|
2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR 23287 Revert my 2006-09-01 patch.
|
|
|
|
|
* parser.c: Reverted.
|
|
|
|
|
* pt.c: Reverted.
|
|
|
|
|
|
2006-09-02 16:15:37 +02:00
|
|
|
|
2006-09-02 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-09-04 17:21:50 +02:00
|
|
|
|
PR c++/27670
|
|
|
|
|
PR c++/27493
|
|
|
|
|
PR c++/27494
|
|
|
|
|
PR c++/27397
|
|
|
|
|
* parser.c (cp_parser_template_parameter_list): Add
|
|
|
|
|
invalid template parameters to the parameter list as
|
|
|
|
|
error_mark_node.
|
2006-09-02 16:15:37 +02:00
|
|
|
|
|
2006-09-02 08:52:24 +02:00
|
|
|
|
2006-09-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2006-09-02 08:54:04 +02:00
|
|
|
|
PR c++/28878
|
|
|
|
|
* except.c (build_throw): Only set current_function_returns_abnormally
|
|
|
|
|
if cfun is not NULL.
|
|
|
|
|
|
2006-09-02 08:52:24 +02:00
|
|
|
|
PR c++/26917
|
|
|
|
|
* repo.c (repo_file): Remove.
|
|
|
|
|
(open_repo_file, reopen_repo_file_for_write): Return fopened
|
|
|
|
|
FILE * instead of setting global repo_file variable.
|
|
|
|
|
(init_repo): Adjust caller.
|
|
|
|
|
(finish_repo): Likewise. Return instead of goto out before
|
|
|
|
|
reopen_repo_file_for_write has been called.
|
|
|
|
|
|
2006-09-01 15:46:19 +02:00
|
|
|
|
2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2006-09-01 20:10:17 +02:00
|
|
|
|
PR c++/28705
|
|
|
|
|
* semantics.c (finish_call_expr): Add assert.
|
|
|
|
|
* name-lookup.c (lookup_arg_dependent): Check we found an overload
|
|
|
|
|
or an object.
|
|
|
|
|
|
2006-09-01 15:46:19 +02:00
|
|
|
|
PR c++/23287
|
|
|
|
|
* parser.c (cp_parser_id_expression): Add member_p
|
|
|
|
|
argument. Update all callers.
|
|
|
|
|
(cp_parser_unqualified_id): Likewise. Lookup a destructor name in
|
|
|
|
|
the object's scope, if valid.
|
|
|
|
|
(cp_parser_global_scope_opt): Add object_scope_valid_p. Update
|
|
|
|
|
callers.
|
|
|
|
|
(cp_parser_postfix_dot_deref_expression): Set object_scope.
|
|
|
|
|
* pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
|
|
|
|
|
|
2006-08-30 17:51:17 +02:00
|
|
|
|
2006-08-30 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26670
|
|
|
|
|
* class.c (check_field_decls): Don't unset TYPE_PACKED until all
|
|
|
|
|
the fields have been processed.
|
|
|
|
|
|
2006-08-30 06:33:10 +02:00
|
|
|
|
2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/28349
|
|
|
|
|
* call.c (build_x_va_arg): Remove the reference type
|
|
|
|
|
from the type before creating the pointer type.
|
|
|
|
|
|
2006-08-29 16:34:36 +02:00
|
|
|
|
2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28139
|
|
|
|
|
* except.c (expand_start_catch_block): Use correct types for bitwise
|
|
|
|
|
copy.
|
|
|
|
|
|
2006-08-29 08:55:03 +02:00
|
|
|
|
2006-08-28 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
2006-08-29 09:10:38 +02:00
|
|
|
|
PR c++/26670
|
|
|
|
|
* class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
|
|
|
|
|
fields can't be packed.
|
|
|
|
|
|
2006-08-29 08:55:03 +02:00
|
|
|
|
PR c++/26577
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* cvt.c (convert_to_void): Don't automatically load from volatiles
|
2006-08-29 08:55:03 +02:00
|
|
|
|
of TREE_ADDRESSABLE type.
|
|
|
|
|
|
2006-08-29 00:34:55 +02:00
|
|
|
|
2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28860
|
|
|
|
|
* cp-tree.h (maybe_process_partial_specialization): Return
|
|
|
|
|
tree instead of void.
|
|
|
|
|
* parser.c (cp_parser_class_head): Use return value of
|
|
|
|
|
maybe_process_partial_specialization.
|
|
|
|
|
* pt.c (maybe_process_partial_specialization): Return error_mark_node
|
|
|
|
|
for broken specializations, TYPE otherwise. Check for template
|
|
|
|
|
template parameters.
|
|
|
|
|
|
2006-08-27 19:45:25 +02:00
|
|
|
|
2006-08-27 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28058
|
|
|
|
|
* pt.c (register_specialization): Return error_mark_node for
|
|
|
|
|
specialization-after-instantiation.
|
|
|
|
|
* decl2.c (mark_used): Mark the main function used when one of its
|
|
|
|
|
clones is used.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-08-27 17:22:05 +02:00
|
|
|
|
2006-08-27 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
PR c++/26573
|
|
|
|
|
* class.c (check_field_decls): Don't issue error about
|
|
|
|
|
local classes containing static data members.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-08-26 23:38:46 +02:00
|
|
|
|
2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24009
|
|
|
|
|
* parser.c (struct cp_token): Add input_file_stack_index.
|
|
|
|
|
(eof_token): Update.
|
|
|
|
|
(cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
|
|
|
|
|
(cp_lexer_set_source_position_from_token): Restore input file
|
|
|
|
|
stack.
|
|
|
|
|
|
2006-08-26 19:41:18 +02:00
|
|
|
|
2006-08-26 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
PR c++/28736
|
|
|
|
|
PR c++/28737
|
|
|
|
|
PR c++/28738
|
|
|
|
|
* pt.c (process_template_parm): Store invalid template
|
|
|
|
|
parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
|
|
|
|
|
(push_inline_template_parms_recursive): Check for template
|
|
|
|
|
parameters having a TREE_VALUE of error_mark_node rather than
|
|
|
|
|
check the parameter itself.
|
|
|
|
|
(mangle_class_name_for_template): Likewise.
|
|
|
|
|
(comp_template_parms): When comparing the individual template
|
|
|
|
|
parameters, return 1 if either is error_mark_node.
|
|
|
|
|
(current_template_args): Robustify.
|
|
|
|
|
(redeclare_class_template): Likewise.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-08-26 18:23:33 +02:00
|
|
|
|
2006-08-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28588
|
|
|
|
|
* class.c (resolve_address_of_overloaded_function): Add
|
|
|
|
|
access_path parameter. Perform access checks.
|
|
|
|
|
(instantiate_type): Adjust call to
|
|
|
|
|
resolve_address_of_overloaded_function. Remove unnecessary code.
|
|
|
|
|
* tree.c (is_overloaded_fn): Document. Return 2 when there are
|
|
|
|
|
acutally multiple functions.
|
|
|
|
|
(really_overloaded_fn): Use is_overloaded_fn.
|
|
|
|
|
* mangle.c (write_expression): Handle BASELINKs.
|
|
|
|
|
* cp-tree.h (really_overloaded_fn): Return bool.
|
|
|
|
|
(baselink_for_fns): Declare.
|
|
|
|
|
* search.c (lookup_member): Check access for single static
|
|
|
|
|
functions here.
|
|
|
|
|
* pt.c (convert_nontype_argument_function): Handle BASELINKs.
|
|
|
|
|
(tsubst_copy_and_build): Generate BASELINKs for template-ids.
|
|
|
|
|
* semantics.c (finish_call_expr): Use baselink_for_fns.
|
|
|
|
|
(baselink_for_fns): New function.
|
|
|
|
|
(finish_id_expression): Use it.
|
|
|
|
|
* parser.c (cp_parser_template_argument): Don't strip BASELINKs.
|
|
|
|
|
|
|
|
|
|
PR c++/28595
|
|
|
|
|
* pt.c (tsubst): Issue errors about attempts to create VLAs at
|
|
|
|
|
template-instantiation time.
|
|
|
|
|
|
2006-08-26 02:25:59 +02:00
|
|
|
|
2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-08-26 02:37:48 +02:00
|
|
|
|
PR c++/28853
|
|
|
|
|
* typeck2.c (cxx_incomplete_type_diagnostic): Handle template
|
|
|
|
|
template parameters. Improve error message for template type
|
|
|
|
|
parameters.
|
|
|
|
|
|
2006-08-26 02:25:59 +02:00
|
|
|
|
PR c++/28852
|
|
|
|
|
* cp-tree.h (grok_op_properties): Return bool instead of void.
|
|
|
|
|
* decl.c (grokfndecl): Discard invalid operator declarations.
|
|
|
|
|
(copy_fn_p): Revert change for PR 27547.
|
|
|
|
|
(grok_op_properties): Return error status (true on success).
|
|
|
|
|
* pt.c (tsubst_decl): Discard invalid operator declarations.
|
|
|
|
|
|
2006-08-25 19:03:50 +02:00
|
|
|
|
2006-08-25 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28056
|
|
|
|
|
* decl.c (grokdeclarator): Disallow declarations with qualified
|
|
|
|
|
names in local scopes.
|
|
|
|
|
|
2006-08-25 18:56:07 +02:00
|
|
|
|
2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27787
|
|
|
|
|
* decl.c (make_typename_type): Only try and resolve it when
|
|
|
|
|
context is not dependent. Refactor.
|
|
|
|
|
* decl2.c (check_classfn): Push to class scope before looking for
|
|
|
|
|
the function.
|
|
|
|
|
|
2006-08-25 02:24:10 +02:00
|
|
|
|
2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR driver/28528
|
|
|
|
|
* g++spec.c (lang_specific_driver): Always check if we need to
|
|
|
|
|
swallow a space-separated arg to '-x'.
|
|
|
|
|
* lang-specs.h: Don't create ouput files for '-xc++-header'
|
|
|
|
|
if -fsyntax-only.
|
|
|
|
|
|
2006-08-24 17:54:39 +02:00
|
|
|
|
2006-08-23 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27714
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* pt.c (push_template_decl_real): A friend template with class
|
2006-08-24 17:54:39 +02:00
|
|
|
|
scope isn't primary.
|
|
|
|
|
|
|
|
|
|
2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
|
2006-08-23 16:04:24 +02:00
|
|
|
|
|
|
|
|
|
PR c++/28687
|
|
|
|
|
* rtti.c (build_dynamic_cast, build_dynamic_cast_1):
|
|
|
|
|
Move -fno-rtti check to be more specific.
|
|
|
|
|
|
2006-08-23 06:27:43 +02:00
|
|
|
|
2006-08-22 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23372
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* call.c (build_over_call): Don't make a copy here if build_call
|
2006-08-23 06:27:43 +02:00
|
|
|
|
will make one too.
|
|
|
|
|
|
2006-08-23 04:56:43 +02:00
|
|
|
|
2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/28450
|
|
|
|
|
* cp/init.c (build_zero_init): Handle VECTOR_TYPE and
|
|
|
|
|
COMPLEX_TYPEs.
|
|
|
|
|
|
2006-08-22 20:51:40 +02:00
|
|
|
|
2006-08-22 Simon Martin <simartin@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/28420
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Make sure that the
|
|
|
|
|
saved value for parser->type_definition_forbidden_message is
|
|
|
|
|
restored before returning to avoid an invalid free().
|
|
|
|
|
|
2006-08-22 20:27:26 +02:00
|
|
|
|
2006-08-22 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28659
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* typeck.c (merge_types): If either of the types have the right
|
2006-08-22 20:27:26 +02:00
|
|
|
|
attributes, return that one.
|
|
|
|
|
|
|
|
|
|
* tree.c (cp_build_type_attribute_variant): Make sure we aren't
|
|
|
|
|
doing this to class types.
|
|
|
|
|
* typeck.c (original_type): Deal with type quals properly.
|
|
|
|
|
|
2006-08-21 22:54:57 +02:00
|
|
|
|
2006-08-21 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27115
|
|
|
|
|
* semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
|
|
|
|
|
just leave the expression as it is.
|
|
|
|
|
(finish_stmt_expr): If the statement-expression has class type,
|
|
|
|
|
wrap it in a TARGET_EXPR.
|
|
|
|
|
* cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
|
|
|
|
|
CLEANUP_POINT_EXPR.
|
|
|
|
|
* except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
|
|
|
|
|
|
2006-08-21 19:27:48 +02:00
|
|
|
|
2006-08-21 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26269
|
2006-08-21 22:54:57 +02:00
|
|
|
|
* decl.c (duplicate_decls): Return early if either
|
|
|
|
|
newdecl or olddecl is error_mark_node.
|
2006-08-21 19:34:44 +02:00
|
|
|
|
|
|
|
|
|
PR c++/28505
|
2006-08-21 22:54:57 +02:00
|
|
|
|
* decl.c (grokdeclarator): Return early after
|
|
|
|
|
issuing diagnostic about an incomplete type.
|
2006-08-21 19:41:18 +02:00
|
|
|
|
|
|
|
|
|
PR c++/28741
|
2006-08-21 22:54:57 +02:00
|
|
|
|
* tree.c (decl_anon_ns_mem_p): Robustify.
|
|
|
|
|
* decl2.c (determine_visibility): Likewise.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-08-21 01:53:10 +02:00
|
|
|
|
2006-08-20 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28341
|
|
|
|
|
* tree.c (cast_valid_in_integral_constant_expression_p): New
|
|
|
|
|
function.
|
|
|
|
|
* cp-tree.h (tsubst_copy_and_build): Adjust prototype.
|
|
|
|
|
* pt.c (tsubst_expr): Add integral_constant_expression_p
|
|
|
|
|
parameter.
|
|
|
|
|
(fold_non_dependent_expr): Adjust callers of
|
|
|
|
|
tsubst_{expr,copy_and_build}.
|
|
|
|
|
(tsubst_friend_function): Likewise.
|
|
|
|
|
(tsubst_template_arg): Likewise.
|
|
|
|
|
(tsubst_default_argument): Likewise.
|
|
|
|
|
(tsubst_decl): Likewise.
|
|
|
|
|
(tsubst): Likewise.
|
|
|
|
|
(tsubst_omp_clasuses): Likewise.
|
|
|
|
|
(regenerate_decl_fromp_template): Likewise.
|
|
|
|
|
(instantiate_decl): Likewise.
|
|
|
|
|
(tsubst_initializer_list): Likewise.
|
|
|
|
|
(tsubst_enum): Likewise.
|
|
|
|
|
(tsubst_expr): Use RECUR throughout.
|
|
|
|
|
(tsubst_copy_and_build): Change definition of RECUR. Do not allow
|
|
|
|
|
invalid casts in integral constant expressions.
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Use
|
|
|
|
|
cast_valid_in_integral_constant_expression_p.
|
|
|
|
|
(cp_parser_cast_expression): Likewise.
|
|
|
|
|
(cp_parser_functional_cast): Likewise.
|
|
|
|
|
|
|
|
|
|
PR c++/28346
|
|
|
|
|
* pt.c (tsubst_qualified_id): Do not strip references from
|
2006-12-10 06:09:29 +01:00
|
|
|
|
OFFSET_REFs.
|
2006-08-21 01:53:10 +02:00
|
|
|
|
|
2006-08-17 10:02:39 +02:00
|
|
|
|
2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-08-17 11:07:39 +02:00
|
|
|
|
PR c++/28606
|
|
|
|
|
* parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
|
|
|
|
|
Fix formatting.
|
|
|
|
|
(cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
|
|
|
|
|
for valid type-names.
|
|
|
|
|
(cp_parser_unqualified_id): Fix error handling for destructors.
|
|
|
|
|
|
2006-08-17 10:06:27 +02:00
|
|
|
|
PR c++/28710
|
|
|
|
|
* decl.c (xref_tag): Improve error message. Return early on error.
|
|
|
|
|
|
2006-08-17 10:02:39 +02:00
|
|
|
|
PR c++/28711
|
|
|
|
|
* pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
|
|
|
|
|
|
2006-08-17 09:02:55 +02:00
|
|
|
|
2006-08-17 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/28573
|
|
|
|
|
* semantics.c (finish_offsetof): Add new argument to fold_offsetof.
|
|
|
|
|
|
2006-08-17 03:56:47 +02:00
|
|
|
|
2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR c++/28302
|
|
|
|
|
* typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
|
2006-08-17 09:02:55 +02:00
|
|
|
|
perform_integral_promotions for non integral type.
|
2006-08-17 03:56:47 +02:00
|
|
|
|
|
2006-08-17 02:51:37 +02:00
|
|
|
|
2006-08-16 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28385
|
|
|
|
|
* pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
|
|
|
|
|
if arg is a function.
|
|
|
|
|
|
2006-08-16 23:35:18 +02:00
|
|
|
|
2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28593
|
|
|
|
|
* init.c (build_new): Return early on invalid placement.
|
|
|
|
|
|
2006-08-15 19:21:09 +02:00
|
|
|
|
2006-08-15 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28594
|
|
|
|
|
* pt.c (process_template_parm): Robustify.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-08-15 01:13:54 +02:00
|
|
|
|
2006-08-14 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28288
|
|
|
|
|
PR c++/14556
|
|
|
|
|
* operators.def: Remove <?, ?>, <?=, and >?= operators.
|
|
|
|
|
* parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
|
|
|
|
|
(cp_parser_warn_min_max): Remove.
|
|
|
|
|
|
2006-08-14 23:25:03 +02:00
|
|
|
|
2006-08-11 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28559
|
|
|
|
|
* parser.c (cp_parser_elaborated_type_specifier): Also ignore
|
|
|
|
|
attributes applied to a TYPENAME_TYPE.
|
|
|
|
|
|
2006-08-09 20:43:06 +02:00
|
|
|
|
2006-08-09 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-08-14 23:25:03 +02:00
|
|
|
|
PR c++/28637
|
|
|
|
|
* pt.c (coerce_template_parms): Copy across the
|
|
|
|
|
invalid template arguments to the new template inner arguments.
|
|
|
|
|
(retrieve_specialization): Robustify.
|
2006-08-09 20:43:06 +02:00
|
|
|
|
|
2006-08-14 23:25:03 +02:00
|
|
|
|
PR c++/28638
|
|
|
|
|
* pt.c (coerce_template_template_parms): Robustify.
|
2006-08-09 20:43:06 +02:00
|
|
|
|
|
2006-08-14 23:25:03 +02:00
|
|
|
|
PR c++/28639
|
|
|
|
|
* error.c (dump_template_parms): Robustify.
|
2006-08-09 20:43:06 +02:00
|
|
|
|
|
2006-08-14 23:25:03 +02:00
|
|
|
|
PR c++/28640
|
|
|
|
|
* pt.c (redeclare_class_template): Robustify.
|
2006-08-09 20:43:06 +02:00
|
|
|
|
|
2006-08-14 23:25:03 +02:00
|
|
|
|
PR c++/28641
|
|
|
|
|
* pt.c (type_unification_real): Robustify.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-08-04 20:08:14 +02:00
|
|
|
|
2006-08-03 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-08-14 23:25:03 +02:00
|
|
|
|
PR c++/28347
|
|
|
|
|
* decl.c (start_decl): Return error_mark_node if a
|
|
|
|
|
diagnostic was issed for an invalid typedef initialization.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-08-03 04:30:49 +02:00
|
|
|
|
2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-08-03 04:49:07 +02:00
|
|
|
|
PR c++/27508
|
|
|
|
|
* parser.c (cp_parser_unqualified_id): Check for invalid scopes
|
|
|
|
|
when parsing destructor names.
|
|
|
|
|
|
2006-08-03 04:30:49 +02:00
|
|
|
|
PR c++/28274
|
|
|
|
|
* decl.c (duplicate_decls): Call check_default_args here.
|
|
|
|
|
(start_preparsed_function): Do not call check_default_args.
|
|
|
|
|
* name-lookup.c (pushdecl_maybe_friend): Only call
|
|
|
|
|
check_default_args if duplicate_decls got bypassed.
|
|
|
|
|
|
2006-08-02 22:48:59 +02:00
|
|
|
|
2006-08-02 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28479
|
|
|
|
|
Revert
|
|
|
|
|
2006-07-05 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
Andrew Pinski <pinskia@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/27084
|
|
|
|
|
* cp-objcp-common.c (cxx_types_compatible_p): Ignore
|
|
|
|
|
top level qualifiers for pointer type comparisons.
|
|
|
|
|
|
2006-08-02 22:35:41 +02:00
|
|
|
|
2006-08-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28557
|
|
|
|
|
* pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
|
|
|
|
|
|
2006-08-01 22:04:57 +02:00
|
|
|
|
2006-07-31 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28523
|
|
|
|
|
* tree.c (stabilize_expr): Tweak documentation. Add assertion.
|
|
|
|
|
(stabilize_call): Tweak documentation.
|
|
|
|
|
(stabilize_init): Only call stabilize_call for calls.
|
|
|
|
|
|
2006-08-01 18:45:14 +02:00
|
|
|
|
2006-08-01 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28432
|
|
|
|
|
* decl2.c (check_classfn): Remove early return.
|
|
|
|
|
* search.c (lookup_member): Return NULL with bad type.
|
|
|
|
|
|
2006-08-01 18:31:40 +02:00
|
|
|
|
2006-08-01 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28256
|
|
|
|
|
* decl.c (check_initializer): Check for 1 initializer on scalar types.
|
|
|
|
|
|
2006-08-01 16:23:58 +02:00
|
|
|
|
2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR debug/23336
|
|
|
|
|
* pt.c (tsubst_copy_and_build): Mark used enum types.
|
|
|
|
|
* semantics.c (finish_id_expression): Likewise.
|
|
|
|
|
|
2006-08-01 00:52:20 +02:00
|
|
|
|
2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/6634
|
|
|
|
|
* decl.c (grokdeclarator): Check whether "long" or "short" was
|
|
|
|
|
specified for non-integral types.
|
|
|
|
|
|
2006-07-29 01:45:11 +02:00
|
|
|
|
2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
|
|
|
|
|
|
2006-07-28 19:01:19 +02:00
|
|
|
|
2006-07-28 Lee Millward <lee.millward@codesourcery.com>
|
|
|
|
|
|
2006-08-21 22:54:57 +02:00
|
|
|
|
PR c++/27668
|
|
|
|
|
PR c++/27962
|
|
|
|
|
* pt.c (process_template_parm) Store invalid template
|
|
|
|
|
parameters as error_mark_node in the paramater list.
|
|
|
|
|
(push_inline_template_parms_recursive): Handle invalid
|
|
|
|
|
template parameters.
|
|
|
|
|
(comp_template_parms): Likewise.
|
|
|
|
|
(check_default_tmpl_arg): Likewise.
|
|
|
|
|
(coerce_template_template_parms): Likewise.
|
|
|
|
|
(mangle_class_name_for_template): Likewise.
|
|
|
|
|
(tsubst_template_parms): Likewise.
|
|
|
|
|
* error.c (dump_template_argument_list): Likewise.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-07-28 03:56:58 +02:00
|
|
|
|
2006-07-28 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h: Fix a comment typo.
|
|
|
|
|
|
2006-07-25 02:57:10 +02:00
|
|
|
|
2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27572
|
|
|
|
|
* decl.c (grokdeclarator): Return error_mark_node after invalid
|
|
|
|
|
typedef.
|
|
|
|
|
|
2006-07-24 04:58:08 +02:00
|
|
|
|
2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28460
|
|
|
|
|
* decl.c (grokvardecl): Use FROB_CONTEXT.
|
|
|
|
|
* pt.c (register_specialization): Likewise.
|
|
|
|
|
|
2006-07-23 22:28:26 +02:00
|
|
|
|
2006-07-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28025
|
|
|
|
|
* cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
|
|
|
|
|
* name-lookup.c (unqualified_namespace_lookup): There is no way to
|
|
|
|
|
have a hidden name in non-namespace scopes.
|
|
|
|
|
* pt.c (tsubst_friend_class): Look for hidden names.
|
|
|
|
|
* decl.c (lookup_and_check_tag): Fix typo in comment.
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_compound_literal): Fix typo in comment.
|
|
|
|
|
|
2006-07-21 23:00:20 +02:00
|
|
|
|
2006-07-21 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (determine_visibility): Don't propagate visibility from
|
|
|
|
|
type to decl.
|
|
|
|
|
(constrain_class_visibility): Don't warn in system headers.
|
|
|
|
|
Don't warn about pointer fields.
|
|
|
|
|
|
2006-07-21 22:39:19 +02:00
|
|
|
|
2006-07-20 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (determine_visibility_from_class): Don't use hidden
|
|
|
|
|
visibility for explicit instantiations.
|
|
|
|
|
|
2006-07-21 11:41:16 +02:00
|
|
|
|
2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-07-21 11:59:57 +02:00
|
|
|
|
PR c++/28250
|
|
|
|
|
* pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
|
|
|
|
|
valid decls. Cleanup.
|
|
|
|
|
|
2006-07-21 11:41:16 +02:00
|
|
|
|
PR c++/28363
|
|
|
|
|
* semantics.c (check_template_template_default_arg): Simplify
|
|
|
|
|
error handling.
|
|
|
|
|
|
2006-07-20 18:02:57 +02:00
|
|
|
|
2006-07-20 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28407
|
|
|
|
|
* decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
|
|
|
|
|
const variables with implicit internal linkage.
|
|
|
|
|
* tree.c (decl_linkage): Only return lk_external if it's set.
|
|
|
|
|
|
|
|
|
|
PR c++/28409
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* decl2.c (constrain_visibility): Ignore the anonymous namespace
|
2006-07-20 18:02:57 +02:00
|
|
|
|
for extern "C" decls.
|
|
|
|
|
(VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
|
|
|
|
|
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* decl2.c (constrain_visibility): Remove specified and reason
|
2006-07-20 18:02:57 +02:00
|
|
|
|
parameters. Don't touch decls that already have explicit visibility.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
(determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
|
2006-07-20 18:02:57 +02:00
|
|
|
|
template.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
(determine_visibility_from_class): Reverse sense of
|
2006-07-20 18:02:57 +02:00
|
|
|
|
DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
|
|
|
|
|
(constrain_class_visibility): Only complain about member visibility
|
|
|
|
|
if the member type is another class. Don't change visibility of the
|
|
|
|
|
current class.
|
|
|
|
|
|
2006-07-20 00:49:20 +02:00
|
|
|
|
2006-07-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28338
|
|
|
|
|
* decl.c (layout_var_decl): Don't call push_local_name here.
|
|
|
|
|
(initialize_artificial_var): Assert artificiality.
|
|
|
|
|
(cp_finish_decl): Call push_local_name here.
|
|
|
|
|
|
2006-07-19 19:32:38 +02:00
|
|
|
|
2006-07-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28337
|
|
|
|
|
* typeck.c (build_binary_op): Short-circuit pointer arithmetic in
|
|
|
|
|
templates.
|
|
|
|
|
|
2006-07-19 02:22:43 +02:00
|
|
|
|
2006-07-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-07-19 07:14:25 +02:00
|
|
|
|
PR c++/28048
|
|
|
|
|
* semantics.c (check_accessibility_of_qualified_id): Robustify.
|
|
|
|
|
|
2006-07-19 02:22:43 +02:00
|
|
|
|
PR c++/28235
|
|
|
|
|
* pt.c (tsubst_decl): Handling substitutions into a static data
|
|
|
|
|
member from within the scope of the tempalte itself.
|
|
|
|
|
|
2006-07-18 19:22:39 +02:00
|
|
|
|
2006-07-18 Lee Millward <lee.millward@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28258
|
|
|
|
|
* method.c (locate_copy): Check for non_reference
|
|
|
|
|
returning error_mark_node.
|
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
PR c++/28260
|
2006-07-18 19:22:39 +02:00
|
|
|
|
* decl.c (duplicate_decls): Return error_mark_node
|
|
|
|
|
on ambiguous declaration.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-07-18 19:01:19 +02:00
|
|
|
|
2006-07-18 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27495
|
|
|
|
|
* search.c (adjust_result_of_qualified_name_lookup): Change
|
|
|
|
|
assert to part of if statement.
|
|
|
|
|
|
2006-07-17 17:28:17 +02:00
|
|
|
|
2006-07-17 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28291
|
|
|
|
|
* decl.c (reshape_init_class): Return error_mark_node on error.
|
|
|
|
|
|
2006-07-17 17:21:42 +02:00
|
|
|
|
2006-07-17 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28304
|
|
|
|
|
* decl2.c (check_classfn): Return NULL_TREE on error.
|
|
|
|
|
|
2006-07-17 06:42:24 +02:00
|
|
|
|
2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28250
|
|
|
|
|
* name-lookup.c (pushdecl_maybe_friend): Return early on
|
|
|
|
|
error_mark_node.
|
|
|
|
|
* except.c (expand_start_catch_block): Use error_mark_node instead
|
|
|
|
|
of NULL_TREE for invalid decls.
|
|
|
|
|
* parser.c (cp_parser_exception_declaration): Return error_mark_node
|
|
|
|
|
on invalid catch parameter. Simplify.
|
|
|
|
|
|
2006-07-16 22:17:20 +02:00
|
|
|
|
2006-07-16 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28370
|
|
|
|
|
* decl2.c (note_vague_linkage_var): Removed.
|
|
|
|
|
(finish_static_data_member_decl): Add decl to pending_statics vector
|
|
|
|
|
directly. Do it even for non-public decls.
|
|
|
|
|
|
2006-07-15 16:44:48 +02:00
|
|
|
|
2006-07-15 Lee Millward <lee.millward@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28292
|
|
|
|
|
* decl2.c (acceptable_java_type): Robustify. Use
|
|
|
|
|
proper Boolean return type instead of return 1.
|
|
|
|
|
(check_java_method): Don't issue error about
|
2006-12-10 06:09:29 +01:00
|
|
|
|
type not being an acceptable Java parameter if
|
2006-07-15 16:44:48 +02:00
|
|
|
|
it's error_mark_node.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-07-15 17:00:28 +02:00
|
|
|
|
PR c++/28269
|
|
|
|
|
* parser.c (cp_parser_elaborated_type_specifier):
|
|
|
|
|
Return early if an invalid type was detected.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-07-15 11:22:17 +02:00
|
|
|
|
2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-07-15 11:44:36 +02:00
|
|
|
|
PR c++/28249
|
|
|
|
|
* parser.c (cp_parser_check_decl_spec): New function.
|
|
|
|
|
(cp_parser_decl_specifier_seq): Factor out check for repeated
|
|
|
|
|
decl-specifiers into cp_parser_check_decl_spec. Use it.
|
2006-07-15 12:00:53 +02:00
|
|
|
|
(cp_parser_type_specifier_seq): Use it.
|
2006-07-15 11:44:36 +02:00
|
|
|
|
|
2006-07-15 11:29:32 +02:00
|
|
|
|
PR c++/28294
|
|
|
|
|
* semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
|
|
|
|
|
only.
|
|
|
|
|
|
2006-07-15 11:22:17 +02:00
|
|
|
|
PR c++/28387
|
|
|
|
|
* decl2.c (cplus_decl_attributes): Check for invalid decls.
|
|
|
|
|
|
2006-07-14 11:43:23 +02:00
|
|
|
|
2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28343
|
|
|
|
|
* decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
|
|
|
|
|
* decl2.c (grokfield): Likewise.
|
|
|
|
|
|
2006-07-13 08:16:59 +02:00
|
|
|
|
2006-07-12 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (determine_visibility): Don't change visibility of
|
|
|
|
|
function locals because of -fvisibility-inlines-hidden.
|
|
|
|
|
|
2006-07-12 23:57:58 +02:00
|
|
|
|
2006-07-12 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28217
|
|
|
|
|
* semantics.c (note_decl_for_pch): Don't premangle templates.
|
|
|
|
|
|
2006-07-12 14:55:01 +02:00
|
|
|
|
2006-07-12 Martin Michlmayr <tbm@cyrius.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (string_conv_p): Remove spurious quotation mark in
|
|
|
|
|
warning.
|
|
|
|
|
|
2006-07-08 19:01:22 +02:00
|
|
|
|
2006-07-07 Lee Millward <lee.millward@gmail.com>
|
2006-07-07 19:57:12 +02:00
|
|
|
|
Andrew Pinski <pinskia@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27820
|
|
|
|
|
* decl.c (define_label): Return error_mark_node on error.
|
|
|
|
|
* semantics.c (finish_label_stmt): Don't call
|
|
|
|
|
add_stmt for invalid labels.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-07-06 20:39:39 +02:00
|
|
|
|
2006-07-06 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28279
|
|
|
|
|
* decl2.c (finish_static_data_member_decl): Don't assert
|
|
|
|
|
TREE_PUBLIC.
|
|
|
|
|
|
2006-07-05 21:44:28 +02:00
|
|
|
|
2006-07-05 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
2006-07-06 04:09:02 +02:00
|
|
|
|
PR c++/13983
|
|
|
|
|
PR c++/17519
|
|
|
|
|
* class.c (check_field_decls): Check TYPE_PACKED after
|
|
|
|
|
stripping array types.
|
|
|
|
|
(finish_struct_bits): Don't copy TYPE_SIZE here.
|
|
|
|
|
|
2006-07-05 21:44:28 +02:00
|
|
|
|
PR c++/18681
|
|
|
|
|
* friend.c (is_friend): Fix DR 45 implementation.
|
|
|
|
|
|
2006-07-05 12:54:17 +02:00
|
|
|
|
2006-07-05 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
Andrew Pinski <pinskia@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/27084
|
|
|
|
|
* cp-objcp-common.c (cxx_types_compatible_p): Ignore
|
|
|
|
|
top level qualifiers for pointer type comparisons.
|
|
|
|
|
|
2006-07-02 00:01:18 +02:00
|
|
|
|
2006-07-01 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28215
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* method.c (make_thunk): Unset DECL_USE_TEMPLATE and
|
2006-07-02 00:01:18 +02:00
|
|
|
|
DECL_TEMPLATE_INFO.
|
|
|
|
|
|
2006-06-30 22:48:42 +02:00
|
|
|
|
2006-06-30 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26577
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* call.c (build_new_method_call): Force evaluation of the
|
2006-06-30 22:48:42 +02:00
|
|
|
|
instance pointer, not the object.
|
|
|
|
|
|
2006-06-30 21:34:38 +02:00
|
|
|
|
2006-06-30 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c: Fix a comment typo.
|
|
|
|
|
|
2006-06-30 20:27:18 +02:00
|
|
|
|
2006-06-30 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/18698
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* decl2.c (grokfield): Only try to treat the decl as an access
|
2006-06-30 20:27:18 +02:00
|
|
|
|
declaration if the scope is a class.
|
|
|
|
|
|
2006-06-30 03:15:56 +02:00
|
|
|
|
2006-06-29 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26905
|
|
|
|
|
PR c++/26612
|
|
|
|
|
PR c++/27000
|
|
|
|
|
PR c++/26984
|
|
|
|
|
PR c++/19134
|
|
|
|
|
* decl2.c (determine_visibility): Overhaul.
|
|
|
|
|
(determine_visibility_from_class): Likewise.
|
|
|
|
|
(min_vis_r, type_visibility, constrain_visibility): New fns.
|
|
|
|
|
(constrain_visibility_for_template): Likewise.
|
|
|
|
|
(constrain_class_visibility): Likewise.
|
|
|
|
|
* decl.c (cp_finish_decl): Call determine_visibility for function
|
|
|
|
|
decls, too.
|
|
|
|
|
* name-lookup.c (pushtag): Call determine_visibility.
|
|
|
|
|
* decl.c (duplicate_decls): Don't copy visibility from template to
|
|
|
|
|
specialization.
|
|
|
|
|
* pt.c (check_explicit_specialization): Likewise.
|
|
|
|
|
(lookup_template_class, tsubst_decl): Call determine_visibility.
|
|
|
|
|
* class.c (finish_struct_1): Call constrain_class_visibility.
|
|
|
|
|
|
|
|
|
|
PR c++/26905
|
|
|
|
|
PR c++/21675
|
|
|
|
|
PR c++/17470
|
|
|
|
|
* parser.c (cp_parser_explicit_instantiation): Pass the attributes
|
|
|
|
|
to grokdeclarator.
|
|
|
|
|
(cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
|
|
|
|
|
(cp_parser_enum_specifier): Likewise.
|
|
|
|
|
(cp_parser_elaborated_type_specifier): Apply attributes if this
|
|
|
|
|
declares only the class.
|
|
|
|
|
(cp_parser_class_specifier): Apply leading attributes immediately.
|
|
|
|
|
* semantics.c (begin_class_definition): Add attributes parameter,
|
|
|
|
|
apply them to the type.
|
|
|
|
|
|
|
|
|
|
PR c++/21581
|
|
|
|
|
PR c++/25915
|
|
|
|
|
* tree.c (decl_anon_ns_mem_p): New function.
|
|
|
|
|
* cp-tree.h: Declare it.
|
|
|
|
|
* decl2.c (determine_visibility): Make anonymous namespace
|
|
|
|
|
members static.
|
|
|
|
|
(min_vis_r, constrain_visibility): Likewise.
|
|
|
|
|
* rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
|
|
|
|
|
pseudo-types.
|
|
|
|
|
* decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
|
|
|
|
|
global_namespace.
|
|
|
|
|
* name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
|
|
|
|
|
on anonymous namespaces.
|
|
|
|
|
|
2006-06-29 03:27:17 +02:00
|
|
|
|
2006-06-28 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27424
|
2006-12-10 06:09:29 +01:00
|
|
|
|
* pt.c (convert_template_argument): Pass all template arguments
|
2006-06-29 03:27:17 +02:00
|
|
|
|
on to coerce_template_template_parms.
|
|
|
|
|
|
2006-06-25 13:28:01 +02:00
|
|
|
|
2006-06-25 Lee Millward <lee.millward@gmail.com>
|
|
|
|
|
Mark Mitchell <mark@codesuorcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28054
|
|
|
|
|
* decl2.c (grokbitfied): Remove check for grokdeclarator
|
|
|
|
|
returning NULL_TREE, instead check for error_mark_node
|
|
|
|
|
to indicate failure.
|
|
|
|
|
* decl.c (grokdeclarator): Adjust block comment.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-06-25 13:07:05 +02:00
|
|
|
|
2006-06-25 Lee Millward <lee.millward@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28051
|
|
|
|
|
* mangle.c (mangle_conv_op_name_for_type): Check for
|
|
|
|
|
invalid types.
|
|
|
|
|
* name-lookup.c (push_class_level_binding): Robustify.
|
|
|
|
|
(do_class_using_decl): Return early if name is error_mark_node.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-06-23 23:58:25 +02:00
|
|
|
|
2006-06-23 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/28114
|
|
|
|
|
* name-lookup.c (pushtag): Return if we have error_mark_node.
|
|
|
|
|
|
2006-06-23 23:53:36 +02:00
|
|
|
|
2006-06-23 Steve Ellcey <sje@cup.hp.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27019
|
|
|
|
|
* typeck2.c (process_init_constructor_array): Set ce->value on errors.
|
|
|
|
|
|
2006-06-23 17:59:51 +02:00
|
|
|
|
2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-06-23 19:02:38 +02:00
|
|
|
|
PR c++/28112
|
|
|
|
|
* parser.c (cp_parser_attribute_list): Skip attributes with invalid
|
|
|
|
|
arguments. Fix comment.
|
|
|
|
|
|
2006-06-23 17:59:51 +02:00
|
|
|
|
PR c++/11468
|
|
|
|
|
* init.c (build_new_1): Handle error_mark_nodes returned by
|
|
|
|
|
build_java_class_ref.
|
|
|
|
|
(build_java_class_ref): Do not abort compilation, but return
|
|
|
|
|
error_mark_node. Improve error message. Fix indentation.
|
|
|
|
|
|
2006-06-23 10:25:33 +02:00
|
|
|
|
2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR target/27789
|
|
|
|
|
* decl.c (start_decl): Check that dllimports are not initialized.
|
|
|
|
|
|
2006-06-22 19:48:41 +02:00
|
|
|
|
2006-06-22 Lee Millward <lee.millward@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27805
|
|
|
|
|
* typeck2.c (build_m_component_ref): Use error_operand_p.
|
2006-06-22 20:05:17 +02:00
|
|
|
|
|
|
|
|
|
PR c++/27821
|
|
|
|
|
* decl.c (grokdeclarator): Return error_mark_node on
|
|
|
|
|
invalid uses of the scope resolution operator.
|
2006-12-10 06:09:29 +01:00
|
|
|
|
|
2006-06-22 11:28:02 +02:00
|
|
|
|
2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-06-22 11:55:42 +02:00
|
|
|
|
PR c++/28111
|
|
|
|
|
* pt.c (determine_specialization): Check for invalid decls.
|
|
|
|
|
|
2006-06-22 11:47:51 +02:00
|
|
|
|
PR c++/28110
|
|
|
|
|
* pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
|
|
|
|
|
parameters.
|
|
|
|
|
|
2006-06-22 11:28:02 +02:00
|
|
|
|
PR c++/28109
|
|
|
|
|
* rtti.c (get_tinfo_decl_dynamic): Robustify.
|
|
|
|
|
|
2006-06-20 15:02:47 +02:00
|
|
|
|
2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/28052
|
|
|
|
|
* init.c (push_base_cleanups): Skip members with invalid types.
|
|
|
|
|
* typeck.c (build_class_member_access_expr): Robustify.
|
|
|
|
|
|
2006-06-19 23:40:05 +02:00
|
|
|
|
2006-06-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (instantiate_template): Fix typo in comment.
|
|
|
|
|
|
2006-06-19 22:08:28 +02:00
|
|
|
|
2006-06-19 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
|
|
|
|
|
power-of-two token vector size.
|
|
|
|
|
|
2006-06-16 20:45:50 +02:00
|
|
|
|
2006-06-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-06-17 03:11:34 +02:00
|
|
|
|
PR c++/28016
|
|
|
|
|
* decl.c (cp_finsh_decl): Do not emit uninstantiated static data
|
|
|
|
|
members.
|
|
|
|
|
|
2006-06-17 01:12:08 +02:00
|
|
|
|
PR c++/27979
|
|
|
|
|
* call.c (standard_conversion): Strip cv-qualifiers from bitfield
|
|
|
|
|
types.
|
|
|
|
|
|
2006-06-16 20:45:50 +02:00
|
|
|
|
PR c++/27884
|
|
|
|
|
* decl.c (have_extern_spec): Remove.
|
|
|
|
|
(start_decl): Do not check have_extern_spec.
|
|
|
|
|
(start_function): Likewise.
|
|
|
|
|
* cp-tree.h (have_extern_spec): Remove.
|
|
|
|
|
* parser.c (cp_parser_linkage_specification): Don't set
|
|
|
|
|
have_extern_spec.
|
|
|
|
|
(cp_parser_init_declarator): Likewise.
|
|
|
|
|
(cp_parser_parameter_declaration): Do not treat parameters as
|
|
|
|
|
within the scope of an unbraced linkage specification.
|
|
|
|
|
|
2006-06-16 04:09:10 +02:00
|
|
|
|
2006-06-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-06-16 08:08:49 +02:00
|
|
|
|
PR c++/27689
|
|
|
|
|
* cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
|
|
|
|
|
macro.
|
|
|
|
|
* pt.c (unify): Use it.
|
|
|
|
|
|
2006-06-16 04:33:35 +02:00
|
|
|
|
PR c++/27666
|
|
|
|
|
* call.c (build_conditional_expr): Robustify.
|
|
|
|
|
|
2006-06-16 04:09:10 +02:00
|
|
|
|
PR c++/27640
|
|
|
|
|
* pt.c (instantiate_template): Set processing_template_decl to
|
|
|
|
|
zero while performing substitutions.
|
|
|
|
|
|
2006-06-14 21:18:45 +02:00
|
|
|
|
2006-06-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-06-15 05:51:51 +02:00
|
|
|
|
PR c++/27665
|
|
|
|
|
* parser.c (cp_parser_unqualified_id): Use constructor_name_p to
|
|
|
|
|
identify destructors.
|
|
|
|
|
(cp_parser_nested_name_specifier_opt): Remove invalid
|
|
|
|
|
optimization.
|
|
|
|
|
(cp_parser_template_id): Refine heuristic for determining whether
|
|
|
|
|
we are entering a scope.
|
|
|
|
|
|
2006-06-15 05:42:01 +02:00
|
|
|
|
PR c++/27648
|
2006-06-15 05:40:42 +02:00
|
|
|
|
* parser.c (cp_parser_declarator): Robustify.
|
|
|
|
|
|
2006-06-15 05:26:38 +02:00
|
|
|
|
PR c++/26559
|
|
|
|
|
* pt.c (tsubst_expr): Use finish_omp_atomic.
|
|
|
|
|
(value_dependent_expression_p): All CALL_EXPRs are dependent.
|
|
|
|
|
* semantics.c (finish_omp_atomic): Rework to use standard
|
|
|
|
|
paradigms for handling non-dependent expressions.
|
|
|
|
|
|
2006-06-15 05:39:10 +02:00
|
|
|
|
2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_modify_expr): Tidy diagnostic message.
|
|
|
|
|
|
|
|
|
|
2006-06-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-06-14 21:18:45 +02:00
|
|
|
|
PR c++/28018
|
|
|
|
|
* typeck.c (build_modify_expr): Disallow array assignment.
|
|
|
|
|
|
2006-06-14 21:07:12 +02:00
|
|
|
|
2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def: Fix typo.
|
|
|
|
|
|
2006-06-14 19:44:36 +02:00
|
|
|
|
2006-06-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27227
|
|
|
|
|
* decl.c (decls_match): Allow an extern "C" variable declarations
|
|
|
|
|
from different namespaces to match.
|
|
|
|
|
(duplicate_decls): Disallow redeclaring a variable with a
|
|
|
|
|
different linkage specification.
|
|
|
|
|
|
2006-06-13 11:21:30 +02:00
|
|
|
|
2006-06-13 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/27793
|
|
|
|
|
* cp-tree.h (cxx_int_tree_map): New struct.
|
|
|
|
|
(struct language_function): Add extern_decl_map field.
|
|
|
|
|
* name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
|
|
|
|
|
to cp_function_chain->extern_decl_map hash table instead of
|
|
|
|
|
copying over DECL_UID.
|
|
|
|
|
* cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
|
|
|
|
|
functions.
|
|
|
|
|
(cp_genericize_r): Remap DECL_EXTERN local decls using
|
|
|
|
|
cp_function_chain->extern_decl_map hash table.
|
|
|
|
|
* decl.c (finish_function): Clear extern_decl_map.
|
|
|
|
|
|
2006-06-12 22:50:53 +02:00
|
|
|
|
2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-06-13 00:56:07 +02:00
|
|
|
|
PR c++/27601
|
|
|
|
|
* semantics.c (finish_offsetof): Handle pseudo-destructors.
|
|
|
|
|
|
2006-06-12 23:12:52 +02:00
|
|
|
|
PR c++/27933
|
|
|
|
|
* name-lookup.c (lookup_qualified_name): Always return error_mark_node
|
|
|
|
|
if lookup fails.
|
|
|
|
|
|
2006-06-12 22:50:53 +02:00
|
|
|
|
PR c++/27951
|
|
|
|
|
* decl2.c (finish_anon_union): Return early if build_anon_union_vars
|
|
|
|
|
fails.
|
|
|
|
|
|
2006-06-12 20:50:22 +02:00
|
|
|
|
2006-06-12 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21210
|
|
|
|
|
* typeck2.c (build_functional_cast): Use cp_convert to construct
|
|
|
|
|
non-aggregate initializers instead of the user-level build_c_cast.
|
|
|
|
|
|
2006-06-07 18:08:30 +02:00
|
|
|
|
2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27601
|
|
|
|
|
* cp-tree.h (finish_offsetof): Add prototype.
|
|
|
|
|
* semantics.c (finish_offsetof): New function.
|
|
|
|
|
* parser.c (cp_parser_builtin_offsetof): Call it instead of
|
|
|
|
|
fold_offsetof.
|
|
|
|
|
* pt.c (tsubst_copy_and_build): Likewise.
|
|
|
|
|
|
2006-06-06 23:38:54 +02:00
|
|
|
|
2006-06-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27177
|
|
|
|
|
* call.c (standard_conversion): Require that the derived type be
|
|
|
|
|
complete when performing a derived-to-base conversion.
|
|
|
|
|
|
2006-06-05 04:46:38 +02:00
|
|
|
|
2006-06-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27819
|
|
|
|
|
* decl.c (cp_finish_decl): Process initializers for static data
|
|
|
|
|
members with non-dependent initializers, even in templates.
|
|
|
|
|
|
|
|
|
|
PR c++/27722
|
|
|
|
|
* decl.c (maybe_deduce_size_from_array_init): If the declaration
|
|
|
|
|
is erroneous, give it an erroneous type.
|
|
|
|
|
(layout_var_decl): If the type is erroneous, give up.
|
|
|
|
|
(check_initializer): Likewise.
|
|
|
|
|
|
|
|
|
|
PR c++/27807
|
|
|
|
|
* cp-tree.h (TYPE_OBJ_P): New macro.
|
|
|
|
|
(TYPE_PTROB_P): Use it.
|
|
|
|
|
(TYPE_REF_OBJ_P): Likewise.
|
|
|
|
|
* semantics.c (finish_compound_literal): Do not permit compound
|
|
|
|
|
literals of non-object types.
|
|
|
|
|
|
|
|
|
|
PR c++/27806
|
|
|
|
|
* typeck.c (original_type): Robustify.
|
|
|
|
|
|
2006-06-05 02:24:41 +02:00
|
|
|
|
2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27804
|
|
|
|
|
* init.c (constant_value_1): Return decl instead of error_mark_node
|
|
|
|
|
for invalid initializers.
|
|
|
|
|
|
2006-06-04 20:25:40 +02:00
|
|
|
|
2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR c++/27592
|
|
|
|
|
* rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
|
|
|
|
|
on operand of the COND_EXPR for the null pointer check.
|
|
|
|
|
|
2006-06-04 19:40:51 +02:00
|
|
|
|
2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR c++/26740
|
|
|
|
|
* typeck.c (build_unary_op): Mark the function as being used.
|
|
|
|
|
|
2006-06-01 06:55:32 +02:00
|
|
|
|
2006-06-01 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26660
|
|
|
|
|
* parser.c (cp_parser_initial_pragma): Read one more token for
|
|
|
|
|
caller after reading PCH file in.
|
|
|
|
|
|
2006-05-31 22:03:12 +02:00
|
|
|
|
2006-05-31 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27801
|
|
|
|
|
* call.c (perform_implicit_conversion): Do not actually perform
|
|
|
|
|
conversions in templates.
|
|
|
|
|
|
|
|
|
|
PR c++/26496
|
|
|
|
|
* call.c (resolve_args): Check for invalid uses of bound
|
|
|
|
|
non-static member functions.
|
|
|
|
|
* init.c (build_offset_ref): Return error_mark_node for errors.
|
|
|
|
|
|
|
|
|
|
PR c++/27385
|
|
|
|
|
* decl.c (reshape_init): Robustify.
|
|
|
|
|
(reshape_init_array_1): Likewise.
|
|
|
|
|
|
2006-05-30 23:25:02 +02:00
|
|
|
|
2006-05-30 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-05-31 03:18:24 +02:00
|
|
|
|
PR c++/27808
|
|
|
|
|
* parser.c (cp_parser_decl_specifier_seq): Issue errors about
|
|
|
|
|
"friend" specifiers that do not appear in class scopes.
|
|
|
|
|
|
2006-05-30 23:25:02 +02:00
|
|
|
|
PR c++/27803
|
|
|
|
|
* class.c (check_bitfield_decl): Ensure that all bitfields have
|
|
|
|
|
integral type.
|
|
|
|
|
|
2006-05-29 07:33:28 +02:00
|
|
|
|
2006-05-29 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (convert_nontype_argument): Fix a typo in an error
|
|
|
|
|
message.
|
|
|
|
|
|
2006-05-28 19:53:11 +02:00
|
|
|
|
2006-05-28 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c, decl2.c, parser.c: Fix comment typos. Follow
|
|
|
|
|
spelling conventions.
|
|
|
|
|
|
2006-05-25 22:18:26 +02:00
|
|
|
|
2006-05-24 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20103
|
|
|
|
|
* decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
|
|
|
|
|
error_mark_node to indicate an initialization is OK.
|
|
|
|
|
(start_decl): Likewise. Adjust call to start_decl_1.
|
|
|
|
|
(start_decl_1): Add initialized parameter. Simplify.
|
|
|
|
|
* except.c (initialize_handler_parm): Adjust call to
|
|
|
|
|
setart_decl_1.
|
|
|
|
|
(expand_start_catch_block): Let cp_finish_decl initialize catch
|
|
|
|
|
parameters.
|
|
|
|
|
* cp-tree.h (start_decl_1): Adjust prototype.
|
|
|
|
|
* pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
|
|
|
|
|
(instantiate_decl): Let cp_finish_decl handle initialization.
|
|
|
|
|
* semantics.c (finish_compound_literal): Create a temporary
|
|
|
|
|
variable for the literal.
|
|
|
|
|
* typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
|
|
|
|
|
cases.
|
|
|
|
|
* decl2.c (finish_static_data_member_decl): Don't set
|
|
|
|
|
DECL_INITIAL.
|
|
|
|
|
(grokfield): Do not try to initialize functions.
|
|
|
|
|
|
2006-05-23 22:45:44 +02:00
|
|
|
|
2006-05-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20173
|
|
|
|
|
* pt.c (determine_specialization): Disallow partial
|
|
|
|
|
specializations of templates.
|
|
|
|
|
|
2006-05-22 18:45:50 +02:00
|
|
|
|
2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-05-22 21:22:24 +02:00
|
|
|
|
PR c++/27716
|
|
|
|
|
* typeck.c (build_modify_expr): Test arguments for error_operand_p.
|
|
|
|
|
|
2006-05-22 18:45:50 +02:00
|
|
|
|
* decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
|
|
|
|
|
|
2006-05-21 19:23:59 +02:00
|
|
|
|
2006-05-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27210
|
|
|
|
|
* cp-tree.h (cp_save_expr): New function.
|
|
|
|
|
* init.c (build_new): Correct logic for zero-element array
|
|
|
|
|
warning. Use cp_save_expr.
|
|
|
|
|
* tree.c (cp_save_expr): New function.
|
|
|
|
|
|
2006-05-21 10:39:14 +02:00
|
|
|
|
2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27398
|
|
|
|
|
* decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
|
|
|
|
|
or void_type_node.
|
|
|
|
|
|
2006-05-19 22:08:01 +02:00
|
|
|
|
2006-05-19 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (default_conversion): Remove static.
|
|
|
|
|
|
2006-05-19 18:04:22 +02:00
|
|
|
|
2006-05-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26433
|
|
|
|
|
* cp-tree.h (begin_function_try_block): Change prototype.
|
|
|
|
|
(finish_function_handler_sequence): Likewise.
|
|
|
|
|
* parser.c (cp_parser_function_try_block): Adjust calls.
|
|
|
|
|
* pt.c (tsubst_expr): Adjust calls.
|
|
|
|
|
* semantics.c (begin_function_try_block): Create an artificial
|
|
|
|
|
outer scope.
|
|
|
|
|
(finish_function_handler_sequence): Close it.
|
|
|
|
|
|
2006-05-19 05:01:14 +02:00
|
|
|
|
2006-05-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27471
|
|
|
|
|
PR c++/27506
|
|
|
|
|
* typeck.c (decay_conversion): Convert bitfields to their declared
|
|
|
|
|
types here. Improve documentation. Avoid use of cp_convert.
|
|
|
|
|
(default_conversion): Make it static. Perform integral promotions
|
|
|
|
|
before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
|
|
|
|
|
conversions.
|
|
|
|
|
* init.c (build_init): Remove.
|
|
|
|
|
(expand_default_init): Do not call rvalue.
|
|
|
|
|
* call.c (null_ptr_cst_p): Robustify.
|
|
|
|
|
(build_conditional_expr): Tidy.
|
|
|
|
|
* except.c (build_throw): Do not perform lvalue-to-rvalue
|
|
|
|
|
conversion on operand before initializing temporary.
|
|
|
|
|
* tree.c (convert.h): Include it.
|
|
|
|
|
(convert_bitfield_to_declared_type): Use convert_to_integer, not
|
|
|
|
|
cp_convert.
|
|
|
|
|
(rvalue): Don't convert bitfields to their declared type here.
|
|
|
|
|
* cp-tree.h (build_init): Remove.
|
|
|
|
|
(default_conversion): Likewise.
|
|
|
|
|
* typeck2.c (build_m_component_ref): Do not perform
|
|
|
|
|
lvalue-to-rvalue, function-to-pointer, or array-to-pointer
|
|
|
|
|
conversions here. Correct error message.
|
|
|
|
|
|
2006-05-17 19:24:00 +02:00
|
|
|
|
2006-05-17 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-05-17 23:39:07 +02:00
|
|
|
|
PR c++/26122
|
|
|
|
|
* decl2.c (check_member_template): Remove checks for virtual
|
|
|
|
|
functions.
|
|
|
|
|
* parser.c (cp_parser_function_specifier_opt): Complain about
|
|
|
|
|
virtual templates.
|
|
|
|
|
(cp_parser_pure_specifier): Likewise.
|
|
|
|
|
|
2006-05-17 19:24:00 +02:00
|
|
|
|
PR c++/26068
|
2006-06-06 13:44:09 +02:00
|
|
|
|
* parser.c (cp_parser_set_storage_class): Check for
|
2006-05-17 19:24:00 +02:00
|
|
|
|
invalid uses of storage classes on unbraced linkage
|
|
|
|
|
specifications.
|
|
|
|
|
(cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
|
|
|
|
|
to cp_parser_set_storage_class.
|
|
|
|
|
|
2006-05-17 10:35:01 +02:00
|
|
|
|
2006-05-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2006-05-17 10:42:47 +02:00
|
|
|
|
PR c++/27491
|
|
|
|
|
* semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
|
|
|
|
|
on CONSTRUCTORs.
|
|
|
|
|
|
2006-05-17 10:35:01 +02:00
|
|
|
|
PR middle-end/27415
|
|
|
|
|
* parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
|
|
|
|
|
on combined parallel workshare constructs.
|
|
|
|
|
* pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
|
|
|
|
|
|
2006-05-16 16:27:18 +02:00
|
|
|
|
2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR driver/26885
|
|
|
|
|
* Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
|
|
|
|
|
|
2006-05-16 00:54:19 +02:00
|
|
|
|
2006-05-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-05-16 07:39:49 +02:00
|
|
|
|
PR c++/27339
|
|
|
|
|
* cp-tree.h (perform_access_checks): New function.
|
|
|
|
|
* semantics.c (perform_access_checks): New function.
|
|
|
|
|
(perform_deferred_access_checks): Use it.
|
|
|
|
|
* parser.c (cp_parser_simple_declaration): Adjust call to
|
|
|
|
|
cp_parser_init_declarator.
|
|
|
|
|
(cp_parser_type_parameter): Do not defer checks in default
|
|
|
|
|
arguments.
|
|
|
|
|
(cp_parser_explicit_specialization): Adjust call to
|
|
|
|
|
cp_parser_single_declaration.
|
|
|
|
|
(cp_parser_init_declarator): Perform template-parameter access
|
2006-06-06 13:44:09 +02:00
|
|
|
|
checks.
|
2006-05-16 07:39:49 +02:00
|
|
|
|
(cp_parser_parameter_declaration): Do not defer checks for
|
|
|
|
|
template parameter default arguments.
|
|
|
|
|
(cp_parser_template_declaration_after_export): Gather access
|
|
|
|
|
checks for template parameters, and pass them to
|
|
|
|
|
cp_parser_single_declaration.
|
|
|
|
|
(cp_parser_template_parameter_access_checks): New function.
|
|
|
|
|
(cp_parser_single_declaration): Add checks parameter.
|
|
|
|
|
|
2006-05-16 00:54:19 +02:00
|
|
|
|
PR c++/27505
|
|
|
|
|
* call.c (convert_like_real): Convert bitfields to their declared
|
|
|
|
|
types when forming an rvalue.
|
|
|
|
|
* tree.c (convert_bitfield_to_declared_type): New function.
|
|
|
|
|
(rvalue): Use it.
|
|
|
|
|
* cp-tree.h (convert_bitfield_to_declare_type): Declare it.
|
|
|
|
|
|
2006-05-15 10:52:29 +02:00
|
|
|
|
2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-05-15 11:34:59 +02:00
|
|
|
|
PR c++/27582
|
|
|
|
|
* pt.c (any_dependent_template_arguments_p): Return early on invalid
|
|
|
|
|
argument list.
|
|
|
|
|
|
2006-05-15 11:19:30 +02:00
|
|
|
|
PR c++/27581
|
|
|
|
|
* search.c (adjust_result_of_qualified_name_lookup): Skip on
|
|
|
|
|
invalid context_class.
|
|
|
|
|
|
2006-05-15 11:07:17 +02:00
|
|
|
|
PR c++/27315
|
|
|
|
|
* pt.c (do_decl_instantiation): Return early on invalid decl.
|
|
|
|
|
|
2006-05-15 10:58:25 +02:00
|
|
|
|
PR c++/27559
|
|
|
|
|
* pt.c (push_template_decl_real): Return error_mark_node instead
|
|
|
|
|
of broken decl.
|
|
|
|
|
|
2006-05-15 10:52:29 +02:00
|
|
|
|
PR c++/27496
|
|
|
|
|
* pt.c (tsubst_friend_class): Return early on invalid friend
|
|
|
|
|
declarations.
|
|
|
|
|
|
2006-05-15 05:09:17 +02:00
|
|
|
|
2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
|
|
|
|
|
(cp/decl2.o): Likewise.
|
|
|
|
|
(cp/typeck.o): Likewise.
|
|
|
|
|
(cp/cvt.o): Likewise.
|
|
|
|
|
(cp/parser.o): Likewise.
|
|
|
|
|
(cp/call.o): Replace target.h with $(TARGET_H).
|
|
|
|
|
|
2006-05-14 22:37:56 +02:00
|
|
|
|
2006-05-14 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
|
|
|
|
|
COMPONENT_REF alone.
|
|
|
|
|
|
2006-05-11 16:41:03 +02:00
|
|
|
|
2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27547
|
|
|
|
|
* decl.c (copy_fn_p): Return early on non-member functions.
|
|
|
|
|
|
2006-05-08 02:26:08 +02:00
|
|
|
|
2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27447
|
|
|
|
|
* decl2.c (build_memfn_type): Skip invalid functions and class types.
|
|
|
|
|
|
2006-05-06 02:19:40 +02:00
|
|
|
|
2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-05-06 22:40:23 +02:00
|
|
|
|
PR c++/27427
|
|
|
|
|
* pt.c (convert_nontype_argument): Return early on invalid arguments.
|
|
|
|
|
|
2006-05-06 02:44:29 +02:00
|
|
|
|
* pt.c (process_template_parm): Remove superfluous temporary.
|
|
|
|
|
|
2006-05-06 02:40:40 +02:00
|
|
|
|
PR c++/27430
|
|
|
|
|
* pt.c (process_template_parm): Handle erroneous non-type parameters.
|
|
|
|
|
|
2006-05-06 02:32:27 +02:00
|
|
|
|
PR c++/27423
|
|
|
|
|
* typeck.c (convert_for_initialization): Skip erroneous types.
|
|
|
|
|
|
2006-05-06 02:19:40 +02:00
|
|
|
|
PR c++/27422
|
|
|
|
|
* typeck.c (convert_arguments): Return early on args with
|
|
|
|
|
invalid types.
|
|
|
|
|
|
2006-05-05 21:57:38 +02:00
|
|
|
|
2006-05-03 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR/21391
|
|
|
|
|
* typeck.c (build_static_cast_1): Save casted types in used types
|
|
|
|
|
hash table.
|
|
|
|
|
(build_reinterpret_cast_1): Same.
|
|
|
|
|
* rtti.c (build_dynamic_cast_1): Same.
|
|
|
|
|
|
2006-05-04 08:29:16 +02:00
|
|
|
|
2006-05-04 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27359
|
|
|
|
|
* parser.c (cp_parser_omp_for_loop): Only call
|
|
|
|
|
cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
|
|
|
|
|
called.
|
|
|
|
|
|
2006-05-02 17:59:50 +02:00
|
|
|
|
2006-05-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-05-03 02:19:40 +02:00
|
|
|
|
PR c++/27102
|
|
|
|
|
* decl.c (grokdeclarator): Robustify checks for defining members
|
|
|
|
|
of incomplete types.
|
|
|
|
|
|
2006-05-02 17:59:50 +02:00
|
|
|
|
PR c++/27309
|
|
|
|
|
* class.c (add_method): Call grok_special_member_properties.
|
|
|
|
|
* decl.c (grokdeclarator): Don't call it here.
|
|
|
|
|
(copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
|
|
|
|
|
assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
|
|
|
|
|
constructor.
|
|
|
|
|
(start_method): Don't call grok_special_member_properties.
|
|
|
|
|
* method.c (implicitly_declare_fn): Likewise.
|
|
|
|
|
* pt.c (instantiate_class_template): Likewise.
|
|
|
|
|
* decl2.c (grokfield): Likewise.
|
|
|
|
|
|
2006-05-02 12:44:55 +02:00
|
|
|
|
2006-05-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/27337
|
|
|
|
|
* cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
|
|
|
|
|
* cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
|
|
|
|
|
|
2006-05-01 01:21:38 +02:00
|
|
|
|
2006-04-30 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27094
|
|
|
|
|
* pt.c (tsubst_default_argument): Increment function_depth around
|
|
|
|
|
call to tsubst_expr.
|
|
|
|
|
* parser.c (cp_parser_parameter_declaration): Likewise.
|
|
|
|
|
* decl2.c (mark_used): Tidy.
|
|
|
|
|
|
2006-04-30 12:34:05 +02:00
|
|
|
|
2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27278
|
|
|
|
|
* decl.c (grok_op_properties): Skip operators with invalid args
|
|
|
|
|
when checking for class-type or enum-type args.
|
|
|
|
|
|
2006-04-29 22:48:45 +02:00
|
|
|
|
2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/27279
|
|
|
|
|
* decl.c (copy_fn_p): Skip functions with invalid first arg.
|
|
|
|
|
|
2006-04-27 21:02:54 +02:00
|
|
|
|
2006-04-27 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-04-28 04:40:58 +02:00
|
|
|
|
PR c++/27292
|
|
|
|
|
* tree.c (rvalue): Convert bitfields to their declared types.
|
|
|
|
|
|
2006-04-27 21:02:54 +02:00
|
|
|
|
PR c++/27102
|
|
|
|
|
* typeck2.c (cxx_incomplete_type_diagnostic): Handle
|
|
|
|
|
TYPENAME_TYPE.
|
|
|
|
|
|
2006-04-25 05:33:38 +02:00
|
|
|
|
2006-04-24 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27292
|
|
|
|
|
* typeck.c (decay_conversion): Don't adjust bitfield types.
|
|
|
|
|
(perform_integral_promotions): Treat bitfield enums as enums, not
|
|
|
|
|
as short integer types.
|
|
|
|
|
* tree.c (rvalue): Convert bitfields to their correct types.
|
|
|
|
|
|
2006-04-24 10:38:05 +02:00
|
|
|
|
2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/19963
|
|
|
|
|
* class.c (layout_class_type): Skip fields with invalid types.
|
|
|
|
|
|
2006-04-23 20:04:33 +02:00
|
|
|
|
2006-04-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-04-24 05:50:31 +02:00
|
|
|
|
PR c++/26912
|
|
|
|
|
* cp-tree.h (build_this_parm): Declare.
|
|
|
|
|
(grok_method_quals): Remove.
|
|
|
|
|
(build_memfn_type): Declare.
|
|
|
|
|
(build_artificial_parm): Declare.
|
|
|
|
|
(do_friend): Remove quals parameter.
|
|
|
|
|
* decl.c (build_this_parm): New function.
|
|
|
|
|
(grokfndecl): Use it. Do not pass quals to grokclassfn.
|
|
|
|
|
(grokdeclarator): Rename quals to memfn_quals. Avoid allocating
|
|
|
|
|
unnecessary TYPE_DECLs. Correct qualification of member function
|
|
|
|
|
types. Tidy.
|
|
|
|
|
* method.c (implicitly_declare_fn): Use build_this_parm.
|
|
|
|
|
* friend.c (do_friend): Remove quals parameter.
|
|
|
|
|
* decl2.c (grok_method_quals): Remove.
|
|
|
|
|
(build_memfn_type): New function.
|
|
|
|
|
(build_artificial_parm): Give it external linkage.
|
|
|
|
|
(grokclassfn): Remove quals parameter. Do not build "this"
|
|
|
|
|
PARM_DECL here.
|
|
|
|
|
|
2006-04-23 20:04:33 +02:00
|
|
|
|
PR c++/26534
|
|
|
|
|
* cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
|
|
|
|
|
* typeck.c (is_bitfield_expr_with_lowered_type): New function.
|
|
|
|
|
(decay_conversion): Convert bitfield expressions to the correct
|
|
|
|
|
type.
|
|
|
|
|
(build_modify_expr): Remove spurious conversions.
|
|
|
|
|
* class.c (layout_class_type): Modify the type of bitfields to
|
2006-06-06 13:44:09 +02:00
|
|
|
|
indicate a limited range.
|
2006-04-23 20:04:33 +02:00
|
|
|
|
* call.c (standard_conversion): Adjust the type of bitfield
|
|
|
|
|
expressions used in an rvalue context.
|
|
|
|
|
(build_conditional_expr): Likewise.
|
2006-06-06 13:44:09 +02:00
|
|
|
|
|
2006-04-22 18:12:34 +02:00
|
|
|
|
2006-04-22 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c: Fix comment typos.
|
|
|
|
|
|
2006-04-22 03:33:34 +02:00
|
|
|
|
2006-04-21 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
|
|
* decl.c: Fix typo in function name.
|
|
|
|
|
|
2006-04-19 19:15:54 +02:00
|
|
|
|
2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-04-20 00:03:24 +02:00
|
|
|
|
PR c++/26558
|
|
|
|
|
* parser.c (cp_parser_class_name): Check for invalid typenames.
|
|
|
|
|
Rearrange code.
|
|
|
|
|
|
2006-04-19 20:07:19 +02:00
|
|
|
|
PR c++/26739
|
|
|
|
|
* pt.c (tsubst_friend_function): Return early if
|
|
|
|
|
pushdecl_namespace_level fails.
|
|
|
|
|
|
2006-04-19 19:36:59 +02:00
|
|
|
|
PR c++/26036
|
|
|
|
|
* typeck.c (convert_arguments): Return error_mark_node instead of
|
|
|
|
|
error_mark_list.
|
|
|
|
|
* cp-tree.h (error_mark_list): Remove declaration.
|
|
|
|
|
* decl.c (error_mark_list): Remove definition.
|
|
|
|
|
(cxx_init_decl_processing): Do not initialize error_mark_list.
|
|
|
|
|
|
2006-04-19 19:15:54 +02:00
|
|
|
|
PR c++/10385
|
|
|
|
|
* rtti.c (build_dynamic_cast_1): Check for invalid conversions
|
|
|
|
|
before calling convert_to_reference.
|
|
|
|
|
* cvt.c (convert_to_reference): Assert that reftype is a
|
|
|
|
|
REFERENCE_TYPE.
|
|
|
|
|
|
2006-04-19 18:58:23 +02:00
|
|
|
|
2006-04-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/27102
|
|
|
|
|
* class.c (currently_open_class): Tidy.
|
|
|
|
|
* decl.c (grokdeclarator): If we encounter an erroneous
|
|
|
|
|
declarator, assume that we have already issued an error message
|
|
|
|
|
and return. Return error_mark_node instead of NULL_TREE in more
|
|
|
|
|
places. Issue errors about function definitions that do not have
|
|
|
|
|
a function declarator. Check for complete types for all function
|
2006-04-22 03:33:34 +02:00
|
|
|
|
definitions.
|
2006-04-19 18:58:23 +02:00
|
|
|
|
* cp-tree.h (cp_error_declarator): Remove.
|
|
|
|
|
(currently_open_class): Change return type.
|
|
|
|
|
* parser.c (cp_parser_id_expression): Add optional_p parameter.
|
|
|
|
|
(cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
|
|
|
|
|
(cp_parser_id_expression): Likewise.
|
|
|
|
|
(cp_parser_unqualified_id): If the name is optional, return
|
|
|
|
|
NULL_TREE.
|
|
|
|
|
(cp_parser_postfix_dot_deref_expression): Adjust calls.
|
|
|
|
|
(cp_parser_type_parameter): Likewise.
|
|
|
|
|
(cp_parser_unqualified_id): Likewise.
|
|
|
|
|
(cp_parser_direct_declarator): Likewise.
|
|
|
|
|
(cp_parser_declarator_id): Add optional_p parameter.
|
|
|
|
|
(cp_parser_function_definition_from_specifiers_and_declarator):
|
|
|
|
|
Assume that start_function indicates failure only if it has issued
|
|
|
|
|
an error.
|
|
|
|
|
(cp_parser_omp_var_list_no_open): Adjust calls.
|
2006-04-22 03:33:34 +02:00
|
|
|
|
|
2006-04-17 21:35:56 +02:00
|
|
|
|
2006-04-17 Janis Johnson <janis187@us.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26114, c++/26115
|
|
|
|
|
* typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
|
|
|
|
|
* class.c (check_field_decls): Ditto.
|
|
|
|
|
|
2006-04-17 18:32:03 +02:00
|
|
|
|
2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* init.c (build_offset_ref): Remove superfluous temporary.
|
|
|
|
|
|
2006-04-16 20:12:41 +02:00
|
|
|
|
2006-04-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26365
|
|
|
|
|
* typeck.c (finish_class_member_access_expr): Robustify
|
|
|
|
|
|
2006-04-15 14:40:14 +02:00
|
|
|
|
2006-04-15 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cp/pt.o): Depend on vecprim.h.
|
|
|
|
|
* pt.c: Include vecprim.h.
|
|
|
|
|
(inline_parm_levels): Change the type to VEC(int,heap) *.
|
|
|
|
|
(inline_parm_levels_used): Remove.
|
|
|
|
|
(maybe_begin_member_template_processing,
|
|
|
|
|
maybe_end_member_template_processing): Use VEC instead of
|
|
|
|
|
VARRAY.
|
|
|
|
|
|
2006-04-15 23:48:54 +02:00
|
|
|
|
* cp/call.c: Fix comment typos.
|
|
|
|
|
|
2006-04-12 18:58:24 +02:00
|
|
|
|
2006-04-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_init_declarator): Initialize local variables
|
|
|
|
|
aggressively.
|
|
|
|
|
|
2006-04-12 18:26:58 +02:00
|
|
|
|
2006-04-12 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_init_declarator): Initialise
|
|
|
|
|
is_parenthesized_init to false to avoid compiler warning.
|
|
|
|
|
|
2006-04-12 00:59:57 +02:00
|
|
|
|
2006-04-11 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (build_operator_new_call): Adjust prototype.
|
|
|
|
|
(build_new_method_call): Likewise.
|
|
|
|
|
(build_op_delete_call): Likewise.
|
|
|
|
|
* init.c (build_raw_new_expr): New function.
|
|
|
|
|
(build_new_1): Pass information as parameters, rather than
|
|
|
|
|
bundling it into a NEW_EXPR.
|
|
|
|
|
(build_new): Adjust accordingly.
|
|
|
|
|
(build_vec_delete_1): Adjust for changes to build_op_delete_call.
|
|
|
|
|
(build_delete): Likewise.
|
|
|
|
|
* decl.c (finish_destructor_body): Likewise.
|
|
|
|
|
* call.c (build_operator_new_call): Return the allocation function
|
|
|
|
|
used.
|
|
|
|
|
(build_op_delete_call): Take allocation function as parameter.
|
|
|
|
|
(build_special_member_call): Adjust call to build_new_method_call.
|
|
|
|
|
(build_new_method_call): Return function called.
|
|
|
|
|
* pt.c (tsubst_copy_and_build): Adjust call to
|
|
|
|
|
build_new_method_call.
|
|
|
|
|
* semantics.c (finish_call_expr): Likewise.
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Likewise.
|
|
|
|
|
* typeck2.c (cxx_incomplete_type_diagnostic): Refer to
|
2006-04-22 03:33:34 +02:00
|
|
|
|
"incomplete", not "undefined", types.
|
2006-04-12 00:59:57 +02:00
|
|
|
|
|
|
|
|
|
PR c++/26295
|
|
|
|
|
* decl.c (grokdeclarator): Remove namespace-handling code for
|
2006-04-22 03:33:34 +02:00
|
|
|
|
pointers-to-members.
|
2006-04-12 00:59:57 +02:00
|
|
|
|
* parser.c (cp_parser_ptr_operator): Check for qualified names
|
|
|
|
|
using namespaces.
|
|
|
|
|
|
|
|
|
|
PR c++/26122
|
|
|
|
|
* parser.c (cp_parser_init_declarator): Adjust logic for deciding
|
|
|
|
|
whether or not to look for a pure-specifier.
|
|
|
|
|
(cp_parser_member_declaration): Likewise.
|
|
|
|
|
|
2006-04-08 16:15:44 +02:00
|
|
|
|
2006-04-08 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c, pt.c, semantics.c: Fix comment typos.
|
|
|
|
|
|
2006-04-06 18:47:40 +02:00
|
|
|
|
2006-04-06 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
|
|
|
|
|
|
2006-04-06 00:32:25 +02:00
|
|
|
|
2006-04-05 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (push_namespace_with_attribs): Temporarily disable
|
|
|
|
|
default hidden visibility for anonymous namespace.
|
|
|
|
|
|
2006-03-30 03:35:22 +02:00
|
|
|
|
2006-03-29 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22494
|
|
|
|
|
* init.c (build_vec_delete_1): Convert BASE pointer's type to
|
|
|
|
|
the base pointer type to avoid a type mismatch in the EQ_EXPR.
|
|
|
|
|
|
2006-03-24 22:17:41 +01:00
|
|
|
|
2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* search.c (maybe_suppress_debug_info): If
|
|
|
|
|
flag_emit_class_debug_always then don't suppress.
|
|
|
|
|
|
2006-03-23 05:20:38 +01:00
|
|
|
|
2006-03-22 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* name-lookup.c (push_namespace_with_attribs): Only apply hidden
|
|
|
|
|
visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
|
2006-03-23 05:20:38 +01:00
|
|
|
|
|
2006-03-21 17:21:24 +01:00
|
|
|
|
2006-03-21 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26691
|
|
|
|
|
* cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
|
|
|
|
|
|
2006-03-21 17:15:25 +01:00
|
|
|
|
2006-03-21 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21581
|
|
|
|
|
* parser.c (cp_parser_declaration): Support attributes on
|
|
|
|
|
anonymous namespaces.
|
2006-04-22 03:33:34 +02:00
|
|
|
|
* name-lookup.c (push_namespace_with_attribs): Anonymous
|
2006-03-21 17:15:25 +01:00
|
|
|
|
namespaces default to hidden visibility.
|
|
|
|
|
|
2006-03-21 04:19:06 +01:00
|
|
|
|
2006-03-20 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21764, c++/19238
|
|
|
|
|
* decl.c (cp_finish_decl): Call determine_visibility later.
|
|
|
|
|
(start_preparsed_function): Likewise.
|
|
|
|
|
* cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
|
|
|
|
|
(TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
|
2006-04-22 03:33:34 +02:00
|
|
|
|
* name-lookup.h (struct cp_binding_level): Add has_visibility
|
2006-03-21 04:19:06 +01:00
|
|
|
|
bitfield.
|
|
|
|
|
* name-lookup.c: Include c-pragma.h.
|
|
|
|
|
(push_namespace_with_attribs): Split out from push_namespace.
|
|
|
|
|
Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
|
|
|
|
|
(leave_scope): Pop visibility if appropriate.
|
|
|
|
|
* decl2.c (determine_visibility_from_class): Split out from...
|
2006-04-22 03:33:34 +02:00
|
|
|
|
(determine_visibility): ...here. Handle function scope and
|
2006-03-21 04:19:06 +01:00
|
|
|
|
nested classes.
|
2006-04-22 03:33:34 +02:00
|
|
|
|
(import_export_decl): Move visibility handling to
|
2006-03-21 04:19:06 +01:00
|
|
|
|
determine_visibility_from_class.
|
|
|
|
|
* parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
|
|
|
|
|
attributes on namespace declarations.
|
|
|
|
|
|
2006-03-15 16:27:11 +01:00
|
|
|
|
2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/6634
|
2006-03-21 04:19:06 +01:00
|
|
|
|
* decl.c (grokdeclarator): Do not accept long long double.
|
2006-03-15 16:27:11 +01:00
|
|
|
|
Reorganize checks for invalid (combinations of) type modifiers.
|
|
|
|
|
Quote modifiers in messages.
|
|
|
|
|
|
2006-03-10 23:40:41 +01:00
|
|
|
|
2006-03-09 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/16387, c++/16389
|
|
|
|
|
* typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
|
|
|
|
|
(cxx_sizeof_or_alignof_expr): Split out from here.
|
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
|
2006-03-09 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
Merge from gomp-20050608-branch
|
|
|
|
|
|
|
|
|
|
2006-02-02 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (pop_labels_1): Use appropriate pointer casting.
|
|
|
|
|
(poplevel_named_label_1): Likewise.
|
|
|
|
|
(named_label_entry_hash): Likewise.
|
|
|
|
|
(named_label_entry_eq): Likewise.
|
|
|
|
|
(check_goto): Likewise.
|
|
|
|
|
(define_label): Likewise.
|
|
|
|
|
|
|
|
|
|
2006-01-26 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
|
|
|
|
|
of TREE_BLOCK.
|
|
|
|
|
* pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
|
|
|
|
|
instead of TREE_CODE/TREE_OPERAND.
|
|
|
|
|
* semantics.c: Likewise.
|
|
|
|
|
* parser.c: Likewise.
|
|
|
|
|
|
|
|
|
|
2005-11-10 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
|
|
|
|
|
target does not support TLS.
|
|
|
|
|
|
|
|
|
|
2005-11-09 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (redeclaration_error_message): Don't error about
|
|
|
|
|
DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
|
|
|
|
|
(olddecl).
|
|
|
|
|
|
|
|
|
|
2005-11-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24735
|
|
|
|
|
* semantics.c (finish_omp_barrier, finish_omp_flush): New
|
|
|
|
|
functions.
|
|
|
|
|
* parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
|
|
|
|
|
(cp_parser_omp_flush): Call finish_omp_flush.
|
|
|
|
|
* cp-tree.h (finish_omp_barrier, finish_omp_flush): New
|
|
|
|
|
prototypes.
|
|
|
|
|
|
|
|
|
|
PR c++/24734
|
|
|
|
|
* pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
|
|
|
|
|
|
|
|
|
|
2005-11-03 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_threadprivate): Error on class-scope
|
|
|
|
|
variables.
|
|
|
|
|
|
|
|
|
|
2005-11-02 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_all_clauses): If some clause
|
|
|
|
|
type is not allowed, don't remove just one of the
|
|
|
|
|
clauses, but all clauses added in that loop round.
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_clauses): Fix function
|
|
|
|
|
comment. Don't handle non-const or mutable specially,
|
|
|
|
|
as const and not mutable is predetermined shared and
|
|
|
|
|
that leads to double error. Don't ICE if copyin var is
|
|
|
|
|
PARM_DECL.
|
|
|
|
|
|
|
|
|
|
PR c++/24613
|
|
|
|
|
* parser.c (cp_parser_pragma): Diagnose
|
|
|
|
|
PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
|
|
|
|
|
construct.
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_threadprivate): Error if V
|
|
|
|
|
is automatic variable or has incomplete type.
|
|
|
|
|
|
|
|
|
|
2005-11-01 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_all_clauses): Use
|
|
|
|
|
OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
|
|
|
|
|
|
|
|
|
|
2005-11-01 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_all_clauses): When emitting an
|
|
|
|
|
error message, remove the invalid clause from the list.
|
|
|
|
|
|
|
|
|
|
2005-10-31 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
|
|
|
|
|
combined parallel+workshare directives.
|
|
|
|
|
|
|
|
|
|
2005-10-31 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
|
|
|
|
|
Use cxx_omp_clause_dtor.
|
|
|
|
|
* cp-tree.h (CP_OMP_CLAUSE_INFO): New.
|
|
|
|
|
(cxx_omp_clause_dtor): New.
|
|
|
|
|
* cp-gimplify.c (cxx_omp_clause_apply_fn): New.
|
|
|
|
|
(cxx_omp_clause_default_ctor): Use it.
|
|
|
|
|
(cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
|
|
|
|
|
Likewise.
|
|
|
|
|
(cxx_omp_clause_dtor): New.
|
|
|
|
|
* semantics.c (finish_omp_clauses): Rewrite cdtor
|
|
|
|
|
checking to fill in CP_OMP_CLAUSE_INFO. Don't
|
|
|
|
|
specialcase LASTPRIVATE for removal.
|
|
|
|
|
(cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
|
|
|
|
|
cxx_omp_clause_assign_op): Move to cp-gimplify.c.
|
|
|
|
|
|
|
|
|
|
2005-10-28 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_threadprivate): If
|
|
|
|
|
DECL_RTL_SET_P, call make_decl_rtl again so that
|
|
|
|
|
encode_section_info can update SYMBOL_REF's flags.
|
|
|
|
|
|
|
|
|
|
2005-10-26 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_for): Don't segfault if COND
|
|
|
|
|
or INCR is NULL. If not calling c_finish_omp_for
|
|
|
|
|
right away and one of COND and INCR is NULL, issue
|
|
|
|
|
error and don't expand anything.
|
|
|
|
|
|
|
|
|
|
PR c++/24512
|
|
|
|
|
* cp-tree.h (finish_omp_for): Add PRE_BODY argument.
|
|
|
|
|
* semantics.c (finish_omp_for): Likewise. Set
|
|
|
|
|
OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
|
|
|
|
|
into the current statement list if not processing
|
|
|
|
|
template decl or pass it to c_finish_omp_for.
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
|
|
|
|
|
into PRE_BODY statement list. Pass it to finish_omp_for.
|
|
|
|
|
* pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
|
|
|
|
|
OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
|
|
|
|
|
finish_omp_for. Put all the statements into sk_omp
|
|
|
|
|
scope.
|
|
|
|
|
|
|
|
|
|
2005-10-25 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24516
|
|
|
|
|
* parser.c (struct cp_parser): Rename in_iteration_statement
|
|
|
|
|
field to in_statement.
|
|
|
|
|
(IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
|
|
|
|
|
(IN_OMP_BLOCK, IN_OMP_FOR): Change values.
|
|
|
|
|
(cp_parser_new, cp_parser_begin_omp_structured_block,
|
|
|
|
|
cp_parser_end_omp_structured_block,
|
|
|
|
|
cp_parser_omp_for_loop): Adjust for
|
|
|
|
|
in_iteration_statement renaming.
|
|
|
|
|
(cp_parser_selection_statement): Save
|
|
|
|
|
parser->in_iteration, or it temporarily with
|
|
|
|
|
IN_SWITCH_STMT for the
|
|
|
|
|
cp_parser_implicitly_scoped_statement call.
|
|
|
|
|
(cp_parser_iteration_statement): Adjust for
|
|
|
|
|
in_iteration_statement renaming. Use
|
|
|
|
|
IN_ITERATION_STMT rather than true.
|
|
|
|
|
(cp_parser_jump_statement): Adjust for
|
|
|
|
|
in_iteration_statement renaming and new values. Don't
|
|
|
|
|
error on break in a switch statement within OMP_FOR or
|
|
|
|
|
OpenMP structured block.
|
|
|
|
|
|
|
|
|
|
PR c++/24513
|
|
|
|
|
* parser.c (cp_parser_cache_group): Don't stop if next
|
|
|
|
|
token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
|
|
|
|
|
well. If current token is CPP_PRAGMA, consume
|
|
|
|
|
everything until CPP_PRAGMA_EOL inclusive.
|
|
|
|
|
|
|
|
|
|
2005-10-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24502
|
|
|
|
|
* semantics.c (finish_omp_for): Handle MODOP_EXPR in
|
|
|
|
|
addition to MODIFY_EXPR.
|
|
|
|
|
|
|
|
|
|
2005-10-23 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-gimplify.c (struct cp_gimplify_ctx): Remove.
|
|
|
|
|
(bc_label): New.
|
|
|
|
|
(begin_bc_block, finish_bc_block): Use it.
|
|
|
|
|
(push_context, pop_context): Remove.
|
|
|
|
|
(cp_genericize): Don't use them. Assert bc_label is null.
|
|
|
|
|
* semantics.c (finish_omp_clauses): Create a fake data
|
|
|
|
|
element of TYPE for probing ctors.
|
|
|
|
|
|
|
|
|
|
2005-10-23 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
|
|
|
|
|
(LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
|
|
|
|
|
(LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
|
|
|
|
|
(LANG_HOOKS_OMP_CLAUSE_DTOR): New.
|
|
|
|
|
* semantics.c (finish_omp_clauses): Look through
|
|
|
|
|
arrays when looking up special member calls. Also
|
|
|
|
|
remove FIRSTPRIVATE when LASTPRIVATE fails.
|
|
|
|
|
(cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
|
|
|
|
|
(cxx_omp_clause_assign_op): New.
|
|
|
|
|
* cp-tree.h: Declare them.
|
|
|
|
|
|
|
|
|
|
2005-10-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (check_previous_goto_1): Return false if error.
|
|
|
|
|
(check_switch_goto): Likewise.
|
|
|
|
|
(finish_case_label): Don't emit the case label on error.
|
|
|
|
|
* parser.c (struct cp_parser): Revert
|
|
|
|
|
in_switch_statement_p changes.
|
|
|
|
|
(cp_parser_labeled_statement,
|
|
|
|
|
cp_parser_selection_statement): Likewise.
|
|
|
|
|
(cp_parser_begin_omp_structured_block): Don't save...
|
|
|
|
|
(cp_parser_end_omp_structured_block): or restore
|
|
|
|
|
in_switch_statement_p.
|
|
|
|
|
|
|
|
|
|
2005-10-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_threadprivate): Set
|
|
|
|
|
decl_flags.u2sel when necessary.
|
|
|
|
|
|
|
|
|
|
2005-10-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (poplevel_named_label_1): Restore creation of the
|
|
|
|
|
bad_decls list.
|
|
|
|
|
(decl_jump_unsafe): Check for error_mark_node types.
|
2006-03-10 23:40:41 +01:00
|
|
|
|
(check_goto): Don't check cdtor_label. Don't use identify_goto.
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* semantics.c (finish_return_stmt): Do check_omp_return before
|
2006-03-09 19:14:39 +01:00
|
|
|
|
converting to cdtor_label goto.
|
|
|
|
|
|
|
|
|
|
2005-10-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24451
|
|
|
|
|
* decl.c (check_omp_return): Return false on error.
|
|
|
|
|
* cp-tree.h (check_omp_return): Update decl.
|
|
|
|
|
* semantics.c (finish_return_stmt): Avoid adding
|
|
|
|
|
return on error.
|
|
|
|
|
|
|
|
|
|
2005-10-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (struct language_function): Remove
|
|
|
|
|
x_named_label_uses.
|
|
|
|
|
Change x_named_labels to a hashtable.
|
|
|
|
|
(check_omp_return): Declare.
|
|
|
|
|
* decl.c (struct named_label_use_entry): Rename from
|
|
|
|
|
named_label_use_list. Remove label_decl.
|
|
|
|
|
(struct named_label_entry): Rename from
|
|
|
|
|
named_label_list. Remove old_value and next. Change
|
|
|
|
|
in_try_scope and in_catch_scope to bool. Add
|
|
|
|
|
in_omp_scope.
|
|
|
|
|
(pop_labels_1): New.
|
|
|
|
|
(pop_labels): Use it.
|
|
|
|
|
(pop_local_label, poplevel_named_label_1): New.
|
|
|
|
|
(poplevel): Use them.
|
|
|
|
|
(named_label_entry_hash, named_label_entry_eq): New.
|
|
|
|
|
(make_label_decl): Create named_labels. Move label
|
|
|
|
|
creation bits from lookup_label.
|
|
|
|
|
(declare_local_label): Tidy.
|
|
|
|
|
(identify_goto): Split out from ...
|
|
|
|
|
(check_previous_goto_1): Add exited_omp argument.
|
|
|
|
|
Handle omp scopes.
|
|
|
|
|
|
|
|
|
|
(use_label): Merge into...
|
|
|
|
|
(check_goto): ... here. Handle omp scopes.
|
|
|
|
|
(check_omp_return): New.
|
|
|
|
|
(check_previous_gotos): Merge into...
|
|
|
|
|
(define_label): ... here.
|
|
|
|
|
(save_function_data): Remove x_named_label_uses reference.
|
|
|
|
|
(finish_function): Likewise.
|
|
|
|
|
* name-lookup.h (sk_omp): New.
|
|
|
|
|
* name-lookup.c (begin_scope): Handle it.
|
|
|
|
|
* parser.c (cp_parser_omp_for): Don't create extra
|
|
|
|
|
compound stmt.
|
|
|
|
|
|
|
|
|
|
(cp_parser_omp_sections): Likewise.
|
|
|
|
|
* semantics.c (finish_return_stmt): Call check_omp_return.
|
|
|
|
|
(begin_omp_structured_block): Use sk_omp.
|
|
|
|
|
(finish_omp_structured_block): Use do_poplevel. Don't build a
|
|
|
|
|
MUST_NOT_THROW expression here.
|
|
|
|
|
(begin_omp_parallel, finish_omp_parallel): Don't create extra
|
|
|
|
|
compound statements.
|
|
|
|
|
|
|
|
|
|
2005-10-21 Diego Novillo <dnovillo@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 24455
|
|
|
|
|
* cp/cp-tree.h (struct lang_decl_flags): Add field
|
|
|
|
|
threadprivate_p.
|
|
|
|
|
(CP_DECL_IS_THREADPRIVATE): Define.
|
|
|
|
|
* cp/semantics.c (finish_omp_threadprivate): Set. Do
|
|
|
|
|
not error out if CP_DECL_IS_THREADPRIVATE is set
|
|
|
|
|
already.
|
|
|
|
|
* cp/decl.c (duplicate_decls): Merge
|
|
|
|
|
CP_DECL_THREADPRIVATE_P.
|
|
|
|
|
|
|
|
|
|
2005-10-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-gimplify.c (cp_gimplify_omp_for): New.
|
|
|
|
|
(cp_gimplify_expr): Call it.
|
|
|
|
|
* cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
|
|
|
|
|
* parser.c (struct cp_parser): Rename
|
|
|
|
|
in_iteration_statement_p to in_iteration_statement and
|
|
|
|
|
change to unsigned char. Similarly with
|
|
|
|
|
in_switch_statement. Update all users.
|
|
|
|
|
(IN_OMP_BLOCK, IN_OMP_FOR): New.
|
|
|
|
|
(cp_parser_labeled_statement): Diagnose case labels
|
|
|
|
|
binding closer to an openmp block nested than the
|
|
|
|
|
switch.
|
|
|
|
|
(cp_parser_jump_statement): Diagnose break and
|
|
|
|
|
continue labels binding closer to an openmp block than
|
|
|
|
|
an iteration or switch.
|
|
|
|
|
(cp_parser_omp_for_loop): Mark in_iteration_statement
|
|
|
|
|
for an omp for.
|
|
|
|
|
(cp_parser_begin_omp_structured_block): New.
|
|
|
|
|
(cp_parser_end_omp_structured_block): New.
|
|
|
|
|
(cp_parser_omp_structured_block): Use them.
|
|
|
|
|
(cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
|
|
|
|
|
(cp_parser_omp_parallel): Likewise.
|
|
|
|
|
|
|
|
|
|
2005-10-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (begin_omp_structured_block): New.
|
|
|
|
|
(finish_omp_structured_block): New.
|
|
|
|
|
(begin_omp_parallel, finish_omp_parallel): Use them.
|
|
|
|
|
* parser.c (cp_parser_omp_structured_block): Likewise.
|
|
|
|
|
(cp_parser_omp_for): Likewise.
|
|
|
|
|
(cp_parser_omp_sections_scope): Likewise.
|
|
|
|
|
* cp-tree.h: Declare them.
|
|
|
|
|
|
|
|
|
|
2005-10-20 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_master): Return the statement.
|
|
|
|
|
(cp_parser_omp_ordered): Likewise.
|
|
|
|
|
(cp_parser_omp_construct): Set the locus for them.
|
|
|
|
|
|
|
|
|
|
2005-10-19 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_atomic): Revert to
|
|
|
|
|
uses_template_parms.
|
|
|
|
|
|
|
|
|
|
2005-10-19 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_omp_clauses): Avoid
|
|
|
|
|
DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
|
|
|
|
|
stub asserts guaranteed to fail.
|
|
|
|
|
|
|
|
|
|
2005-10-19 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
|
|
|
|
|
(finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
|
|
|
|
|
* parser.c (cp_parser_omp_clause_copyin): Remove.
|
2006-08-29 05:23:04 +02:00
|
|
|
|
(cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
|
|
|
|
|
Call finish_omp_clauses.
|
2006-03-09 19:14:39 +01:00
|
|
|
|
(cp_parser_omp_clause_if): Don't do error checking here.
|
|
|
|
|
(cp_parser_omp_clause_num_threads): Likewise.
|
|
|
|
|
(cp_parser_omp_clause_schedule): Likewise.
|
|
|
|
|
(cp_parser_omp_atomic): Use finish_omp_atomic.
|
|
|
|
|
(cp_parser_omp_for_loop): Don't discard DECL_EXPR.
|
|
|
|
|
Don't decompose assignment statment here. Use
|
|
|
|
|
finish_omp_for.
|
|
|
|
|
|
|
|
|
|
* pt.c (tsubst_omp_clauses): New.
|
|
|
|
|
(tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
|
|
|
|
|
OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
|
|
|
|
|
* semantics.c (finish_omp_clauses): New.
|
|
|
|
|
(begin_omp_parallel, finish_omp_parallel): Know Less about the
|
|
|
|
|
internals of the stmt_list stack.
|
|
|
|
|
(finish_omp_for, finish_omp_atomic): New.
|
|
|
|
|
|
|
|
|
|
2005-10-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (cxx_omp_predetermined_sharing): New function.
|
|
|
|
|
* cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
|
|
|
|
|
* cp-objcp-common.h
|
|
|
|
|
(LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
|
|
|
|
|
|
|
|
|
|
2005-10-18 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_single): Use make_node and accessors
|
|
|
|
|
instead of build.
|
|
|
|
|
|
|
|
|
|
2005-10-17 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_omp_for_loop): Handle declarations.
|
|
|
|
|
|
|
|
|
|
2005-10-12 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (CXX_C_OBJS): Add c-omp.o.
|
|
|
|
|
* cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
|
|
|
|
|
(finish_omp_threadprivate): Declare.
|
|
|
|
|
* parser.c (struct cp_lexer): Add in_pragma.
|
|
|
|
|
(cp_lexer_consume_token): Don't consume a PRAGMA_EOL
|
|
|
|
|
when in_pragma.
|
|
|
|
|
(cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
|
|
|
|
|
(cp_parser_skip_to_end_of_statement): Likewise.
|
|
|
|
|
(cp_parser_skip_to_end_of_block_or_statement): Likewise.
|
|
|
|
|
(cp_parser_skip_to_closing_brace): Likewise.
|
|
|
|
|
(cp_parser_skip_to_pragma_eol): Reset in_pragma.
|
|
|
|
|
(cp_parser_require_pragma_eol): New.
|
|
|
|
|
(cp_parser_statement): Add in_compound argument;
|
|
|
|
|
update all callers.
|
|
|
|
|
Restart if a non-statement pragma seen outside a
|
|
|
|
|
compound.
|
|
|
|
|
(cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
|
|
|
|
|
(cp_parser_declaration_seq_opt): Likewise.
|
|
|
|
|
(cp_parser_member_specification_opt): Likewise.
|
|
|
|
|
(cp_parser_function_definition_after_decl): Likewise.
|
|
|
|
|
(cp_parser_skip_until_found): Likewise.
|
|
|
|
|
(cp_parser_cache_group): Likewise.
|
|
|
|
|
(enum pragma_omp_clause, cp_parser_omp_clause_name,
|
|
|
|
|
check_no_duplicate_clause,
|
|
|
|
|
cp_parser_omp_var_list_no_open,
|
|
|
|
|
cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
|
|
|
|
|
cp_parser_omp_clause_default, cp_parser_omp_clause_if,
|
|
|
|
|
cp_parser_omp_clause_nowait,
|
|
|
|
|
cp_parser_omp_clause_num_threads,
|
|
|
|
|
cp_parser_omp_clause_ordered,
|
|
|
|
|
cp_parser_omp_clause_reduction,
|
|
|
|
|
cp_parser_omp_clause_schedule,
|
|
|
|
|
cp_parser_omp_all_clauses,
|
|
|
|
|
cp_parser_omp_structured_block, cp_parser_omp_atomic,
|
|
|
|
|
cp_parser_omp_barrier, cp_parser_omp_critical,
|
|
|
|
|
cp_parser_omp_flush, cp_parser_omp_for_loop,
|
|
|
|
|
cp_parser_omp_for, cp_parser_omp_master,
|
|
|
|
|
cp_parser_omp_ordered, cp_parser_omp_sections_scope,
|
|
|
|
|
cp_parser_omp_sections, cp_parser_omp_parallel,
|
|
|
|
|
cp_parser_omp_single, cp_parser_omp_threadprivate,
|
|
|
|
|
cp_parser_omp_construct): New.
|
|
|
|
|
(cp_parser_pragma): Handle OpenMP pragmas.
|
|
|
|
|
* semantics.c (finish_omp_threadprivate): New.
|
|
|
|
|
(begin_omp_parallel, finish_omp_parallel): New.
|
|
|
|
|
|
|
|
|
|
2005-10-11 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (struct cp_token): Add pragma_kind.
|
|
|
|
|
(eof_token): Initialize it.
|
|
|
|
|
(cp_lexer_handle_pragma): Remove.
|
|
|
|
|
(cp_parser_initial_pragma): New.
|
|
|
|
|
(cp_lexer_new_main): Use it.
|
|
|
|
|
(cp_lexer_get_preprocessor_token): Initialize pragma_kind.
|
|
|
|
|
(cp_lexer_print_token): Don't handle CPP_PRAGMA.
|
|
|
|
|
(cp_parser_skip_to_pragma_eol): New.
|
|
|
|
|
(cp_parser_error): Use it.
|
|
|
|
|
(pragma_lex): New.
|
|
|
|
|
|
|
|
|
|
2005-10-09 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* lex.c (parse_strconst_pragma): Update for c_lex name change.
|
|
|
|
|
(handle_pragma_java_exceptions): Likewise.
|
|
|
|
|
* parser.c (cp_lexer_new_main): Likewise.
|
|
|
|
|
|
|
|
|
|
2005-10-06 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_lexer_new_main): Comment out defer_pragmas.
|
|
|
|
|
(cp_lexer_handle_pragma): Comment out
|
|
|
|
|
cpp_handle_deferred_pragma.
|
|
|
|
|
|
|
|
|
|
2005-10-01 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (lookup_name): Remove prefer_type argument.
|
|
|
|
|
(lookup_name_prefer_type): New function.
|
|
|
|
|
* name-lookup.h (lookup_name_prefer_type): Declare it.
|
|
|
|
|
* decl.c (lookup_and_check_tag): Use it.
|
|
|
|
|
* pt.c (tsubst_friend_class): Likewise. Update for
|
|
|
|
|
lookup_name change.
|
|
|
|
|
(lookup_template_class, tsubst_copy_and_build): Likewise.
|
|
|
|
|
|
2006-03-06 03:01:29 +01:00
|
|
|
|
2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/15759
|
|
|
|
|
* tree.c (bot_manip): Don't call mark_used.
|
|
|
|
|
|
2006-03-03 21:37:50 +01:00
|
|
|
|
2006-03-02 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (import_export_decl): Remove redundant call to
|
|
|
|
|
targetm.cxx.key_method_may_be_inline ().
|
|
|
|
|
|
tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
* doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
(ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
and say that only one is needed.
* doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
* target.h (have_switchable_bss_sections): New hook.
* explow.c (use_anchored_address): Check that the symbol is in a block.
* varasm.c (tls_comm_section, comm_section, lcomm_section)
(bss_noswitch_section): New variables.
(get_unnamed_section): Add SECTION_UNNAMED to the flags.
(get_noswitch_section): New function.
(get_block_for_section): Allow SECT to be null.
(unlikely_text_section_p): Use SECTION_STYLE.
(bss_initializer_p): New function.
(get_variable_section): Move earlier in file. Take a new argument,
prefer_noswitch_p. Move bss checks from assemble_variable to here.
Return one of the new *_sections in such cases.
(get_block_for_decl): New function, extracting some logic from
use_blocks_for_decl_p.
(change_symbol_section): Remove in favor of...
(change_symbol_block): ...this new function.
(use_blocks_for_decl_p): Remove checks now performed by
get_block_for_decl.
(make_decl_rtl): Use change_symbol_block and get_block_for_decl.
(ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
(emit_local, emit_bss, emit_common): ...these new functions.
Return true if the alignment was honored.
(emit_tls_common): New function.
(asm_emit_uninitialised): Delete.
(assemble_variable_noswitch): New function, split out from...
(assemble_variable): ...here. Don't make decisions about common
variables here. Globalize all public decls that go into non-common
sections. Check whether SYMBOL_REF_BLOCK is null.
(output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
(output_constant_pool): Likewise.
(init_varasm_once): Initialize the new section variables.
(have_global_bss_p): New function.
(categorize_decl_for_section): Use bss_initializer_p.
(switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH.
(place_block_symbol): Assert that the symbol must be in a block.
* target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
(TARGET_INITIALIZER): Include it.
* rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
* output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
(SECTION_MACH_DEP): Bump by two.
(SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
(unnamed_section): Mention SECTION_UNNAMED in comment.
(named_section): Likewise SECTION_NAMED.
(noswitch_section_callback): New type.
(noswitch_section): New structure.
(section): Add a noswitch_section alternative.
(SECTION_STYLE): New macro.
(tls_comm_section, comm_section, lcomm_section): Declare.
(bss_noswitch_section, have_global_bss_p): Declare.
* config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
* config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
Override.
* config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
* config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
Override.
cp/
* decl.c (start_decl): Use have_global_bss_p when deciding
whether to make the decl common.
ada/
* utils.c (create_var_decl): Use have_global_bss_p when deciding
whether to make the decl common.
From-SVN: r111644
2006-03-02 20:32:52 +01:00
|
|
|
|
2006-03-02 Richard Sandiford <richard@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (start_decl): Use have_global_bss_p when deciding
|
|
|
|
|
whether to make the decl common.
|
|
|
|
|
|
2006-03-02 03:20:54 +01:00
|
|
|
|
2006-03-01 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
PR darwin/25908
|
|
|
|
|
* decl2.c (import_export_decl): Fix ABI breakage on darwin.
|
|
|
|
|
|
2006-02-24 22:43:01 +01:00
|
|
|
|
2006-02-24 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* except.c (expand_start_catch_block): Handle
|
|
|
|
|
flag_use_cxa_get_exception_ptr.
|
|
|
|
|
|
2006-02-22 18:22:08 +01:00
|
|
|
|
2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/26291
|
|
|
|
|
* decl.c (grok_op_properties): Check for ellipsis in arguments of
|
2006-03-09 19:14:39 +01:00
|
|
|
|
operators.
|
2006-02-22 18:22:08 +01:00
|
|
|
|
|
|
|
|
|
2006-02-20 Rafael <20>vila de Esp<73>ndola <rafael.espindola@gmail.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (C++): Remove.
|
|
|
|
|
(.PHONY): Remove C++.
|
2006-02-20 18:17:04 +01:00
|
|
|
|
|
2006-02-18 09:36:11 +01:00
|
|
|
|
2006-02-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/26266
|
|
|
|
|
* cp-tree.h (cp_finish_decl): Adjust declaration.
|
|
|
|
|
(grokbitfield): Likewise.
|
|
|
|
|
(finish_static_data_member_decl): Likewise.
|
|
|
|
|
* init.c (constant_value_1): Ensure processing_template_decl when
|
|
|
|
|
folding non-dependent initializers for static data members of
|
|
|
|
|
dependent types. Return error_mark_node for erroneous
|
|
|
|
|
initailizers.
|
|
|
|
|
* class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
|
|
|
|
|
* decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
|
|
|
|
|
(cp_finish_decl): Add init_const_expr_p parameter. Set
|
|
|
|
|
DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
|
|
|
|
|
(finish_decl): Adjust call to cp_finish_decl.
|
|
|
|
|
(compute_array_index_type): Robustify.
|
|
|
|
|
(start_method): Use finish_decl, not cp_finish_decl.
|
|
|
|
|
* rtti.c (emit_tinfo_decl): Likewise.
|
|
|
|
|
* except.c (initialize_handler_parm): Adjust call to
|
|
|
|
|
cp_finish_decl.
|
|
|
|
|
(expand_start_catch_block): Likewise.
|
|
|
|
|
* cvt.c (build_up_reference): Adjust call to cp_finish_decl.
|
|
|
|
|
* pt.c (instantiate_class_template): Adjust call to
|
|
|
|
|
finish_static_data_member_decl.
|
|
|
|
|
(tsubst_expr): Use finish_decl, not cp_finish_decl.
|
|
|
|
|
(instantiate_decl): Adjust call to cp_finish_decl.
|
|
|
|
|
* name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
|
|
|
|
|
cp_finish_decl.
|
|
|
|
|
* decl2.c (finish_static_data_member_decl): Add init_const_expr_p
|
|
|
|
|
parameter.
|
|
|
|
|
(grokfield): Likewise.
|
|
|
|
|
* parser.c (cp_parser_condition): Check for constant initializers.
|
|
|
|
|
(cp_parser_init_declarator): Adjust calls to grokfield and
|
|
|
|
|
cp_finish_decl. Don't set
|
|
|
|
|
DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
|
|
|
|
|
(cp_parser_member_declaration): Likewise.
|
|
|
|
|
(cp_parser_objc_class_ivars): Likewise.
|
|
|
|
|
|
2006-02-14 16:54:34 +01:00
|
|
|
|
2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* call.c (standard_conversion): Return NULL instead of 0.
|
|
|
|
|
(build_user_type_conversion_1): Likewise.
|
|
|
|
|
(tourney): Likewise.
|
|
|
|
|
* decl.c (redeclaration_error_message): Likewise.
|
|
|
|
|
* error.c (language_to_string): Likewise.
|
|
|
|
|
|
2006-02-13 23:32:47 +01:00
|
|
|
|
2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-02-13 23:39:00 +01:00
|
|
|
|
* cp-tree.h (warn_hidden): Remove prototype.
|
|
|
|
|
* class.c (warn_hidden): Make static.
|
|
|
|
|
|
2006-02-13 23:37:02 +01:00
|
|
|
|
* cp-tree.h (build_type_conversion): Remove prototype.
|
|
|
|
|
* cvt.c (build_type_conversion): Add prototype, make static.
|
|
|
|
|
|
2006-02-13 23:32:47 +01:00
|
|
|
|
* cp-tree.h (push_tinst_level): Remove prototype.
|
|
|
|
|
(pop_tinst_level): Likewise.
|
|
|
|
|
* pt.c (push_tinst_level): Add prototype, make static.
|
|
|
|
|
(pop_tinst_level): Likewise.
|
|
|
|
|
|
2006-02-13 23:05:40 +01:00
|
|
|
|
2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Return NULL_TREE instead of 0.
|
|
|
|
|
* typeck.c (unary_complex_lvalue): Likewise.
|
|
|
|
|
|
2006-02-13 23:00:35 +01:00
|
|
|
|
2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* lex.c (parse_strconst_pragma): Return error_mark_node instead of
|
|
|
|
|
"(tree)-1" to indicate failure. Simplify.
|
|
|
|
|
(handle_pragma_interface): Test for error_mark_node instead of
|
|
|
|
|
"(tree)-1".
|
|
|
|
|
(handle_pragma_implementation): Likewise.
|
|
|
|
|
|
2006-02-13 11:29:31 +01:00
|
|
|
|
2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/26151
|
|
|
|
|
* parser.c (cp_parser_decl_specifier_seq): Check for duplicate
|
|
|
|
|
decl-specifiers. Remove extra check for duplicate 'friend'.
|
|
|
|
|
* decl.c (grokdeclarator): Remove check for duplicate
|
|
|
|
|
decl-specifiers. Set longlong together with long_p.
|
|
|
|
|
|
2006-02-12 17:02:00 +01:00
|
|
|
|
2006-02-12 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24996
|
2006-04-22 03:33:34 +02:00
|
|
|
|
* except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
|
2006-02-12 17:02:00 +01:00
|
|
|
|
TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
|
|
|
|
|
|
2006-02-10 14:49:19 +01:00
|
|
|
|
2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* class.c (debug_class): Remove extern.
|
|
|
|
|
(debug_thunks): Likewise.
|
|
|
|
|
|
2006-02-09 17:28:26 +01:00
|
|
|
|
2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* typeck.c (string_conv_p): Don't test for flag_const_strings.
|
|
|
|
|
|
2006-02-09 10:54:36 +01:00
|
|
|
|
2006-02-08 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25979
|
|
|
|
|
* cp-gimplify.c (cp_gimplify_expr): Don't call
|
|
|
|
|
cp_gimplify_init_expr for MODIFY_EXPRs.
|
|
|
|
|
* typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
|
|
|
|
|
|
2006-02-08 12:00:55 +01:00
|
|
|
|
2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-02-08 12:21:27 +01:00
|
|
|
|
PR c++/26071
|
|
|
|
|
* decl.c (grokdeclarator): Set dname also for destructor.
|
|
|
|
|
|
2006-02-08 12:00:55 +01:00
|
|
|
|
PR c++/26070
|
|
|
|
|
* decl.c (grokdeclarator): Clear storage_class together with staticp.
|
|
|
|
|
|
2006-02-08 00:25:02 +01:00
|
|
|
|
2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
|
|
|
|
|
(cp_build_qualified_type): Propogate renaming.
|
|
|
|
|
* call.c (convert_like_real): Likewise.
|
|
|
|
|
* cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
|
|
|
|
|
* decl.c (make_typename_type, grokdeclarator): Likewise.
|
|
|
|
|
* pt.c (tsubst_friend_function, instantiate_class_template,
|
|
|
|
|
tsubst_default_argument, instantiate_decl,
|
|
|
|
|
tsubst_initializer_list, tsubst_enum): Likewise.
|
|
|
|
|
* semantics.c (finish_template_type): Likewise.
|
|
|
|
|
* typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
|
|
|
|
|
|
2006-02-07 20:41:14 +01:00
|
|
|
|
2006-02-07 Dirk Mueller <dmueller@suse.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_binary_op): Annotate div-by-zero
|
|
|
|
|
warnings to make -Wno-div-by-zero have an effect.
|
|
|
|
|
|
2006-02-07 12:11:30 +01:00
|
|
|
|
2006-02-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/9737
|
|
|
|
|
* pt.c (coerce_template_template_parms): Do not templates with
|
|
|
|
|
excess default arguments to match template template parameters
|
|
|
|
|
with fewer parameters.
|
|
|
|
|
(coerce_template_parms): Add use_default_args parameter; use
|
|
|
|
|
default arguments only when true.
|
|
|
|
|
(lookup_template_class): Adjust call to coerce_template_parms.
|
|
|
|
|
(fn_type_unification): Likewise.
|
|
|
|
|
(unify): Likewise.
|
|
|
|
|
(get_bindings): Likewise.
|
|
|
|
|
(dependent_type_p): Add assertions.
|
|
|
|
|
|
2006-02-07 04:40:19 +01:00
|
|
|
|
2006-02-06 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
|
|
|
|
|
* rtti.c (typeinfo_in_lib_p): Likewise.
|
|
|
|
|
* cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
|
|
|
|
|
* name-lookup.c (arg_assoc_type): Likewise.
|
|
|
|
|
|
2006-02-04 17:44:18 +01:00
|
|
|
|
2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (tf_warn_or_error): New substituion flag.
|
|
|
|
|
(cp_build_qualified_type): Use it.
|
|
|
|
|
* call.c (convert_like_real): Likewise.
|
|
|
|
|
* cvt.c (cp_convert_to_pointer): Likewise.
|
|
|
|
|
(convert_to_reference): Likewise.
|
|
|
|
|
* decl.c (make_typename_type): Likewise.
|
|
|
|
|
(grokdeclarator): Likewise.
|
|
|
|
|
* pt.c (tsubst_friend_function): Likewise.
|
|
|
|
|
(tsubst_friend_class): Likewise.
|
|
|
|
|
(instantiate_class_template): Likewise.
|
|
|
|
|
(tsubst_default_argument): Likewise.
|
|
|
|
|
(instantiate_decl): Likewise.
|
|
|
|
|
(tsubst_initializer_list): Likewise.
|
|
|
|
|
(tsubst_enum): Likewise.
|
|
|
|
|
* semantics.c (finish_template_type): Likewise.
|
|
|
|
|
* typeck.c (build_ptrmemfunc): Likewise.
|
|
|
|
|
(convert_for_assignment): Likewise.
|
|
|
|
|
|
2006-02-04 00:11:09 +01:00
|
|
|
|
2006-02-03 Lee Millward <lee.millward@gmail.com>
|
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* typeck.c (string_conv_p): Pass appropiate
|
|
|
|
|
OPT_Wxxxx values when calling warning().
|
|
|
|
|
(build_array_ref, cxx_mark_addressable): Likewise.
|
|
|
|
|
(check_return_expr): Likewise.
|
2006-02-04 00:11:09 +01:00
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* init.c (perform_member_init): Likewise.
|
|
|
|
|
(sort_mem_initializers, emit_mem_initializers): Likewise.
|
2006-02-04 00:11:09 +01:00
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* class.c (check_field_decls): Likewise.
|
|
|
|
|
(warn_about_ambiguous_bases): Likewise.
|
2006-02-04 00:11:09 +01:00
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* decl.c (pop_label, poplevel): Likewise.
|
|
|
|
|
(duplicate_decls, grok_op_properties): Likewise.
|
|
|
|
|
(start_preparsed_function, finish_function): Likewise.
|
2006-02-04 00:11:09 +01:00
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* name-lookup.c (pushdecl_maybe_friend): Likewise.
|
|
|
|
|
(pushdecl_maybe_friend): Likewise.
|
2006-02-04 00:11:09 +01:00
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* parser.c (cp_parser_warn_min_max): Likewise.
|
|
|
|
|
(cp_parser_cast_expression): Likewise.
|
2006-02-04 00:11:09 +01:00
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
* method.c (lazily_declare_fn): Likewise.
|
|
|
|
|
* cvt.c (convert_to_void): Likewise.
|
|
|
|
|
* mangle.c (finish_mangling): Likewise.
|
|
|
|
|
* cp-gimplify.c (gimplify_expr_stmt): Likewise.
|
2006-02-04 00:11:09 +01:00
|
|
|
|
|
2006-02-03 17:46:22 +01:00
|
|
|
|
2006-02-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
|
|
|
|
|
not IDENTIFIER_OPNAME_P.
|
|
|
|
|
|
2006-02-01 03:51:13 +01:00
|
|
|
|
2006-01-31 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25342
|
|
|
|
|
* cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
|
|
|
|
|
documentation.
|
|
|
|
|
* pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
|
|
|
|
|
not TREE_VALUE.
|
|
|
|
|
(instantiate_class_template): Simplify.
|
|
|
|
|
(verify_class_unification): Remove.
|
|
|
|
|
(unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
|
|
|
|
|
permit multiple levels of template arguments.
|
|
|
|
|
(more_specialized_class): Simplify.
|
|
|
|
|
(get_class_bindings): Pass full arguments to unify. Fold
|
|
|
|
|
verify_class_unification into this function. Return full
|
|
|
|
|
arguments.
|
|
|
|
|
(most_specialized_class): Adjust for changes to
|
|
|
|
|
get_class_bindings. Issue errors here for ambiguity. Return the
|
|
|
|
|
fully deduced arguments for the most specialized class, in
|
|
|
|
|
addition to the partial specialization.
|
|
|
|
|
|
2006-01-31 00:11:35 +01:00
|
|
|
|
2006-01-31 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* mangle.c: Comment fix.
|
|
|
|
|
|
2006-01-29 20:51:40 +01:00
|
|
|
|
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
|
|
|
|
|
* repo.c (extract_string, afgets): Use cast when converting from
|
2006-04-22 03:33:34 +02:00
|
|
|
|
void *.
|
2006-01-29 20:51:40 +01:00
|
|
|
|
|
2006-01-29 10:10:48 +01:00
|
|
|
|
2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* call.c (alloc_conversion): Use cast when converting from void *.
|
|
|
|
|
(alloc_conversions): Likewise.
|
|
|
|
|
(add_candidate): Likewise.
|
|
|
|
|
(print_z_candidates): Likewise.
|
|
|
|
|
(add_warning): Likewise.
|
|
|
|
|
* pt.c (retrieve_local_specialization): Likewise.
|
|
|
|
|
(process_partial_specialization): Likewise.
|
|
|
|
|
(mangle_class_name_for_template): Likewise.
|
|
|
|
|
(tsubst_template_args): Likewise.
|
|
|
|
|
* typeck2.c (pat_calc_hash): Likewise.
|
|
|
|
|
(pat_compare): Likewise.
|
|
|
|
|
(abstract_virtuals_error): Likewise.
|
|
|
|
|
* class.c (method_name_cmp): Likewise.
|
|
|
|
|
(resort_method_name_cmp): Likewise.
|
|
|
|
|
(get_vfield_name): Likewise.
|
|
|
|
|
* decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
|
|
|
|
|
* lex.c (init_reswords): Likewise.
|
|
|
|
|
* rtti.c (create_pseudo_type_info): Likewise.
|
|
|
|
|
* search.c (dfs_lookup_base): Likewise.
|
|
|
|
|
(dfs_dcast_hint_pre): Likewise.
|
|
|
|
|
(dfs_dcast_hint_post): Likewise.
|
|
|
|
|
* tree.c (hash_tree_cons): Likewise.
|
|
|
|
|
* repo.c (extract_string): Likewise.
|
|
|
|
|
(afgets): Likewise.
|
|
|
|
|
* cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
|
|
|
|
|
* g++spec.c (lang_specific_driver): Likewise.
|
|
|
|
|
|
2006-01-29 01:35:54 +01:00
|
|
|
|
2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
2006-01-28 23:56:31 +01:00
|
|
|
|
|
2006-01-30 01:08:32 +01:00
|
|
|
|
* call.c (joust): Pass option code to warning. Use inform for
|
2006-04-22 03:33:34 +02:00
|
|
|
|
explanation.
|
2006-01-28 23:56:31 +01:00
|
|
|
|
* class.c (check_bases): Likewise.
|
|
|
|
|
(maybe_warn_about_overly_private_class): Likewise.
|
|
|
|
|
(check_field_decls): Likewise.
|
|
|
|
|
(layout_empty_base): Likewise.
|
|
|
|
|
(layout_virtual_bases): Likewise.
|
|
|
|
|
(layout_class_type): Likewise.
|
|
|
|
|
|
2006-01-28 23:11:42 +01:00
|
|
|
|
2006-01-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25999
|
|
|
|
|
* decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
|
|
|
|
|
here, not ...
|
|
|
|
|
(start_function): ... here.
|
|
|
|
|
|
2006-01-28 20:28:01 +01:00
|
|
|
|
2006-01-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25855
|
|
|
|
|
* class.c (resolve_address_of_overloaded_function): Adjust use of
|
|
|
|
|
return value from most_specialized_instantiation.
|
|
|
|
|
* pt.c (determine_specialization): Avoid multiple calls to
|
|
|
|
|
get_bindings.
|
|
|
|
|
(most_specialized_instantiation): When a tie occurs, set the
|
|
|
|
|
current presumed champion to the next template. Return the
|
|
|
|
|
TREE_LIST node containing the template, rather than the template
|
|
|
|
|
itself.
|
|
|
|
|
(most_specialized): Remove.
|
|
|
|
|
* name-lookup.c (push_overloaded_decl): When duplicate_decls
|
|
|
|
|
indicates a failed redeclaration, report that to callers.
|
|
|
|
|
|
2006-01-26 23:29:12 +01:00
|
|
|
|
2006-01-26 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/16021
|
|
|
|
|
* name-lookup.c (parse_using_directive): Require strong using to
|
|
|
|
|
name a nested namespace.
|
|
|
|
|
|
2006-01-25 16:12:04 +01:00
|
|
|
|
2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
|
* cp-tree.h (do_poplevel): Remove prototype.
|
|
|
|
|
* semantics.c (do_poplevel): Add prototype. Make static.
|
|
|
|
|
|
|
|
|
|
Revert:
|
|
|
|
|
* cp-tree.h (default_conversion): Remove prototype.
|
|
|
|
|
* typeck.c (default_conversion): Make static.
|
|
|
|
|
|
2006-01-25 09:45:44 +01:00
|
|
|
|
2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (get_primary_binfo): Remove prototype.
|
|
|
|
|
(push_using_decl): Likewise.
|
|
|
|
|
(current_template_args): Likewise.
|
|
|
|
|
(more_specialized_class): Likewise.
|
|
|
|
|
(mark_class_instantiated): Likewise.
|
|
|
|
|
(default_conversion): Likewise.
|
|
|
|
|
(pfn_from_ptrmemfunc): Likewise.
|
|
|
|
|
* class.c (get_primary_binfo): Add prototype, make static, simplify.
|
|
|
|
|
* name-lookup.c (push_using_decl): Make static.
|
|
|
|
|
* pt.c (current_template_args): Likewise.
|
|
|
|
|
(more_specialized_class): Likewise.
|
|
|
|
|
(mark_class_instantiated): Likewise.
|
|
|
|
|
* typeck.c (default_conversion): Make static.
|
|
|
|
|
(pfn_from_ptrmemfunc): Add prototype, make static.
|
|
|
|
|
|
2006-01-24 14:29:10 +01:00
|
|
|
|
2006-01-24 Dirk Mueller <dmueller@suse.de>
|
2006-04-22 03:33:34 +02:00
|
|
|
|
|
2006-01-24 14:29:10 +01:00
|
|
|
|
* typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
|
|
|
|
|
|
2006-01-24 12:55:58 +01:00
|
|
|
|
2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/25552
|
|
|
|
|
* parser.c (cp_parser_unqualified_id): Check that destructor name
|
|
|
|
|
and scope match.
|
|
|
|
|
* call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
|
|
|
|
|
Adjust comment. Return early if possible.
|
|
|
|
|
Use same_type_p to compare types.
|
|
|
|
|
* typeck.c (lookup_destructor): Adjust call to check_dtor_name.
|
|
|
|
|
|
2006-01-24 09:52:56 +01:00
|
|
|
|
2006-01-24 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c: Remove outdated comment.
|
|
|
|
|
|
2006-01-23 19:20:17 +01:00
|
|
|
|
2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-01-23 19:26:01 +01:00
|
|
|
|
* cp-tree.h (do_poplevel): Remove prototype.
|
|
|
|
|
* semantics.c (do_poplevel): Add prototype. Make static.
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (original_type): Remove prototype.
|
|
|
|
|
* typeck.c (original_type): Make static.
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (declare_global_var): Remove prototype.
|
|
|
|
|
* decl.c (declare_global_var): Make static.
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (implicitly_declare_fn): Remove prototype.
|
|
|
|
|
* method.c (implicitly_declare_fn): Make static.
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (fold_decl_constant_value): Remove prototype.
|
|
|
|
|
* pt.c (fold_decl_constant_value): Make static.
|
|
|
|
|
|
2006-01-23 19:22:29 +01:00
|
|
|
|
* cp-tree.h (build_x_delete): Remove prototype.
|
|
|
|
|
* init.c (build_vec_delete_1): Call build_op_delete_call directly
|
|
|
|
|
and not via build_x_delete.
|
|
|
|
|
(build_x_delete): Remove.
|
|
|
|
|
|
2006-01-23 19:20:17 +01:00
|
|
|
|
* cp-tree.h (get_vtt_name): Remove prototype.
|
|
|
|
|
* class.c (get_vtt_name): Remove.
|
|
|
|
|
(build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
|
|
|
|
|
|
2006-01-22 21:26:42 +01:00
|
|
|
|
2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* rtti.c (build_dynamic_cast): Fix comment.
|
|
|
|
|
|
2006-01-22 18:32:30 +01:00
|
|
|
|
2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
PR c++/10891
|
|
|
|
|
* rtti.c (build_dynamic_cast): Reject dynamic_cast use if
|
2006-04-22 03:33:34 +02:00
|
|
|
|
-fno-rtti.
|
2006-01-22 18:32:30 +01:00
|
|
|
|
|
2006-01-22 01:42:40 +01:00
|
|
|
|
2006-01-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25895
|
|
|
|
|
* class.c (build_base_path): Generate a NOP_EXPR instead of a
|
|
|
|
|
COMPONENT_REF if the base and derived classes are at the same
|
|
|
|
|
address.
|
|
|
|
|
|
|
|
|
|
PR c++/25856
|
|
|
|
|
* decl.c (begin_destructor_body): Robustify.
|
|
|
|
|
|
2006-04-22 03:33:34 +02:00
|
|
|
|
PR c++/25858
|
2006-01-22 01:42:40 +01:00
|
|
|
|
* parser.c (cp_parser_direct_declarator): Robustify.
|
2006-04-22 03:33:34 +02:00
|
|
|
|
|
2006-01-20 14:18:06 +01:00
|
|
|
|
2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
2006-01-20 22:08:48 +01:00
|
|
|
|
* parser.c (cp_lexer_next_token_is_keyword): Simplify.
|
|
|
|
|
|
|
|
|
|
* parser.c (clear_decl_specs): Remove prototype.
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_expression_fn): Remove.
|
|
|
|
|
|
2006-01-20 14:18:06 +01:00
|
|
|
|
* call.c (add_builtin_candidates): Remove superfluous return.
|
|
|
|
|
* name-lookup.c (do_toplevel_using_decl): Likewise.
|
|
|
|
|
* parser.c (cp_parser_type_specifier_seq): Likewise.
|
|
|
|
|
(cp_parser_save_default_args): Likewise.
|
|
|
|
|
|
2006-01-20 10:30:22 +01:00
|
|
|
|
2006-01-20 Dirk Mueller <dmueller@suse.com>
|
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
|
PR c++/5520
|
|
|
|
|
* semantics.c (finish_if_stmt): Call empty_body_warning.
|
|
|
|
|
* parser.c (cp_parser_implicitly_scoped_statement):
|
|
|
|
|
Mark empty statement with an empty stmt.
|
2006-01-20 10:30:22 +01:00
|
|
|
|
|
2006-01-20 04:07:58 +01:00
|
|
|
|
2006-01-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22136
|
|
|
|
|
* name-lookup.c (do_class_using_decl): Don't try to look up base
|
|
|
|
|
classes in templates with dependent base types.
|
|
|
|
|
|
2006-01-19 18:29:42 +01:00
|
|
|
|
2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/25854
|
|
|
|
|
* pt.c (maybe_process_partial_specialization): Return early on
|
|
|
|
|
error_mark_node.
|
|
|
|
|
|
2006-01-19 10:51:57 +01:00
|
|
|
|
2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/16829
|
|
|
|
|
* decl.c (start_preparsed_function): Check default arguments
|
|
|
|
|
unconditionally.
|
|
|
|
|
* name-lookup.c (pushdecl_maybe_friend): Check default arguments
|
|
|
|
|
of all functions and function templates.
|
|
|
|
|
* parser.c (cp_parser_late_parsing_default_args): Check default
|
|
|
|
|
arguments.
|
|
|
|
|
* decl2.c (check_default_args): Set missing default arguments to
|
|
|
|
|
error_mark_node.
|
|
|
|
|
|
2006-01-19 07:55:53 +01:00
|
|
|
|
2006-01-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25836
|
|
|
|
|
* cp-tree.h (push_class_stack): New function.
|
|
|
|
|
(pop_class_stack): Likewise.
|
|
|
|
|
* class.c (class_stack_node): Add hidden field.
|
|
|
|
|
(pushclass): Clear it.
|
|
|
|
|
(push_class_stack): New function.
|
|
|
|
|
(pop_class_stack): Likewise.
|
|
|
|
|
(currently_open_class): Ignore hidden classes.
|
|
|
|
|
(currently_open_derived_class): Likewise.
|
|
|
|
|
* name-lookup.c (push_to_top_level): Call push_class_stack.
|
|
|
|
|
(pop_from_top_level): Call pop_class_stack.
|
|
|
|
|
|
2006-01-18 16:09:43 +01:00
|
|
|
|
2006-01-18 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* tree.c (find_tree_t, find_tree): Remove.
|
|
|
|
|
* cp-tree.h: Remove the prototype for find_tree.
|
|
|
|
|
|
2006-01-18 09:01:02 +01:00
|
|
|
|
2006-01-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* search.c (lookup_conversions_r): Fix a pasto.
|
|
|
|
|
|
2006-01-18 01:15:37 +01:00
|
|
|
|
2006-01-17 Eric Christopher <echristo@apple.com>
|
|
|
|
|
|
|
|
|
|
* call.c (convert_like_real): When issuing conversion
|
|
|
|
|
warnings, depend on OPT_Wconversion.
|
|
|
|
|
* cvt.c (build_expr_type_conversion): Ditto.
|
|
|
|
|
|
2006-01-17 16:43:30 +01:00
|
|
|
|
2006-01-17 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (lookup_namespace_name): Remove.
|
|
|
|
|
* name-lookup.h: Remove the prototype for
|
|
|
|
|
lookup_namespace_name.
|
|
|
|
|
|
2006-01-17 10:57:56 +01:00
|
|
|
|
2006-01-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/25682
|
|
|
|
|
* decl.c (compute_array_index_type): After issuing not an integral
|
|
|
|
|
constant-expression error, set size to 1 to avoid ICEs later on.
|
|
|
|
|
|
2006-01-17 08:04:20 +01:00
|
|
|
|
2006-01-16 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* parser.c: Include "cgraph.h".
|
|
|
|
|
(cp_parser_asm_definition): Call cgraph_add_asm_node rather than
|
|
|
|
|
assemble_asm.
|
|
|
|
|
|
2006-02-04 00:11:09 +01:00
|
|
|
|
2006-01-16 Rafael <20>ila de Esp<73>dola <rafael.espindola@gmail.com>
|
2006-01-16 20:00:56 +01:00
|
|
|
|
|
2006-01-17 04:46:51 +01:00
|
|
|
|
* g++spec.c (lang_specific_spec_functions): Remove.
|
2006-01-16 20:00:56 +01:00
|
|
|
|
|
2006-01-15 21:15:58 +01:00
|
|
|
|
2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* decl.c (check_initializer): Fix thinko.
|
|
|
|
|
|
2006-01-15 01:56:50 +01:00
|
|
|
|
2006-01-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25663
|
|
|
|
|
* parser.c (cp_parser_direct_declarator): Use cp_parser_error
|
|
|
|
|
instead of error.
|
|
|
|
|
|
2006-01-13 20:08:19 +01:00
|
|
|
|
2006-01-13 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
2006-01-14 01:47:48 +01:00
|
|
|
|
* pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
|
|
|
|
|
|
2006-01-13 20:08:19 +01:00
|
|
|
|
* name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
|
|
|
|
|
* pt.c (check_explicit_specialization): Likewise.
|
|
|
|
|
|
2006-01-12 21:10:47 +01:00
|
|
|
|
2006-01-12 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/24660
|
|
|
|
|
* pt.c (check_explicit_specialization): Handle namespace
|
|
|
|
|
association.
|
|
|
|
|
* name-lookup.c (set_decl_namespace): Likewise.
|
|
|
|
|
|
2006-01-12 17:01:15 +01:00
|
|
|
|
2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24824
|
|
|
|
|
* class.c (handle_using_decl): Pass correct scope to
|
|
|
|
|
cp_emit_debug_info_for_using.
|
|
|
|
|
|
2006-01-11 17:31:44 +01:00
|
|
|
|
2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2006-01-12 17:01:15 +01:00
|
|
|
|
PR c++/25386
|
2006-01-11 17:31:44 +01:00
|
|
|
|
* tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
|
|
|
|
|
packedness.
|
|
|
|
|
|
2006-01-06 21:50:39 +01:00
|
|
|
|
2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_primary_expression): Document the grammar
|
|
|
|
|
for the built-in offsetof, a GNU extension.
|
|
|
|
|
|
2006-01-17 08:04:20 +01:00
|
|
|
|
2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
|
2006-01-04 23:46:09 +01:00
|
|
|
|
|
|
|
|
|
PR c++/25632
|
|
|
|
|
* init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
|
|
|
|
|
in condition.
|
|
|
|
|
|
2006-01-04 20:59:44 +01:00
|
|
|
|
2006-01-04 Chris Lattner <sabre@gnu.org>
|
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
|
* typeck2.c: update copyright to 2006
|
|
|
|
|
(split_nonconstant_init_1): Set TREE_CONSTANT to true.
|
2006-01-04 20:59:44 +01:00
|
|
|
|
|
2006-01-04 19:48:38 +01:00
|
|
|
|
2006-01-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24782
|
|
|
|
|
* parser.c (cp_parser_nested_name_specifier_opt): Preserve access
|
|
|
|
|
checks, even when parsing tentatively.
|
|
|
|
|
|
2006-01-04 17:33:38 +01:00
|
|
|
|
2006-01-04 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
Merge from gomp branch.
|
|
|
|
|
* lex.c (handle_pragma_java_exceptions): Fix whitespace.
|
|
|
|
|
* parser.c (struct cp_token): Add pragma_kind.
|
|
|
|
|
(eof_token): Update to match.
|
|
|
|
|
(struct cp_lexer): Add in_pragma; rearrange next for better packing.
|
|
|
|
|
(cp_parser_initial_pragma): New.
|
|
|
|
|
(cp_lexer_new_main): Use it. Don't bother clearing
|
|
|
|
|
c_lex_return_raw_strings.
|
|
|
|
|
(cp_lexer_get_preprocessor_token): Always initialize keyword
|
|
|
|
|
and pragma_kind fields. Handle CPP_PRAGMA.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
(cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
|
2006-01-04 17:33:38 +01:00
|
|
|
|
in_pragma is set.
|
|
|
|
|
(cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
|
|
|
|
|
(cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
|
|
|
|
|
(cp_parser_skip_to_pragma_eol): New.
|
|
|
|
|
(cp_parser_error): Use it.
|
|
|
|
|
(cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
|
|
|
|
|
rearrange with switch statement.
|
|
|
|
|
(cp_parser_skip_to_end_of_statement): Likewise.
|
|
|
|
|
(cp_parser_skip_to_end_of_block_or_statement): Likewise.
|
|
|
|
|
(cp_parser_skip_to_closing_brace): Likewise.
|
|
|
|
|
(cp_parser_skip_until_found): Likewise.
|
|
|
|
|
(cp_parser_statement): Add in_compound argument; update callers.
|
|
|
|
|
Use it to decide how to handle pragma parsing.
|
|
|
|
|
(cp_parser_labeled_statement): Add in_compound argument; pass
|
|
|
|
|
it on to cp_parser_statement.
|
|
|
|
|
(cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
|
|
|
|
|
(cp_parser_declaration_seq_opt): Likewise.
|
|
|
|
|
(cp_parser_parameter_declaration): Likewise.
|
|
|
|
|
(cp_parser_member_specification_opt): Likewise.
|
|
|
|
|
(cp_parser_function_definition_after_decl): Likewise.
|
|
|
|
|
(cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
|
|
|
|
|
(cp_parser_pragma): New.
|
|
|
|
|
(pragma_lex): New.
|
|
|
|
|
|
|
|
|
|
2006-01-04 Dirk Mueller <dmueller@suse.com>
|
2006-01-04 16:26:15 +01:00
|
|
|
|
|
|
|
|
|
* decl.c (finish_constructor_body): create simple
|
|
|
|
|
compound stmt instead of a if(1) { } construct.
|
|
|
|
|
|
2006-01-04 02:04:51 +01:00
|
|
|
|
2006-01-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25492
|
|
|
|
|
* name-lookup.c (push_class_level_binding): When a derived class
|
|
|
|
|
provides a type binding, eliminate any type binding from a base
|
2006-01-18 01:15:37 +01:00
|
|
|
|
class.
|
2006-01-04 02:04:51 +01:00
|
|
|
|
|
|
|
|
|
PR c++/25625
|
|
|
|
|
* repo.c (repo_emit_p): Always instantiate static data members
|
|
|
|
|
initialized by constant expressions, so that there values are
|
|
|
|
|
available.
|
|
|
|
|
|
2006-01-02 18:53:44 +01:00
|
|
|
|
2006-01-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-01-03 09:41:21 +01:00
|
|
|
|
PR c++/25635
|
|
|
|
|
* class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
|
|
|
|
|
conversion operator.
|
|
|
|
|
* decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
|
|
|
|
|
|
|
|
|
|
PR c++/25638
|
|
|
|
|
* class.c (add_method): Never associate more than one destructor
|
|
|
|
|
with a single class.
|
|
|
|
|
|
|
|
|
|
PR c++/25637
|
|
|
|
|
* cp-tree.h (do_friend): Adjust prototype.
|
|
|
|
|
* decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
|
|
|
|
|
(grokdeclarator): Likewise. Refine check for invalid
|
|
|
|
|
declarations/definitions of member functions outside of their own
|
|
|
|
|
class.
|
|
|
|
|
* friend.c (do_friend): Make funcdef_flag a bool, not an int.
|
|
|
|
|
|
|
|
|
|
PR c++/25633
|
|
|
|
|
* parser.c (cp_parser_mem_initializer_list): Check result of
|
|
|
|
|
cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
|
|
|
|
|
(cp_parser_mem_initializer): Return error_mark_node for failure.
|
|
|
|
|
|
|
|
|
|
PR c++/25634
|
|
|
|
|
* parser.c (cp_parser_template_parameter_list): Call
|
|
|
|
|
begin_template_parm_list and end_template_parm_list here.
|
|
|
|
|
(cp_parser_type_parameter): Not here.
|
|
|
|
|
(cp_parser_template_declaration_after_export): Or here.
|
|
|
|
|
(cp_parser_elaborated_type_specifier): Call
|
|
|
|
|
cp_parser_check_template_parameters.
|
|
|
|
|
|
|
|
|
|
* tree.c (build_target_expr_with_type): Use force_target_expr.
|
|
|
|
|
|
2006-01-02 18:53:44 +01:00
|
|
|
|
* decl2.c (mark_used): Fix typo in comment.
|
|
|
|
|
|
2006-01-02 17:19:26 +01:00
|
|
|
|
2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_using_declaration): Skip name-lookup on
|
|
|
|
|
invalid scope.
|
|
|
|
|
|
2005-12-30 18:27:28 +01:00
|
|
|
|
2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_constant): New. Print
|
|
|
|
|
string-literal in parens if input program says so.
|
|
|
|
|
(pp_cxx_primary_expression): Hand off constant printing to
|
2006-01-18 01:15:37 +01:00
|
|
|
|
pp_cxx_constant.
|
2005-12-30 18:27:28 +01:00
|
|
|
|
(pp_cxx_pretty_printer_init): Set pp->c_base.constant.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
(pp_cxx_expression): Use pp_cxx_constant for literals.
|
2005-12-30 18:27:28 +01:00
|
|
|
|
* error.c (dump_expr): Use pp_constant for literals.
|
|
|
|
|
|
2005-12-29 17:38:26 +01:00
|
|
|
|
2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* method.c (make_thunk): Don't set comdat_linkage here.
|
|
|
|
|
(use_thunk): Make thunk one only here, if thunk target is
|
|
|
|
|
DECL_ONE_ONLY.
|
|
|
|
|
|
2005-12-27 10:05:17 +01:00
|
|
|
|
2005-12-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25439
|
|
|
|
|
* decl.c (grokdeclarator): Remove dead code.
|
|
|
|
|
* ptree.c (cxx_print_xnode): Handle BASELINK.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
* parser.c (make_id_declarator): Add sfk parameter.
|
2005-12-27 10:05:17 +01:00
|
|
|
|
(cp_parser_direct_declarator): Do not pass TYPE_DECLs to
|
|
|
|
|
make_id_declarator.
|
|
|
|
|
(cp_parser_declarator_id): Simplify BASELINKs here.
|
|
|
|
|
(cp_parser_member_declaration): Adjust calls to
|
|
|
|
|
make_id_declarator.
|
|
|
|
|
|
2005-12-27 07:09:13 +01:00
|
|
|
|
2005-12-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23171, c++/23172, c++/25417.
|
|
|
|
|
* typeck.c (build_unary_op): Create temporary variables for
|
|
|
|
|
compound literals whose addresses are taken.
|
|
|
|
|
* init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
|
|
|
|
|
* decl.c (reshape_init_vector): Likewise.
|
|
|
|
|
(reshape_init): Give it external linkage.
|
|
|
|
|
(check_initializer): Use COMPOUND_LITERAL_P.
|
|
|
|
|
(initialize_artificial_var): Allow the initializer to be a
|
|
|
|
|
CONSTRUCTOR.
|
|
|
|
|
* call.c (make_temporary_var_for_ref_to_temp): Use
|
|
|
|
|
create_temporary_var.
|
|
|
|
|
* cp-tree.h (COMPOUND_LITERAL_P): New macro.
|
|
|
|
|
(rehape_init): Declare.
|
|
|
|
|
* typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
|
|
|
|
|
* semantics.c (finish_compound_literal): Use reshape_init.
|
|
|
|
|
|
2005-12-24 00:16:12 +01:00
|
|
|
|
2005-12-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24671
|
|
|
|
|
* pt.c (instantiate_template): Handle SFINAE.
|
|
|
|
|
|
2005-12-23 18:10:37 +01:00
|
|
|
|
2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Improve diagnostic for friend
|
|
|
|
|
declarations of class members.
|
|
|
|
|
|
2005-12-22 21:08:39 +01:00
|
|
|
|
2005-12-22 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-12-23 08:40:04 +01:00
|
|
|
|
PR c++/25369
|
|
|
|
|
* tree.c (really_overloaded_fn): Tweak comment.
|
|
|
|
|
* pt.c (tsubst_call_declarator_parms): Remove.
|
|
|
|
|
(tsubst_copy): Call mark_used on the member referenced by an
|
|
|
|
|
OFFSET_REF.
|
|
|
|
|
* semantics.c (finish_qualified_id_expr): Simplify.
|
|
|
|
|
* decl2.c (mark_used): Accept BASELINKs.
|
|
|
|
|
|
2005-12-22 21:08:39 +01:00
|
|
|
|
PR c++/25364
|
|
|
|
|
* typeck.c (build_unary_op): Pass DECLs not names to
|
|
|
|
|
build_offset_refs.
|
|
|
|
|
* init.c (build_offset_ref): Do not do name lookup. Do not call
|
|
|
|
|
mark_used.
|
|
|
|
|
* call.c (build_call): Simplify and tidy.
|
|
|
|
|
* semantics.c (finish_qualified_id_expr): Call mark_used.
|
|
|
|
|
|
2005-12-22 13:01:44 +01:00
|
|
|
|
2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23333
|
|
|
|
|
* parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
|
|
|
|
|
identify a single '0'.
|
|
|
|
|
|
2005-12-20 09:48:13 +01:00
|
|
|
|
2005-12-20 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21228
|
|
|
|
|
* decl.c (use_eh_spec_block): New function.
|
|
|
|
|
(store_parm_decls): Use it.
|
|
|
|
|
(finish_function): Likewise.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-12-20 05:44:20 +01:00
|
|
|
|
2005-12-19 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-12-20 05:59:42 +01:00
|
|
|
|
PR c++/24278
|
|
|
|
|
* init.c (expand_member_init): Print messages about baseclasses
|
|
|
|
|
using %T rather than %D.
|
|
|
|
|
|
2005-12-20 05:44:20 +01:00
|
|
|
|
PR c++/24915
|
|
|
|
|
* class.c (add_method): Do not treat templates as identical unless
|
|
|
|
|
their return types are the same.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-12-20 05:44:20 +01:00
|
|
|
|
2005-12-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25300
|
|
|
|
|
* tree.c (build_qualified_name): Return error_mark_node for
|
|
|
|
|
erroneous input.
|
|
|
|
|
|
|
|
|
|
2005-12-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-01-18 01:15:37 +01:00
|
|
|
|
PR c++/25337
|
2005-12-20 05:44:20 +01:00
|
|
|
|
* pt.c (tsubst_copy_and_build): Permit dependent types for the
|
|
|
|
|
object in a class member access expression.
|
|
|
|
|
|
|
|
|
|
2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR java/9861
|
|
|
|
|
* mangle.c (write_bare_function_type): Mangle return type for
|
|
|
|
|
methods of Java classes
|
|
|
|
|
|
2006-02-04 00:11:09 +01:00
|
|
|
|
2005-12-08 Th<54>dore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-12-20 05:44:20 +01:00
|
|
|
|
* call.c (build_conditional_expr): Print types in error messages.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-12-20 05:44:20 +01:00
|
|
|
|
2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
|
|
|
|
|
|
|
|
|
|
2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
|
|
|
|
|
|
2006-02-04 00:11:09 +01:00
|
|
|
|
2005-12-07 Rafael <20>ila de Esp<73>dola <rafael.espindola@gmail.com>
|
2005-12-20 05:44:20 +01:00
|
|
|
|
|
|
|
|
|
* Make-lang.in (c++.all.build, c++.install-normal): Remove.
|
|
|
|
|
|
2006-02-04 00:11:09 +01:00
|
|
|
|
2005-12-07 Rafael <20>ila de Esp<73>dola <rafael.espindola@gmail.com>
|
2005-12-20 05:44:20 +01:00
|
|
|
|
|
|
|
|
|
* Make-lang.in: Remove all dependencies on s-gtype.
|
|
|
|
|
|
|
|
|
|
2005-12-06 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
2006-08-29 05:23:04 +02:00
|
|
|
|
PR C++/24138
|
2006-03-09 19:14:39 +01:00
|
|
|
|
* decl.c (reshape_init_array_1): Handle max_index of -1.
|
2005-12-20 05:44:20 +01:00
|
|
|
|
|
|
|
|
|
2005-12-06 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_binary_op): Issue warning if either operand of a
|
|
|
|
|
comparison operator is a string literal, except for testing equality
|
|
|
|
|
or inequality against NULL.
|
|
|
|
|
|
|
|
|
|
2005-12-06 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR c++/25263
|
|
|
|
|
* decl.c (compute_array_index_type): Check that itype is an
|
|
|
|
|
INTEGER_CST node before testing/clearing TREE_OVERFLOW.
|
|
|
|
|
|
|
|
|
|
2005-12-05 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
* ptree.c (cxx_print_decl): Update to check for decl_common
|
|
|
|
|
structure.
|
|
|
|
|
|
2005-12-03 02:02:33 +01:00
|
|
|
|
2005-12-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24173
|
|
|
|
|
* decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
|
|
|
|
|
clobbering newdecl.
|
|
|
|
|
|
2005-12-02 18:04:00 +01:00
|
|
|
|
2005-12-02 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* semantics.c (simplify_aggr_init_expr): Use buildN instead
|
|
|
|
|
of build.
|
|
|
|
|
|
2005-12-02 13:37:15 +01:00
|
|
|
|
2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
|
2006-01-18 01:15:37 +01:00
|
|
|
|
ggc_realloc.
|
2005-12-02 13:37:15 +01:00
|
|
|
|
(cp_parser_template_argument_list): Use XRESIZEVEC instead of
|
2006-01-18 01:15:37 +01:00
|
|
|
|
xrealloc.
|
2005-12-02 13:37:15 +01:00
|
|
|
|
* class.c (pushclass): Likewise.
|
|
|
|
|
|
2005-12-02 12:21:28 +01:00
|
|
|
|
2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* decl2.c (get_priority_info): Use XNEW, not xmalloc.
|
|
|
|
|
* decl.c (push_switch): Likewise.
|
|
|
|
|
* lex.c (handle_pragma_implementation): Likewise.
|
|
|
|
|
* cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
|
|
|
|
|
not ggc_alloc.
|
|
|
|
|
(cxx_initialize_diagnostics): Use XNEW, not xmalloc.
|
|
|
|
|
* class.c (init_class_processing): Use XNEWVEC, not xmalloc.
|
|
|
|
|
* g++spec.c (lang_specific_driver): Likewise.
|
|
|
|
|
* mangle.c (save_partially_mangled_name): Likewise.
|
|
|
|
|
* parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
|
|
|
|
|
(cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
|
|
|
|
|
(cp_parser_sizeof_operand): Likewise.
|
|
|
|
|
* repo.c (open_repo_file, open_repo_file): Likewise.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-12-02 02:31:42 +01:00
|
|
|
|
2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_make_typename_type): Call make_typename_type
|
|
|
|
|
with tf_none instead of magic value 0.
|
|
|
|
|
(cp_parser_explicit_instantiation): Call do_type_instantiation
|
|
|
|
|
with tf_error instead of magic value 1.
|
|
|
|
|
(cp_parser_elaborated_type_specifier): Call make_typename_type
|
|
|
|
|
with tf_error instead of magic value 1.
|
|
|
|
|
(cp_parser_class_name): Likewise.
|
|
|
|
|
(cp_parser_lookup_name): Likewise.
|
|
|
|
|
|
2005-12-02 00:10:27 +01:00
|
|
|
|
2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
|
|
|
|
|
not RID_MAX.
|
|
|
|
|
|
2005-11-30 21:58:27 +01:00
|
|
|
|
2005-11-30 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21123
|
2006-01-18 01:15:37 +01:00
|
|
|
|
* cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
|
2005-11-30 21:58:27 +01:00
|
|
|
|
parms in a thunk.
|
|
|
|
|
|
2005-11-29 14:10:24 +01:00
|
|
|
|
2005-11-30 Ben Elliston <bje@au.ibm.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_x_unary_op): Correct spelling in error message.
|
|
|
|
|
|
2005-11-28 11:34:30 +01:00
|
|
|
|
2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21166
|
|
|
|
|
* class.c (check_field_decls): Only set DECL_PACKED on a field
|
|
|
|
|
when its natural alignment is > BITS_PER_UNIT.
|
|
|
|
|
|
2005-11-27 23:37:06 +01:00
|
|
|
|
2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/24979
|
|
|
|
|
* cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
|
|
|
|
|
|
2005-11-26 23:31:12 +01:00
|
|
|
|
2005-11-26 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* lex.c: Update for pragma_lex rename.
|
|
|
|
|
* parser.c: Likewise.
|
|
|
|
|
|
2005-11-25 15:59:09 +01:00
|
|
|
|
2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/9278
|
|
|
|
|
* decl.c (grokparms): Do not allow typedef-names in a '(void)'
|
|
|
|
|
parmlist.
|
|
|
|
|
|
2005-11-25 13:52:12 +01:00
|
|
|
|
2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* typeck2.c (process_init_constructor_union): Remove check for
|
|
|
|
|
unnamed union members.
|
|
|
|
|
|
2005-11-25 13:49:19 +01:00
|
|
|
|
2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (lookup_name_real): Merge two if's.
|
|
|
|
|
|
2005-11-25 13:46:40 +01:00
|
|
|
|
2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* pt.c (instantiate_class_template): Clean-up.
|
|
|
|
|
|
2005-11-25 13:43:38 +01:00
|
|
|
|
2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* pt.c (template_class_depth_real): Remove. Move functionality to ...
|
|
|
|
|
(template_class_depth): ... here, replacing count_specializations
|
|
|
|
|
with 0. Adjust comment.
|
|
|
|
|
|
2005-11-24 11:48:15 +01:00
|
|
|
|
2005-11-24 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
Dirk Mueller <dmueller@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/14024
|
|
|
|
|
* typeck.c (build_reinterpret_cast_1): Use
|
|
|
|
|
strict_aliasing_warning.
|
|
|
|
|
|
2005-11-24 04:11:33 +01:00
|
|
|
|
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
PR c++/24235
|
|
|
|
|
* pt.c (check_instantiated_args): Reword diagnostic message about
|
|
|
|
|
template argument involving local types.
|
|
|
|
|
|
2005-11-24 03:02:26 +01:00
|
|
|
|
2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
PR c++/21667
|
|
|
|
|
* typeck.c (build_array_ref): Avoid code duplicate. Use common
|
2006-01-18 01:15:37 +01:00
|
|
|
|
C/C++ diagnostic function warn_array_subscript_with_type_char.
|
2005-11-24 03:02:26 +01:00
|
|
|
|
|
2005-11-22 18:04:12 +01:00
|
|
|
|
2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
PR c++/22238
|
|
|
|
|
* error.c (resolve_virtual_fun_from_obj_type_ref): New.
|
|
|
|
|
(dump_expr): Use it in <case CALL_EXPR>.
|
|
|
|
|
|
2005-11-21 22:27:29 +01:00
|
|
|
|
2005-11-21 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (lookup_name): Remove prefer_type argument.
|
|
|
|
|
(lookup_name_prefer_type): New.
|
|
|
|
|
* decl.c (lookup_and_check_tag): Use them.
|
|
|
|
|
* pt.c (tsubst_friend_class): Likewise.
|
|
|
|
|
(lookup_template_class): Likewise.
|
|
|
|
|
(tsubst_copy_and_build): Likewise.
|
|
|
|
|
* name-lookup.h (lookup_name_prefer_type): New.
|
|
|
|
|
(lookup_name): Remove declaration.
|
|
|
|
|
|
2005-11-19 03:25:55 +01:00
|
|
|
|
2005-11-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/8355
|
|
|
|
|
* decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
|
|
|
|
|
set_decl_namespace.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
* name-lookup.c (set_decl_namespace):
|
2005-11-19 03:25:55 +01:00
|
|
|
|
|
2005-11-19 00:40:29 +01:00
|
|
|
|
2005-11-18 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
|
|
|
|
|
* name-lookup.c (lookup_name_two): Remove.
|
|
|
|
|
(lookup_name_one): Add.
|
|
|
|
|
* name-lookup.h (lookup_name_two): Remove.
|
|
|
|
|
(lookup_name_one): Add.
|
|
|
|
|
|
2005-11-16 21:22:00 +01:00
|
|
|
|
2005-11-15 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24580
|
|
|
|
|
* method.c (locate_copy): Also use skip_artificial_parms here.
|
|
|
|
|
(synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
|
|
|
|
|
for RECORD_TYPE.
|
|
|
|
|
(locate_ctor): Abort if we fail to find a default constructor.
|
|
|
|
|
|
2005-11-16 03:08:11 +01:00
|
|
|
|
2005-11-15 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (lookup_name_two): Add.
|
|
|
|
|
* name-lookup.h: Likewise.
|
|
|
|
|
|
2005-11-15 18:52:34 +01:00
|
|
|
|
2005-11-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24667
|
|
|
|
|
* typeck.c (check_for_casting_away_constness): Use the diag_fn.
|
|
|
|
|
(build_const_cast_1): Call it, for C-style casts.
|
|
|
|
|
|
2005-11-15 01:04:43 +01:00
|
|
|
|
2005-11-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-11-15 01:15:09 +01:00
|
|
|
|
PR c++/24687
|
|
|
|
|
* pt.c (check_explicit_specialization): Don't check for C linkage.
|
|
|
|
|
(push_template_decl_real): Likewise.
|
|
|
|
|
* parser.c (cp_parser_explicit_specialization): Check here.
|
|
|
|
|
(cp_parser_template_declaration_after_export): And here.
|
|
|
|
|
|
2005-11-15 01:04:43 +01:00
|
|
|
|
* parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
|
|
|
|
|
field.
|
|
|
|
|
|
2005-11-14 21:07:45 +01:00
|
|
|
|
2005-11-14 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24580
|
|
|
|
|
* method.c (locate_ctor): Skip all artificial parms, not just
|
|
|
|
|
'this'.
|
|
|
|
|
|
2005-11-14 16:29:03 +01:00
|
|
|
|
2005-11-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (eof_token): Add initializer for ambiguous_p.
|
|
|
|
|
|
2005-11-14 02:45:19 +01:00
|
|
|
|
2005-11-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-11-14 06:45:45 +01:00
|
|
|
|
PR c++/24817
|
|
|
|
|
* decl.c (check_redeclaration_exception_specification): New
|
|
|
|
|
function.
|
|
|
|
|
(duplicate_decls): Use it.
|
|
|
|
|
* error.c (fndecl_to_string): Print the template parameter list.
|
|
|
|
|
|
2005-11-14 02:45:19 +01:00
|
|
|
|
PR c++/20293
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
|
|
|
|
|
for namespaces.
|
|
|
|
|
(pp_cxx_original_namespace_definition): Likewise.
|
|
|
|
|
* name-lookup.c (ambiguous_decl): Don't issue error messages;
|
|
|
|
|
instead return lists of ambiguous candidates.
|
|
|
|
|
(select_decl): Handle ambiguous namespace lookups.
|
|
|
|
|
* parser.c (cp_token): Add ambiguous_p.
|
|
|
|
|
(cp_lexer_get_preprocessor_token): Set it.
|
|
|
|
|
(cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
|
2006-01-18 01:15:37 +01:00
|
|
|
|
when a qualified name uses an invalid scope.
|
2005-11-14 02:45:19 +01:00
|
|
|
|
(cp_parser_primary_expression): Print ambiguous candidates.
|
|
|
|
|
(cp_parser_type_parameter): Adjust comment to reflect new
|
|
|
|
|
parameter name for cp_parser_lookup_name.
|
|
|
|
|
(cp_parser_template_argument): Likewise.
|
|
|
|
|
(cp_parser_elaborated_type_specifier): Likewise.
|
|
|
|
|
(cp_parser_namespace_name): Likewise.
|
|
|
|
|
(cp_parser_class_name): Print ambiguous candidates.
|
|
|
|
|
(cp_parser_lookup_name): Rename ambiguous_p parameter to
|
|
|
|
|
ambiguous_decls. Use it to return a list of ambiguous candiates
|
|
|
|
|
when a lookup is ambiguous.
|
|
|
|
|
(cp_parser_lookup_name_simple): Adjust comment to reflect new
|
|
|
|
|
parameter name for cp_parser_lookup_name.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-11-12 21:42:23 +01:00
|
|
|
|
2005-11-12 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
2005-11-12 21:44:55 +01:00
|
|
|
|
PR c++/24780
|
|
|
|
|
* typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
|
|
|
|
|
and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
|
|
|
|
|
of array type.
|
|
|
|
|
|
2005-11-12 21:42:23 +01:00
|
|
|
|
PR c++/24761
|
|
|
|
|
* pt.c (tsubst_copy_asm_operands): New function.
|
|
|
|
|
(tsubst_expr) <case ASM_EXPR>: Use it.
|
|
|
|
|
|
2005-11-08 22:44:58 +01:00
|
|
|
|
2005-11-08 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19450
|
|
|
|
|
* decl.c (redeclaration_error_message): Issue diagnostics about
|
|
|
|
|
olddecl and newdecl disagreement on __thread property.
|
|
|
|
|
(grokdeclarator): Set DECL_TLS_MODEL on class static variables.
|
|
|
|
|
|
2005-11-08 09:32:26 +01:00
|
|
|
|
2005-11-08 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21123
|
2006-01-18 01:15:37 +01:00
|
|
|
|
* method.c (use_thunk): Use build_cplus_new instead of
|
2005-11-08 09:32:26 +01:00
|
|
|
|
force_target_expr.
|
|
|
|
|
|
2005-11-07 07:17:47 +01:00
|
|
|
|
2005-11-06 Jason Merrill <jason@redhat.com>
|
|
|
|
|
James A. Morrison <phython@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/17256
|
|
|
|
|
* decl2.c (cp_finish_file): Fix conditions for undefined warning.
|
|
|
|
|
Set TREE_NO_WARNING instead of TREE_PUBLIC.
|
|
|
|
|
* pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
|
|
|
|
|
a warning on a function we didn't instantiate because of excessive
|
|
|
|
|
recursion.
|
|
|
|
|
|
2005-11-06 20:41:18 +01:00
|
|
|
|
2005-11-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-11-07 04:47:34 +01:00
|
|
|
|
* class.c (record_subobject_offsets): Don't record offsets past
|
|
|
|
|
biggest empty class for non-empty base classes.
|
|
|
|
|
(layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
|
|
|
|
|
keeping track of the size of emptyclasses.
|
|
|
|
|
|
2005-11-06 20:41:18 +01:00
|
|
|
|
PR c++/21308
|
|
|
|
|
* class.c (sizeof_biggest_empty_class): New variable.
|
|
|
|
|
(record_subobject_offsets): Don't record offsets past biggest
|
|
|
|
|
empty class for data members. Replace vbases_p parameter with
|
|
|
|
|
is_data_member parameter.
|
|
|
|
|
(build_base_field): Adjust call.
|
|
|
|
|
(layout_class_type): Likewise. Maintain
|
|
|
|
|
sizeof_biggest_empty_class.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-11-05 21:34:08 +01:00
|
|
|
|
2005-11-05 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c, init.c, typeck.c: Fix comment typos.
|
|
|
|
|
|
2005-11-04 10:46:43 +01:00
|
|
|
|
2005-11-04 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/22487
|
|
|
|
|
* init.c (build_vec_init): Build comparison of matching
|
|
|
|
|
types.
|
|
|
|
|
|
2005-11-04 02:23:22 +01:00
|
|
|
|
2005-11-03 Josh Conner <jconner@apple.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19989
|
|
|
|
|
pt.c (tsubst): Accept zero-length array if tf_error is set
|
|
|
|
|
in complain flags. Change error message for negative-
|
|
|
|
|
length array.
|
|
|
|
|
|
2005-11-04 02:16:32 +01:00
|
|
|
|
2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
|
|
|
|
|
parameter.
|
|
|
|
|
|
2005-11-04 00:08:18 +01:00
|
|
|
|
2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/17964
|
|
|
|
|
* error.c (cp_cpp_error): New function.
|
|
|
|
|
* cp-tree.h (cp_cpp_error): Declare.
|
|
|
|
|
* parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
|
|
|
|
|
and error callback after lexing.
|
|
|
|
|
|
2005-11-03 20:45:10 +01:00
|
|
|
|
2005-11-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21627
|
|
|
|
|
* pt.c (register_specialization): Update inline flags on clones.y
|
|
|
|
|
|
2005-11-03 16:06:42 +01:00
|
|
|
|
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR c++/24582
|
|
|
|
|
* decl.c (declare_local_label): Return 0 for variables
|
|
|
|
|
with error_mark_node as their types.
|
|
|
|
|
|
2005-11-02 19:30:26 +01:00
|
|
|
|
2005-11-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-11-03 02:25:13 +01:00
|
|
|
|
PR c++/22434
|
|
|
|
|
* call.c (build_conditional_expr): Do bad conversions, if there's
|
|
|
|
|
no other choice.
|
|
|
|
|
|
2005-11-03 00:36:05 +01:00
|
|
|
|
PR c++/24560
|
|
|
|
|
* parser.c (cp_parser_postfix_dot_deref_expression): Improve error
|
|
|
|
|
message for use of overloaded functions on LHS of "." operator.
|
|
|
|
|
|
2005-11-02 22:34:51 +01:00
|
|
|
|
PR c++/19253
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Use
|
|
|
|
|
cp_parser_elaborated_type_specifier to handle typename-types in
|
|
|
|
|
functional casts.
|
|
|
|
|
(cp_parser_enclosed_argument_list): Skip ahead to the end of the
|
|
|
|
|
template argument list if the closing ">" is not found.
|
|
|
|
|
|
2005-11-02 19:30:26 +01:00
|
|
|
|
PR c++/24569
|
|
|
|
|
* pt.c (instantiate_decl): Use cp_finish_decl, not
|
2006-01-18 01:15:37 +01:00
|
|
|
|
finish_static_data_member_decl.
|
2005-11-02 19:30:26 +01:00
|
|
|
|
|
2005-10-28 22:59:05 +02:00
|
|
|
|
2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokfndecl): Remove the setting
|
|
|
|
|
of the return type of the function type
|
|
|
|
|
of main after erroring about must returning
|
|
|
|
|
int.
|
|
|
|
|
|
2005-10-28 22:25:55 +02:00
|
|
|
|
2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/23229
|
|
|
|
|
* decl.c (grokfndecl): Create a new function type
|
|
|
|
|
after erroring out about main not returning int.
|
|
|
|
|
|
2005-10-28 19:58:59 +02:00
|
|
|
|
2005-10-28 Josh Conner <jconner@apple.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22153
|
|
|
|
|
* parser.c (cp_parser_member_declaration): Detect and handle
|
|
|
|
|
a template specialization.
|
|
|
|
|
|
2005-10-28 16:57:30 +02:00
|
|
|
|
2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/23426
|
|
|
|
|
* decl.c (start_decl): Check that the decl is an
|
|
|
|
|
error_mark_node before getting the type.
|
|
|
|
|
Remove the check for the decl's type being an
|
2006-01-18 01:15:37 +01:00
|
|
|
|
error_mark_node.
|
2005-10-28 16:57:30 +02:00
|
|
|
|
|
2005-10-21 18:03:47 +02:00
|
|
|
|
2005-10-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24260
|
|
|
|
|
* parser.c (cp_parser_init_declarator): Pass attributes to
|
2006-01-18 01:15:37 +01:00
|
|
|
|
grokfield.
|
2005-10-21 18:03:47 +02:00
|
|
|
|
|
2005-10-20 20:01:52 +02:00
|
|
|
|
2005-10-20 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22618
|
|
|
|
|
* search.c (accessible_p): Check access in the outermost set of
|
|
|
|
|
template parameters.
|
|
|
|
|
|
2005-10-20 10:07:46 +02:00
|
|
|
|
2005-10-20 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Fix ambiguous pedwarn message.
|
|
|
|
|
|
2005-10-18 18:20:55 +02:00
|
|
|
|
2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/22293
|
|
|
|
|
* decl.c (grokdeclarator): Reject unqualified destructors in
|
|
|
|
|
friend declarations.
|
|
|
|
|
|
2005-10-18 17:39:12 +02:00
|
|
|
|
2005-10-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23293
|
|
|
|
|
* pt.c (convert_template_argument): Use canonical type variants in
|
|
|
|
|
template specializations.
|
|
|
|
|
|
2005-10-18 14:30:32 +02:00
|
|
|
|
2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-10-18 15:45:23 +02:00
|
|
|
|
PR c++/21383
|
|
|
|
|
* name-lookup.c (arg_assoc): Template args can be null in a
|
|
|
|
|
template-id-expr.
|
|
|
|
|
|
2005-10-18 14:30:32 +02:00
|
|
|
|
PR c++/22604
|
|
|
|
|
* class.c (update_vtable_entry_for_fn): Don't process invalid
|
|
|
|
|
covariant overriders.
|
|
|
|
|
|
|
|
|
|
PR c++/23118
|
|
|
|
|
* cp-tree.h (add_method): Add return value.
|
|
|
|
|
* class.c (add_method): Return success indicator.
|
|
|
|
|
* semantics.c (finish_member_declaration): Don't add an invalid
|
|
|
|
|
method to the method list.
|
|
|
|
|
|
2005-10-18 07:56:04 +02:00
|
|
|
|
2005-10-17 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21908
|
|
|
|
|
* call.c (build_new_method_call): Do not show VTT parameters to
|
|
|
|
|
the user.
|
|
|
|
|
|
2005-10-18 00:22:30 +02:00
|
|
|
|
2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23440
|
|
|
|
|
* parser.c (cp_parser_statement): If the parser reached CPP_EOF,
|
|
|
|
|
only complain about missing statement.
|
|
|
|
|
|
2005-10-17 13:19:12 +02:00
|
|
|
|
2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-10-17 19:25:17 +02:00
|
|
|
|
PR c++/24386
|
|
|
|
|
* cp-tree.h (BASELINK_QUALIFIED_P): New.
|
|
|
|
|
* pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
|
|
|
|
|
* typeck.c (finish_class_member_access_expr): Set it.
|
|
|
|
|
|
2005-10-17 13:19:12 +02:00
|
|
|
|
PR c++/21353
|
|
|
|
|
* decl.c (check_default_argument): Don't check
|
|
|
|
|
processing_template_decl or uses_template_parms here.
|
|
|
|
|
(grokparms): Only call check_default_argument when not processing
|
|
|
|
|
a template decl.
|
|
|
|
|
* parser.c (cp_parser_late_parsing_default_arg): Call
|
|
|
|
|
check_default_argument when not processing a template decl.
|
|
|
|
|
|
2005-10-17 01:17:53 +02:00
|
|
|
|
2005-10-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24389
|
|
|
|
|
* decl2.c (mark_used): Use uses_template_parms instead of
|
|
|
|
|
dependent_type_p.
|
|
|
|
|
* init.c (constant_value_1): Handle uninstantiated templates
|
|
|
|
|
specially.
|
|
|
|
|
* pt.c (instantiate_decl): Add sanity check.
|
|
|
|
|
|
2005-10-16 23:57:42 +02:00
|
|
|
|
2005-10-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22173
|
2005-10-16 23:58:08 +02:00
|
|
|
|
* typeck.c (check_template_keyword): Fix thinko.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-10-16 23:13:11 +02:00
|
|
|
|
2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR c++/23959
|
|
|
|
|
* decl.c (pop_switch): Only call c_do_switch_warnings
|
|
|
|
|
when not processing templates.
|
|
|
|
|
|
2005-10-16 21:38:57 +02:00
|
|
|
|
2005-10-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-10-16 22:18:53 +02:00
|
|
|
|
PR c++/22173
|
2005-10-16 21:38:57 +02:00
|
|
|
|
* cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
|
|
|
|
|
(check_template_keyword): New function.
|
|
|
|
|
(finish_id_expression): Change prototoype.
|
|
|
|
|
(finish_qualified_id_expr): Change prototype.
|
|
|
|
|
(build_qualified_name): New function.
|
|
|
|
|
(finish_class_member_access_expr): Change prototype.
|
|
|
|
|
* init.c (build_offset_ref): Use build_qualified_name.
|
|
|
|
|
* mangle.c (write_expression): Likewise.
|
|
|
|
|
* parser.c (cp_parser_primary_expression): Remove qualifying_class
|
|
|
|
|
parameter. Add address_p and template_arg_p. Use
|
|
|
|
|
build_qualified_name.
|
|
|
|
|
(cp_parser_id_expression): Default *template_p to
|
|
|
|
|
template_keyword_p. Check for invalid uses of the template
|
2006-01-18 01:15:37 +01:00
|
|
|
|
keyword.
|
2005-10-16 21:38:57 +02:00
|
|
|
|
(cp_parser_postfix_expression): Eliminate special handling for
|
|
|
|
|
qualified names. Adjust call to cp_parser_primary_expression.
|
|
|
|
|
(cp_parser_postfix_dot_deref_expression): Adjust call to
|
|
|
|
|
cp_parser_id_expression and finish_class_member_access_expr.
|
|
|
|
|
(cp_parser_template_argument_list): Add comment.
|
|
|
|
|
(cp_parser_template_argument): Adjust use of
|
|
|
|
|
cp_parser_primary_expression. Remove call to
|
|
|
|
|
finish_qualified_id_expr.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
(cp_parser_lookup_name): Use build_qualified_name.
|
2005-10-16 21:38:57 +02:00
|
|
|
|
* pt.c (tsubst): Use build_qualified_name.
|
|
|
|
|
(tsubst_qualified_id): Likewise. Adjust call to
|
|
|
|
|
finish_qualified_id_expr.
|
|
|
|
|
(tsubst_copy): Use build_qualified_name.
|
|
|
|
|
(tsubst_copy_and_build): Adjusts call to finish_id_expression and
|
2006-01-18 01:15:37 +01:00
|
|
|
|
finish_class_member_access_expr.
|
2005-10-16 21:38:57 +02:00
|
|
|
|
* semantics.c (finish_non_static_data_member): Use
|
|
|
|
|
build_qualified_name.
|
|
|
|
|
(finish_qualified_id_expr): Add template_p and template_arg_p
|
2006-01-18 01:15:37 +01:00
|
|
|
|
parameters.
|
2005-10-16 21:38:57 +02:00
|
|
|
|
(finish_id_expression): Remove qualifiying_class parameter. Add
|
|
|
|
|
template_p, done, address_p, and template_arg_p. Use
|
|
|
|
|
build_qualified_name. Adjust calls to
|
2006-01-18 01:15:37 +01:00
|
|
|
|
finish_class_member_acess_expr.
|
2005-10-16 21:38:57 +02:00
|
|
|
|
* tree.c (build_qualified_name): New function.
|
|
|
|
|
* typeck.c (check_template_keyword): New function.
|
|
|
|
|
(finish_class_member_access_expr): Add template_p argument. Check
|
|
|
|
|
for invalid uses of the template keyword.
|
2005-10-16 23:57:42 +02:00
|
|
|
|
|
2005-10-15 20:13:25 +02:00
|
|
|
|
2005-10-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21347
|
|
|
|
|
* class.c (maybe_warn_about_overly_private_class): Lazy
|
|
|
|
|
constructors are public.
|
|
|
|
|
|
2005-10-14 21:50:08 +02:00
|
|
|
|
2005-10-14 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19565
|
|
|
|
|
* call.c (convert_like_real): Rely on convert_and_check to issue
|
|
|
|
|
warnings about overflow and conversion to unsigned.
|
|
|
|
|
* decl.c (finish_enum): Use the location of the enumerators, not
|
|
|
|
|
the closing brace of the enumeration, when reporting warnings
|
|
|
|
|
about conversions.
|
|
|
|
|
(build_enumerator): Use error_mark_node for erroneous values.
|
|
|
|
|
* typeck2.c (digest_init): Remove reference to "signature pointer"
|
|
|
|
|
from comment.
|
|
|
|
|
|
2005-10-14 18:36:49 +02:00
|
|
|
|
2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/17796
|
|
|
|
|
* optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
|
|
|
|
|
(maybe_clone_body): Track the first clone.
|
|
|
|
|
|
2005-10-14 10:38:59 +02:00
|
|
|
|
2005-10-13 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23984
|
|
|
|
|
* class.c (build_base_path): The vtable is always the first thing
|
|
|
|
|
in the vtt.
|
|
|
|
|
|
2005-10-13 10:38:40 +02:00
|
|
|
|
2005-10-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-10-14 01:59:57 +02:00
|
|
|
|
PR c++/20721
|
|
|
|
|
* cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
|
|
|
|
|
* decl.c (duplicate_decls): Merge it into new declarations.
|
|
|
|
|
(decl_jump_unsafe): Use it, rather than DECL_INITIAL.
|
|
|
|
|
(cp_finish_decl): Set it, when appropriate.
|
|
|
|
|
|
2005-10-13 10:38:40 +02:00
|
|
|
|
PR c++/22180
|
|
|
|
|
* call.c (build_new_method_call): Correct pretty-printing of
|
|
|
|
|
destructor names.
|
|
|
|
|
* pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
|
2006-01-18 01:15:37 +01:00
|
|
|
|
identifier.
|
2005-10-13 10:38:40 +02:00
|
|
|
|
|
|
|
|
|
PR c++/23694
|
|
|
|
|
* decl.c (start_method): Return error_mark_node for errors.
|
|
|
|
|
|
|
|
|
|
PR c++/23307
|
|
|
|
|
* pt.c (push_template_decl_real): Complain about attempts to
|
|
|
|
|
declare template variables.
|
|
|
|
|
|
|
|
|
|
PR c++/22352
|
|
|
|
|
* pt.c (tsubst_template_parms): Set processing_template_decl while
|
|
|
|
|
processing the parameters.
|
|
|
|
|
(tsubst_decl): Set processing_template_decl when substituting into
|
|
|
|
|
a TEMPLATE_DECL.
|
|
|
|
|
|
|
|
|
|
PR c++/22405
|
|
|
|
|
* pt.c (most_specialized_instantiation): Robustify.
|
|
|
|
|
|
|
|
|
|
PR c++/22464
|
|
|
|
|
* semantics.c (finish_id_expression): Issue errors about uses of
|
|
|
|
|
local variables in containing functions even in templates.
|
|
|
|
|
|
2005-10-12 22:54:50 +02:00
|
|
|
|
2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR target/21801
|
|
|
|
|
PR target/23589
|
|
|
|
|
* class.c (finish_struct_1): Call
|
|
|
|
|
targetm.cxx.adjust_class_at_definition.
|
|
|
|
|
|
|
|
|
|
|
2005-10-12 20:02:52 +02:00
|
|
|
|
2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-10-12 20:13:41 +02:00
|
|
|
|
PR c++/21592
|
|
|
|
|
* pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
|
|
|
|
|
with already looked up member functions. Assert we're not
|
|
|
|
|
returning a NON_DEPENDENT_EXPR with unknown type.
|
|
|
|
|
* typeck.c (finish_class_member_access_expr): We can get
|
|
|
|
|
non-template-id-expr baselinks. If the lookup finds a baselink,
|
|
|
|
|
remember it even inside templates.
|
|
|
|
|
|
2005-10-12 20:07:43 +02:00
|
|
|
|
PR c++/23797
|
|
|
|
|
* parser.c (cp_parser_functional_cast): Cope when TYPE is not a
|
|
|
|
|
TYPE_DECL. Use dependent_type_p to check type.
|
|
|
|
|
* pt.c (uses_template_parms_p): Use dependent_type_p for a
|
|
|
|
|
TYPE_DECL.
|
|
|
|
|
(type_dependent_expression_p): Assert we've not been given a
|
|
|
|
|
TYPE_DECL.
|
|
|
|
|
|
2005-10-12 20:02:52 +02:00
|
|
|
|
PR c++/21117
|
|
|
|
|
* decl.c (check_function_type): Correctly overwrite incomplete
|
|
|
|
|
return type with void type.
|
|
|
|
|
* typeck.c (check_return_expr): If the function's return type is
|
|
|
|
|
void, don't try and convert a return expr.
|
|
|
|
|
|
2005-10-12 17:03:12 +02:00
|
|
|
|
2005-10-12 David Edelsohn <edelsohn@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/23730
|
|
|
|
|
* call.c (build_object_call): If BINFO is NULL, bypass
|
|
|
|
|
lookup_fnfields and set fns to NULL_TREE.
|
|
|
|
|
|
2005-10-12 15:16:22 +02:00
|
|
|
|
2005-10-12 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/24052
|
|
|
|
|
* error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
|
2006-01-18 01:15:37 +01:00
|
|
|
|
an ADDR_EXPR of a LABEL_DECL as &&.
|
2005-10-12 15:16:22 +02:00
|
|
|
|
|
2005-10-12 12:59:27 +02:00
|
|
|
|
2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19964
|
2005-10-12 15:16:22 +02:00
|
|
|
|
* class.c (walk_subobject_offsets): Don't walk error_mark_node.
|
2005-10-12 12:59:27 +02:00
|
|
|
|
|
2005-10-12 01:30:57 +02:00
|
|
|
|
2005-10-11 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
PR c++/8057
|
|
|
|
|
* cvt.c (convert_to_void): Don't warn about unused values when
|
|
|
|
|
processing a template declaration.
|
|
|
|
|
|
2005-10-11 18:38:52 +02:00
|
|
|
|
2005-10-11 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-10-11 22:58:46 +02:00
|
|
|
|
PR c++/21089
|
|
|
|
|
* call.c (convert_like_real): Use decl_constant_value, not
|
|
|
|
|
integral_constant_value.
|
|
|
|
|
* init.c (constant_value_1): New function.
|
|
|
|
|
(integral_constant_value): Use it.
|
|
|
|
|
(decl_constant_value): Likewise.
|
|
|
|
|
* typeck.c (decay_conversion): Use decl_constant_value, not
|
|
|
|
|
integral_constant_value.
|
|
|
|
|
|
2005-10-11 18:38:52 +02:00
|
|
|
|
PR c++/21369
|
|
|
|
|
* parser.c (cp_parser_elaborated_type_specifier): Don't treat
|
|
|
|
|
class types as templates if the type is not appearing as part of a
|
|
|
|
|
type definition or declaration.
|
|
|
|
|
|
2005-10-11 08:19:55 +02:00
|
|
|
|
2005-10-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24277
|
|
|
|
|
* pt.c (instantiate_decl): Call finish_static_data_member_decl for
|
|
|
|
|
static data members.
|
|
|
|
|
|
2005-10-11 00:30:17 +02:00
|
|
|
|
2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
|
PR c++/23437
|
2005-10-11 00:30:17 +02:00
|
|
|
|
* parser.c (cp_parser_template_argument_list): Do not treat
|
|
|
|
|
contents of argument list as part of a constant expression.
|
|
|
|
|
|
2005-10-10 16:41:52 +02:00
|
|
|
|
2005-10-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/24139
|
|
|
|
|
* decl.c (grokdeclarator): Do not require template parameter lists
|
|
|
|
|
for explicitly specialized class.
|
|
|
|
|
* error.c (dump_aggr_type): Do not dump template arguments for
|
|
|
|
|
non-primary specializations.
|
|
|
|
|
(dump_function_name): Likewise.
|
|
|
|
|
|
|
|
|
|
PR c++/24275
|
|
|
|
|
* pt.c (instantiate_decl): Instantiate the initializer of
|
|
|
|
|
a static data member in the namespace containing the class
|
|
|
|
|
containing the static data member.
|
|
|
|
|
|
2005-10-08 20:11:02 +02:00
|
|
|
|
2005-10-08 James A. Morrison <phython@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/22172
|
|
|
|
|
* parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
|
|
|
|
|
scopes as nondependent.
|
|
|
|
|
|
2005-10-06 16:03:36 +02:00
|
|
|
|
2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* call.c (resolve_args): Remove redundant test.
|
|
|
|
|
|
2005-10-05 14:17:16 +02:00
|
|
|
|
2005-10-05 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
PR tree-optimization/21419
|
|
|
|
|
PR tree-optimization/24146
|
|
|
|
|
PR tree-optimization/24151
|
|
|
|
|
|
|
|
|
|
* semantics.c (finish_asm_stmt): Call readonly_error if outputs are
|
|
|
|
|
read-only. Set ASM_VOLATILE_P for asms without outputs.
|
|
|
|
|
|
2005-10-05 11:15:47 +02:00
|
|
|
|
2005-10-05 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23513
|
|
|
|
|
* call.c (joust): Adjust length count to more_specialized_fn.
|
|
|
|
|
* pt.c (more_specialized_fn): Cope with non-static member vs
|
|
|
|
|
non-member.
|
|
|
|
|
|
2005-10-04 15:39:17 +02:00
|
|
|
|
2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR middle-end/23125
|
|
|
|
|
* decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
|
|
|
|
|
instead of change_decl_assembler_name.
|
|
|
|
|
|
2005-10-04 04:21:26 +02:00
|
|
|
|
2005-10-03 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
|
|
|
|
|
|
2005-10-03 19:21:40 +02:00
|
|
|
|
2005-10-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/17775
|
|
|
|
|
* repo.c: Include flags.h.
|
|
|
|
|
(finish_repo): Add -frandom-seed to the arguments.
|
|
|
|
|
|
2005-10-02 23:28:50 +02:00
|
|
|
|
2005-10-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-10-02 23:58:08 +02:00
|
|
|
|
PR c++/22621
|
|
|
|
|
* parser.c (cp_parser_template_argument): Don't turn "T::f" into
|
|
|
|
|
"(*this).T::f".
|
|
|
|
|
* pt.c (convert_nontype_argument): Remove ??? comment.
|
|
|
|
|
|
2005-10-02 23:28:50 +02:00
|
|
|
|
PR c++/23840
|
2005-10-03 17:42:42 +02:00
|
|
|
|
* tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
|
2005-10-02 23:28:50 +02:00
|
|
|
|
when class rvalues are lvalues.
|
|
|
|
|
|
2005-09-28 16:50:17 +02:00
|
|
|
|
2005-09-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/16782
|
|
|
|
|
* decl.c (grokdeclarator): Always pedwarn about overqualified
|
|
|
|
|
member names.
|
|
|
|
|
|
2005-09-28 01:31:57 +02:00
|
|
|
|
2005-09-27 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22147
|
|
|
|
|
* name-lookup.c (maybe_process_template_type_declaration): Don't
|
|
|
|
|
treat forward declarations of classes as templates just because
|
|
|
|
|
we're processing_template_decl.
|
|
|
|
|
* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
|
2006-01-18 01:15:37 +01:00
|
|
|
|
functions.
|
2005-09-28 01:31:57 +02:00
|
|
|
|
|
2005-09-27 18:04:25 +02:00
|
|
|
|
2005-09-26 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/13764
|
|
|
|
|
* cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
|
|
|
|
|
* name-lookup.c (pushdecl_maybe_friend): Check it.
|
|
|
|
|
* decl.c (begin_function_body): Do nothing if it's false.
|
|
|
|
|
(finish_function_body): Ditto.
|
|
|
|
|
(outer_curly_brace_block): New fn.
|
|
|
|
|
(finish_function): Use it.
|
|
|
|
|
|
2005-09-26 10:42:57 +02:00
|
|
|
|
2005-09-26 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/15855
|
|
|
|
|
* decl2.c (do_static_destruction): Remove.
|
|
|
|
|
(finish_static_initialization_or_destruction): Likewise.
|
|
|
|
|
(DECL_EFFECTIVE_INIT_PRIORITY): New macro.
|
|
|
|
|
(NEEDS_GUARD_P): Likewise.
|
|
|
|
|
(do_static_initialization): Rename to
|
|
|
|
|
do_static_initialization_or_destruction. Process all
|
|
|
|
|
initializers/destructors and handle common conditionalizing.
|
|
|
|
|
(start_static_initialization_or_destruction): Rename to
|
|
|
|
|
one_static_initialization_or_destruction. Handle only
|
|
|
|
|
decl-specific conditionalizing.
|
|
|
|
|
(cp_finish_file): Call do_static_initialization_or_destruction.
|
|
|
|
|
|
2005-09-22 18:34:58 +02:00
|
|
|
|
2005-09-22 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21983
|
|
|
|
|
* class.c (find_final_overrider): Move diagnostic about no unique final
|
|
|
|
|
overrider to...
|
|
|
|
|
(update_vtable_entry_for_fn): ... here.
|
|
|
|
|
|
2005-09-22 02:11:22 +02:00
|
|
|
|
2005-09-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23993
|
|
|
|
|
* init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
|
|
|
|
|
|
2005-09-21 17:34:41 +02:00
|
|
|
|
2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23965
|
|
|
|
|
* call.c (resolve_args): Return error_mark_node on arguments
|
|
|
|
|
whose TREE_TYPE is error_mark_node.
|
|
|
|
|
|
2005-09-20 17:40:57 +02:00
|
|
|
|
2005-09-20 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23947
|
|
|
|
|
* rtti.c (get_pseudo_ti_init): Recompute ti pointer after
|
|
|
|
|
get_tinfo_ptr calls.
|
|
|
|
|
|
2005-09-16 17:41:45 +02:00
|
|
|
|
2005-09-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-09-16 20:33:22 +02:00
|
|
|
|
PR c++/23914
|
|
|
|
|
* parser.c (cp_parser_enclosed_template_argument_list): Make sure
|
|
|
|
|
skip_evaluation is false when processing template arguments.
|
|
|
|
|
|
2005-09-16 17:41:45 +02:00
|
|
|
|
PR c++/21514
|
|
|
|
|
* pt.c (check_instantiated_args): Treat uses of anonymous types as
|
|
|
|
|
causing type-deduction failure.
|
|
|
|
|
|
2005-09-16 08:50:56 +02:00
|
|
|
|
2005-09-15 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23357
|
|
|
|
|
* cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
|
|
|
|
|
tcc_expression.
|
|
|
|
|
|
2005-09-15 18:03:32 +02:00
|
|
|
|
2005-09-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-09-16 03:50:26 +02:00
|
|
|
|
PR c++/23896
|
|
|
|
|
* pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
|
|
|
|
|
processing template arguments.
|
|
|
|
|
|
2005-09-15 18:51:37 +02:00
|
|
|
|
* pt.c (check_explicit_instantiation_namespace): Fix typo.
|
|
|
|
|
|
2005-09-15 18:03:32 +02:00
|
|
|
|
PR c++/13140
|
|
|
|
|
* decl.c (check_class_member_definition_namespace): New function.
|
|
|
|
|
(grokfndecl): Use it.
|
|
|
|
|
(grokvardecl): Likewise.
|
|
|
|
|
(grokdecl): Improve documentation.
|
|
|
|
|
* pt.c (check_explicit_instantiation_namespace): New function.
|
|
|
|
|
(register_specialization): Call check_specialization_namespace
|
|
|
|
|
when replacing an implicitly instantiated function.
|
|
|
|
|
(check_explicit_specialization): Ensure that DECL_CONTEXT is set
|
|
|
|
|
correctly for namespace-scope specializations.
|
|
|
|
|
(do_decl_instantiation): Use
|
|
|
|
|
check_explicit_instantiation_namespace.
|
|
|
|
|
(do_type_instantiation): Likewise.
|
|
|
|
|
|
2005-09-15 13:27:12 +02:00
|
|
|
|
2005-09-15 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23725
|
|
|
|
|
* error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
|
|
|
|
|
|
2005-09-13 17:15:37 +02:00
|
|
|
|
2005-09-13 Bastian Blank <waldi@debian.org>
|
|
|
|
|
|
|
|
|
|
PR c++/16171
|
|
|
|
|
* mangle.c (find_substitution): Do not use special substitutions
|
|
|
|
|
for identifiers not in std::.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-09-13 16:45:13 +02:00
|
|
|
|
2005-09-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23839
|
|
|
|
|
* typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
|
|
|
|
|
for VAR_DECLs.
|
|
|
|
|
|
2005-09-13 16:44:08 +02:00
|
|
|
|
2005-09-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23842
|
|
|
|
|
* pt.c (tsubst_default_argument): Do treat default argument
|
2006-01-18 01:15:37 +01:00
|
|
|
|
expressions as occurring in the context of the function called.
|
2005-09-13 16:44:08 +02:00
|
|
|
|
|
2005-09-13 04:41:07 +02:00
|
|
|
|
2005-09-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23841
|
|
|
|
|
* parser.c (cp_parser_primary_expression): Recognize the closing
|
|
|
|
|
">" of a template-argument-list after a floating-point literal as
|
|
|
|
|
the end of a cast expression.
|
|
|
|
|
|
2005-09-13 00:38:34 +02:00
|
|
|
|
2005-09-12 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23789
|
|
|
|
|
* cvt.c (perform_qualification_conversions): Don't create
|
|
|
|
|
unnecessary NOP_EXPRs.
|
|
|
|
|
* pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
|
|
|
|
|
|
2005-09-12 21:54:23 +02:00
|
|
|
|
2005-09-12 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
PR g++/7874
|
|
|
|
|
* cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
|
|
|
|
|
bitfield. Make dummy bitfield one bit smaller.
|
|
|
|
|
(DECL_HIDDEN_FRIEND_P): Define.
|
|
|
|
|
(pushdecl_maybe_friend): Declare.
|
|
|
|
|
(pushdecl_top_level_maybe_friend): Declare.
|
|
|
|
|
* decl.c (duplicate_decls): Add newdecl_is_friend parameter.
|
|
|
|
|
Change prototype and all callers. Add assertion that a
|
|
|
|
|
DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
|
|
|
|
|
DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
|
|
|
|
|
appropriate.
|
|
|
|
|
* name-lookup.c (supplement_binding): Don't ignore a
|
|
|
|
|
DECL_HIDDEN_FRIEND_P.
|
|
|
|
|
(pushdecl_maybe_friend): Break out contents of pushdecl. Add
|
|
|
|
|
is_friend parameter. Set DECL_ANTICIPATED and
|
|
|
|
|
DECL_HIDDEN_FRIEND_P for a friend function.
|
|
|
|
|
(pushdecl): Just call pushdecl_maybe_friend.
|
|
|
|
|
(pushdecl_with_scope): Add is_friend parameter. Change prototype
|
|
|
|
|
and all callers.
|
|
|
|
|
(pushdecl_namespace_level): Likewise.
|
|
|
|
|
(push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
|
|
|
|
|
well as DECL_ANTICIPATED when checking for a builtin.
|
|
|
|
|
(do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
|
|
|
|
|
DECL_ANTICIPATED when checking for a builtin.
|
|
|
|
|
(do_nonmember_using_decl): Likewise.
|
|
|
|
|
(pushdecl_top_level_1): Add is_friend parameter. Change all
|
|
|
|
|
callers.
|
|
|
|
|
(pushdecl_top_level_maybe_friend): New function.
|
|
|
|
|
(remove_hidden_names): New function.
|
|
|
|
|
(struct arg_lookup): Add args field.
|
|
|
|
|
(friend_of_associated_class_p): New static function.
|
|
|
|
|
(arg_assoc_namespace): Ignore hidden functions which are not
|
|
|
|
|
friends of an associated class of some argument.
|
|
|
|
|
(lookup_arg_dependent): Remove hidden functions from list passed
|
|
|
|
|
in. Initialize k.args.
|
|
|
|
|
* name-lookup.h (remove_hidden_names): Declare.
|
|
|
|
|
* friend.c (do_friend): Call pushdecl_maybe_friend instead of
|
|
|
|
|
pushdecl.
|
|
|
|
|
* call.c (add_function_candidate): Change DECL_ANTICIPATED test to
|
|
|
|
|
an assertion, with a check for DECL_HIDDEN_FRIEND_P.
|
|
|
|
|
(build_new_function_call): Add koenig_p parameter. Change
|
|
|
|
|
prototype and callers.
|
|
|
|
|
* pt.c (register_specialization): Add is_friend parameter. Change
|
|
|
|
|
all callers.
|
|
|
|
|
(push_template_decl_real): Change is_friend parameter to bool.
|
|
|
|
|
Change prototype and all callers.
|
|
|
|
|
(tsubst_friend_class): Call pushdecl_top_level_maybe_friend
|
|
|
|
|
instead of pushdecl_top_level.
|
|
|
|
|
|
2005-09-12 06:04:03 +02:00
|
|
|
|
2005-09-11 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (build_anon_union_vars): Copy attributes from the base addr.
|
|
|
|
|
* pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
|
|
|
|
|
|
2005-09-10 01:07:55 +02:00
|
|
|
|
2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_translation_unit): Simplify. The while-block
|
|
|
|
|
was actually executed at most once.
|
|
|
|
|
|
2005-09-09 23:00:49 +02:00
|
|
|
|
2005-09-09 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/20998
|
|
|
|
|
* cp-tree.def (ALIAS_DECL): Remove.
|
|
|
|
|
* cp-lang.c (cp_init_ts): Remove support for it.
|
|
|
|
|
* error.c (dump_decl): Likewise.
|
|
|
|
|
* name-lookup.c (pushdecl): Likewise.
|
|
|
|
|
* semantics.c (finish_id_expression): Likewise.
|
|
|
|
|
* decl2.c (build_anon_union_vars): Use a VAR_DECL with
|
|
|
|
|
DECL_VALUE_EXPR instead.
|
|
|
|
|
|
2005-09-09 20:56:16 +02:00
|
|
|
|
2005-09-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22252
|
|
|
|
|
* decl.c (start_preparsed_function): Do not pay attention to
|
|
|
|
|
#pragma interface for implicitly-defined methods.
|
|
|
|
|
* decl2.c (cp_finish_file): Do not complain about uses of inline
|
|
|
|
|
functions that have bodies, even if we decided not to emit the
|
|
|
|
|
body in this translation unit.
|
|
|
|
|
* semantics.c (note_decl_for_pch): Do not mess with linkage.
|
|
|
|
|
(expand_or_defer_fn): Make inline, non-template functions COMDAT
|
|
|
|
|
at this point.
|
|
|
|
|
|
2005-09-09 02:47:05 +02:00
|
|
|
|
2005-09-08 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR debug/23190
|
|
|
|
|
* decl.c (wrapup_globals_for_namespace): Call
|
|
|
|
|
emit_debug_global_declarations.
|
|
|
|
|
* decl2.c (cp_finish_file): Likewise.
|
|
|
|
|
|
2005-09-08 20:56:42 +02:00
|
|
|
|
2005-09-08 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23691
|
|
|
|
|
* decl2.c (mark_used): Instantiate static data members initialized
|
|
|
|
|
by constants, even in a template.
|
|
|
|
|
|
2005-09-08 15:14:41 +02:00
|
|
|
|
2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR obj-c++/16816
|
|
|
|
|
* parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
|
|
|
|
|
two CPP_COLON.
|
|
|
|
|
|
2005-09-07 09:20:58 +02:00
|
|
|
|
2005-09-07 Richard Guenther <rguenther@suse.de>
|
|
|
|
|
|
|
|
|
|
* cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
|
|
|
|
|
for EMPTY_CLASS_EXPR.
|
|
|
|
|
|
2005-09-06 22:07:13 +02:00
|
|
|
|
2005-09-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/23075
|
|
|
|
|
* typeck.c (check_return_expr): Add no_warning argument. Set
|
|
|
|
|
*no_warning to true if "return-statement with no value, in function
|
|
|
|
|
returning" warning has been issued.
|
|
|
|
|
* cp-tree.h (check_return_expr): Adjust prototype.
|
|
|
|
|
* semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
|
|
|
|
|
check_return_expr set *no_warning to true.
|
|
|
|
|
|
2005-09-06 16:55:06 +02:00
|
|
|
|
2005-09-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (rvalue): New function.
|
|
|
|
|
* call.c (build_conditional_expr): Use it.
|
|
|
|
|
* init.c (build_new_1): Likewise.
|
|
|
|
|
* rtti.c (build_dynamic_cast_1): Likewise.
|
|
|
|
|
* tree.c (rvalue): New function.
|
|
|
|
|
* typeck.c (build_unary_op): Use it.
|
|
|
|
|
(build_static_cast_1): Likewise.
|
|
|
|
|
|
|
|
|
|
PR c++/9782
|
|
|
|
|
* init.c (build_new_1): Make sure the entire array type is
|
|
|
|
|
complete, not just its element types.
|
|
|
|
|
|
2005-09-06 12:30:09 +02:00
|
|
|
|
2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* decl.c (check_elaborated_type_specifier): Remove redundant check.
|
|
|
|
|
|
2005-09-06 10:55:37 +02:00
|
|
|
|
2005-09-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23056
|
|
|
|
|
* typeck.c (ignore_overflows): New helper function.
|
|
|
|
|
(build_static_cast_1): Use it.
|
|
|
|
|
|
2005-09-06 04:12:30 +02:00
|
|
|
|
2005-09-06 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
|
|
|
|
|
Follow spelling conventions.
|
|
|
|
|
|
2005-09-05 18:12:15 +02:00
|
|
|
|
2005-09-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23667
|
|
|
|
|
* pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
|
|
|
|
|
copying a VAR_DECL.
|
|
|
|
|
|
2005-09-05 17:59:31 +02:00
|
|
|
|
2005-09-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21440
|
|
|
|
|
* semantics.c (finish_stmt_expr_expr): Add an explicit
|
|
|
|
|
initialization to the last statement in the statement-expression.
|
|
|
|
|
* (finish_stmt_expr): Adjust accordingly.
|
|
|
|
|
|
2005-09-03 20:18:48 +02:00
|
|
|
|
2005-09-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23699
|
|
|
|
|
* decl2.c (mark_used): Always instantiate static data members
|
|
|
|
|
initialized by constant expressions.
|
|
|
|
|
* pt.c (instantiate_decl): Instantiate the initializers for static
|
|
|
|
|
data members initialized by constant expressions.
|
|
|
|
|
|
|
|
|
|
PR c++/21687
|
|
|
|
|
* semantics.c (expand_or_defer_fn): Do not call ggc_collect when
|
|
|
|
|
finishing processing for a template function in a local class.
|
|
|
|
|
Revert:
|
|
|
|
|
2005-09-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
* parser.c (cp_parser_class_specifier): Push/pop GC contexts
|
|
|
|
|
around functions in local classes.
|
|
|
|
|
|
2005-09-02 20:29:28 +02:00
|
|
|
|
2005-09-02 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21687
|
|
|
|
|
* parser.c (cp_parser_class_specifier): Push/pop GC contexts
|
|
|
|
|
around functions in local classes.
|
|
|
|
|
|
2005-08-31 15:46:06 +02:00
|
|
|
|
2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR obj-c++/23640
|
|
|
|
|
* decl2.c (cp_finish_file): If this is obj-c++ and we need a static
|
|
|
|
|
init, call generate_ctor_or_dtor_function.
|
|
|
|
|
|
2005-08-31 12:32:54 +02:00
|
|
|
|
2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/13377
|
|
|
|
|
* parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
|
|
|
|
|
lookup_name_real on final parse.
|
|
|
|
|
|
2005-08-31 10:46:46 +02:00
|
|
|
|
2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23639
|
|
|
|
|
* semantics.c (qualified_name_lookup_error): Do not complain again
|
|
|
|
|
on invalid scope.
|
|
|
|
|
|
2005-08-30 18:22:00 +02:00
|
|
|
|
2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23586
|
|
|
|
|
* parser.c (cp_parser_namespace_name): Move diagnostic for
|
|
|
|
|
invalid namespace-name to here from ...
|
|
|
|
|
* name-lookup.c (do_namespace_alias): ... here and ...
|
|
|
|
|
(do_using_directive): ... here. Remove dead code.
|
|
|
|
|
|
2005-08-29 16:08:50 +02:00
|
|
|
|
2005-08-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23099
|
|
|
|
|
* cp-tree.h (saved_scope): Add skip_evaluation.
|
|
|
|
|
* decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
|
|
|
|
|
DECL_INITIAL, to determine whether or not a static data member was
|
|
|
|
|
initialized in the class-specifier.
|
|
|
|
|
(cp_finish_decl): Add comment.
|
|
|
|
|
* init.c (integral_constant_value): Subtitute into the
|
|
|
|
|
initializers for static data members in templates.
|
|
|
|
|
* name-lookup.c (push_to_top_level): Save skip_evaluation.
|
|
|
|
|
(pop_from_top_level): Restore it.
|
|
|
|
|
* pt.c (instantiate_class_template): Do not substitute into the
|
|
|
|
|
intializers of static data members when instantiating a class.
|
|
|
|
|
(regenerate_decl_from_template): Simplify.
|
|
|
|
|
(instantiate_decl): Tidy. Substitute into the initializer for a
|
|
|
|
|
static data member even when the definition of the data member is
|
|
|
|
|
not available.
|
|
|
|
|
|
2005-08-26 21:32:31 +02:00
|
|
|
|
2005-08-26 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-08-26 21:35:13 +02:00
|
|
|
|
PR c++/19004
|
|
|
|
|
* pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
|
|
|
|
|
(type_dependent_expression_p): Allow BASELINKs whose associated
|
|
|
|
|
functions are simply a FUNCTION_DECL.
|
|
|
|
|
|
2005-08-26 21:32:31 +02:00
|
|
|
|
PR c++/23491
|
|
|
|
|
* cp-tree.h (build_vec_init): Adjust prototype.
|
|
|
|
|
* init.c (perform_member_init): Adjust call to build_vec_init.
|
|
|
|
|
(build_aggr_init): Likewise.
|
|
|
|
|
(build_new_1): Do not call build_default_init for array types.
|
|
|
|
|
(build_vec_init): Add explicit_default_init_p parameter. Perform
|
|
|
|
|
default initialization of vector elements when set.
|
|
|
|
|
* typeck.c (build_modify_expr): Adjust call to build_vec_init.
|
|
|
|
|
|
2005-08-25 11:06:45 +02:00
|
|
|
|
2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20817
|
|
|
|
|
* typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
|
|
|
|
|
->*.
|
|
|
|
|
|
2005-08-24 12:21:46 +02:00
|
|
|
|
2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22454
|
|
|
|
|
* parser.c (cp_lexer_peek_nth_token): Relax assert.
|
|
|
|
|
|
2005-08-23 14:35:42 +02:00
|
|
|
|
2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23044
|
|
|
|
|
* pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
|
|
|
|
|
|
2005-08-23 01:52:22 +02:00
|
|
|
|
2005-08-22 James E Wilson <wilson@specifix.com>
|
|
|
|
|
|
2005-08-23 01:56:29 +02:00
|
|
|
|
PR tree-optimization/23426
|
2005-08-23 01:52:22 +02:00
|
|
|
|
* decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
|
|
|
|
|
array size check.
|
|
|
|
|
|
2005-08-22 11:48:26 +02:00
|
|
|
|
2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/22233
|
|
|
|
|
* pt.c (push_template_decl_real): Return error_mark_node if the
|
|
|
|
|
number of template parameters does not match previous definition.
|
|
|
|
|
|
2005-08-22 10:37:17 +02:00
|
|
|
|
2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23089
|
|
|
|
|
* decl.c (require_complete_types_for_parms): Mark incomplete types
|
|
|
|
|
as invalid.
|
|
|
|
|
|
2005-08-19 21:08:08 +02:00
|
|
|
|
2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_nth_token_starts_template_argument_list_p):
|
|
|
|
|
Fix typo in leading comment.
|
|
|
|
|
|
2005-08-16 02:13:53 +02:00
|
|
|
|
2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
|
|
|
|
|
|
2005-08-15 22:38:23 +02:00
|
|
|
|
2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
|
|
|
|
|
|
2006-03-09 19:14:39 +01:00
|
|
|
|
* cp-tree.h (can_convert_arg, fn_type_unification): New argument.
|
|
|
|
|
* call.c (add_template_candidate_real): Pass down 'flags' to
|
|
|
|
|
fn_type_unification.
|
|
|
|
|
(can_convert_arg): New 'flags' argument. Pass it to call to
|
|
|
|
|
implicit_conversion instead of LOOKUP_NORMAL.
|
2005-08-15 22:38:23 +02:00
|
|
|
|
(can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
|
2006-03-09 19:14:39 +01:00
|
|
|
|
* class.c (resolve_address_of_overloaded_function): Ditto.
|
|
|
|
|
(resolve_address_of_overloaded_function): Ditto.
|
|
|
|
|
* decl.c (reshape_init, check_default_argument): Ditto.
|
|
|
|
|
* typeck.c (build_ptrmemfunc): Ditto.
|
|
|
|
|
* pt.c (type_unification_real): Add 'flags' argument.
|
|
|
|
|
(fn_type_unification): Pass 'flags' to type_unification_real.
|
|
|
|
|
(type_unification_real): Pass new 'flags' argument to call to
|
|
|
|
|
can_convert_arg.
|
2005-08-15 22:38:23 +02:00
|
|
|
|
|
2005-08-12 11:23:43 +02:00
|
|
|
|
2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
|
|
|
|
|
Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21799
|
|
|
|
|
PR c++/8271
|
2006-03-09 19:14:39 +01:00
|
|
|
|
* pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
|
2005-08-12 11:23:43 +02:00
|
|
|
|
explicitly.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-08-12 11:23:43 +02:00
|
|
|
|
2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21799
|
|
|
|
|
Revert my 2005-07-08 patch
|
|
|
|
|
* pt.c (type_unification_real): Remove is_method_argument and
|
|
|
|
|
assoicated checks.
|
|
|
|
|
(fn_type_unification, unify): Adjust type_unification_real calls.
|
|
|
|
|
|
2005-08-12 00:46:29 +02:00
|
|
|
|
2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23266
|
|
|
|
|
* decl2.c (grokfield): Check that method is not static before
|
|
|
|
|
marking it as pure.
|
|
|
|
|
|
2005-08-11 11:23:57 +02:00
|
|
|
|
2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/23219
|
|
|
|
|
* name-lookup.c (pushtag): Process the template type before
|
|
|
|
|
altering the identifier lookup fields. Remove unreachable code
|
|
|
|
|
creating an empty stub decl.
|
|
|
|
|
|
2005-08-10 02:20:32 +02:00
|
|
|
|
2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/20646
|
|
|
|
|
* decl.c (grokdeclarator): Reset storage_class after error.
|
|
|
|
|
|
2005-08-08 19:03:33 +02:00
|
|
|
|
2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/22508
|
|
|
|
|
* init.c (build_new_1): Check for empty candidate list.
|
|
|
|
|
|
2005-08-07 00:38:44 +02:00
|
|
|
|
2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/23191
|
|
|
|
|
* pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
|
|
|
|
|
before calling build_exception_variant.
|
|
|
|
|
|
2005-08-07 00:22:47 +02:00
|
|
|
|
2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/19498
|
|
|
|
|
* pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
|
|
|
|
|
if substitution of template args did not succeed.
|
|
|
|
|
|
2005-08-06 23:25:09 +02:00
|
|
|
|
2005-08-06 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
|
|
* method.c (use_thunk): Call init_insn_lengths.
|
|
|
|
|
|
2005-08-06 07:18:09 +02:00
|
|
|
|
2005-08-05 James A. Morrison <phython@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/22514
|
|
|
|
|
* name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
|
|
|
|
|
sorrycount or errorcount are nonzero.
|
|
|
|
|
|
2005-08-05 23:01:47 +02:00
|
|
|
|
2005-08-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (pushtag): Remove accidental commit from:
|
|
|
|
|
2004-12-21 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
PR c++/19063
|
|
|
|
|
* decl.c (grokdeclarator): Return error_mark_node, not
|
|
|
|
|
void_type_node, to indicate errors.
|
|
|
|
|
* parser.c (cp_parser_template_parameter_list): Robustify.
|
|
|
|
|
(cp_parser_template_parameter): Likewise.
|
|
|
|
|
|
2005-08-01 06:02:26 +02:00
|
|
|
|
2005-08-01 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
|
|
|
|
|
Fix comment typos.
|
|
|
|
|
|
2005-07-29 16:45:54 +02:00
|
|
|
|
2005-07-29 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* method.c: Fix a comment typo.
|
|
|
|
|
|
2005-07-28 20:08:59 +02:00
|
|
|
|
2005-07-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22545
|
|
|
|
|
* call.c (add_builtin_candidate): Adjust for changes in
|
|
|
|
|
representation of pointer-to-member types.
|
|
|
|
|
|
2005-07-28 20:06:47 +02:00
|
|
|
|
2005-07-28 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (check_explicit_specialization): Add visibility logic.
|
|
|
|
|
(lookup_template_class): Likewise.
|
|
|
|
|
(instantiate_class_template): Likewise.
|
|
|
|
|
|
2005-07-27 20:31:36 +02:00
|
|
|
|
2005-07-27 Devang Patel <dpatel@apple.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-07-26 04:38:20 +02:00
|
|
|
|
2005-07-25 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* ptree.c (cxx_print_identifier): Print a leading space if the
|
|
|
|
|
indent level is 0.
|
|
|
|
|
|
2005-07-24 23:38:02 +02:00
|
|
|
|
2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* call.c (convert_for_arg_passing): Check function pointers when
|
|
|
|
|
-Wmissing-format-attribute is activated.
|
|
|
|
|
* typeck.c (convert_for_assignment): Likewise.
|
|
|
|
|
|
2005-07-22 09:31:32 +02:00
|
|
|
|
2005-07-22 Manfred Hollstein <mh@suse.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_declaration): Fix unitialised warnings.
|
|
|
|
|
|
2005-07-21 21:43:47 +02:00
|
|
|
|
2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* class.c (build_base_path): Fix typo.
|
|
|
|
|
|
2005-07-21 20:29:05 +02:00
|
|
|
|
2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/22358
|
|
|
|
|
* class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
|
|
|
|
|
|
2005-07-21 12:33:31 +02:00
|
|
|
|
2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* call.c: Fix comment typo(s).
|
|
|
|
|
* cxx-pretty-print.h: Likewise.
|
|
|
|
|
* name-lookup.c: Likewise.
|
|
|
|
|
* parser.c: Likewise.
|
|
|
|
|
|
2005-07-21 05:53:07 +02:00
|
|
|
|
2005-07-20 Douglas Gregor <doug.gregor@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR c++/2922
|
|
|
|
|
* semantics.c (perform_koenig_lookup): For dependent calls, just
|
|
|
|
|
return the set of functions we've found so far. Later, it will be
|
|
|
|
|
augmented by those found through argument-dependent lookup.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
* name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
|
2005-07-21 16:18:52 +02:00
|
|
|
|
the optimization that skips namespaces where the functions were
|
|
|
|
|
originally found.
|
2005-07-21 05:53:07 +02:00
|
|
|
|
|
Make CONSTRUCTOR use VEC to store initializers.
* c-common.c (complete_array_type): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts.
(pp_c_constructor_elts): New function.
* c-pretty-print.h (pp_c_constructor_elts): Declare.
* c-typeck.c (build_function_call, build_c_cast, digest_init,
struct constructor_stack, struct initializer_stack,
constructor_elements, push_init_level, pop_init_level,
add_pending_init, find_init_member, output_init_element): Update to
cope with VEC in CONSTRUCTOR_ELTS.
* coverage.c (build_fn_info_value, build_ctr_info_value,
build_gcov_info): Likewise.
* expr.c (categorize_ctor_elements_1, store_constructor,
expand_expr_real_1): Likewise.
* fold-const.c (fold_ternary): Likewise.
* gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl,
gimplify_init_constructor, gimplify_expr): Likewise.
* tree-dump.c (dequeue_and_dump): Likewise.
* tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR
node.
* tree-pretty-print.c (dump_generic_node): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* tree-sra.c (generate_element_init_1): Likewise.
* tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
* tree-vect-generic.c (expand_vector_piecewise): Likewise.
* tree-vect-transform.c (vect_get_vec_def_for_operand):
(get_initial_def_for_reduction): Likewise.
* tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses
value handle in annotations.
* tree.c (tree_node_kind, tree_code_size, make_node_stat,
tree_node_structure): Add support for constr_kind.
(build_vector_from_ctor, build_constructor_single,
build_constructor_from_list): New functions.
(build_constructor): Update to take a VEC instead of a TREE_LIST.
(simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree):
Update to cope with VEC in CONSTRUCTOR_ELTS.
* tree.def (CONSTRUCTOR): Make it a tcc_exceptional node.
* tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT,
CONSTRUCTOR_APPEND_ELT): New macros.
(struct constructor_elt, struct tree_constructor): New data types.
(union tree_node): Add tree_constructor field.
* treestruct.def: Define TS_CONSTRUCTOR.
* varasm.c (const_hash_1, compare_constant, copy_constant,
compute_reloc_for_constant, output_addressed_constants,
initializer_constant_valid_p, output_constant,
array_size_for_constructor, output_constructor): Update to cope with
VEC in CONSTRUCTOR_ELTS.
* vec.h (VEC_empty, VEC_copy): New macros.
ada/
Make CONSTRUCTOR use VEC to store initializers.
* decl.c (gnat_to_gnu_entity): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* trans.c (extract_values): Likewise.
* utils.c (convert, remove_conversions): Likewise.
* utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
gnat_build_constructor): Likewise.
cp/
Make CONSTRUCTOR use VEC to store initializers.
* call.c (convert_default_arg): Update call to digest_init.
* class.c (dump_class_hierarchy, dump_array): Update to cope with
VEC in CONSTRUCTOR_ELTS.
* cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
(finish_compound_literal, digest_init): Update declaration.
* decl.c (struct reshape_iter): New data type.
(reshape_init_array): Rename to...
(reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
(reshape_init): Rewrite from scratch. Split parts into...
(reshape_init_array, reshape_init_vector, reshape_init_class,
reshape_init_r): New functions.
(check_initializer): Update call to reshape_init. Remove obsolete
code.
(initialize_artificial_var, cp_complete_array_type): Update to cope
with VEC in CONSTRUCTOR_ELTS.
* decl2.c (grokfield): Update calls to digest_init.
(mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
* error.c (dump_expr_init_vec): New function.
(dump_expr): Use dump_expr_init_vec.
* init.c (build_zero_init, build_vec_init): Update to cope with VEC
in CONSTRUCTOR_ELTS.
(expand_default_init): Update call to digest_init.
* parser.c (cp_parser_postfix_expression): Use a VEC for the
initializers.
(cp_parser_initializer_list): Build a VEC of initializers.
* pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
in CONSTRUCTOR_ELTS.
* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
ptm_initializer, class_initializer, get_pseudo_ti_init): Use
build_constructor_from_list instead of build_constructor.
* semantics.c (finish_compound_literal): Update call to digest_init.
* tree.c (stabilize_init): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* typeck.c (build_ptrmemfunc1): Likewise.
* typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
Likewise.
(store_init_value): Use build_constructor_from_list and update call
to digest_init.
(digest_init): Rewrite.
(process_init_constructor): Rewrite from scratch. Split into...
(process_init_constructor_array, picflag_from_initializer,
process_init_constructor_record, process_init_constructor_union):
New functions.
(PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
New macros.
(build_functional_cast): Use build_constructor_from_list instead of
build_constructor.
fortran/
Make CONSTRUCTOR use VEC to store initializers.
* trans-array.c (gfc_build_null_descriptor,
gfc_trans_array_constructor_value, gfc_conv_array_initializer):
Update to cope with VEC in CONSTRUCTOR_ELTS.
* trans-common.c (create_common): Likewise.
* trans-expr.c (gfc_conv_structure): Likewise.
* trans-stmt.c (gfc_trans_character_select): Use
build_constructor_from_list instead of build_constructor.
java/
Make CONSTRUCTOR use VEC to store initializers.
* check-init.c (check_init): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* class.c (make_field_value, make_method_value, get_dispatch_table,
make_class_data, emit_symbol_table, emit_catch_table,
emit_assertion_table): Use build_constructor_from_list instead of
build_constructor.
* constants.c (build_constants_constructor): Likewise.
* java-gimplify.c (java_gimplify_new_array_init): Update to cope with
VEC in CONSTRUCTOR_ELTS.
* java-tree.h (START_RECORD_CONSTRUCTOR, PUSH_SUPER_VALUE,
PUSH_FIELD_VALUE, FINISH_RECORD_CONSTRUCTOR): Create a VEC instead
of a TREE_LIST.
* jcf-write.c (generate_bytecode_insns): Update to cope with VEC in
CONSTRUCTOR_ELTS.
* parse.y (build_new_array_init): Use build_constructor_from_list
instead of build_constructor.
(patch_new_array_init): Update to cope with VEC in
CONSTRUCTOR_ELTS.
(array_constructor_check_entry): Likewise.
objc/
Make CONSTRUCTOR use VEC to store initializers.
* objc-act.c (objc_build_constructor): Use build_constructor_from_list
instead of build_constructor.
testsuite/
Make CONSTRUCTOR use VEC to store initializers.
* g++.dg/ext/complit3.C: Check for specific error messages.
* g++.dg/init/brace2.C: Update error message.
* g++.dg/warn/Wbraces2.C: Likewise.
From-SVN: r102182
2005-07-20 03:19:59 +02:00
|
|
|
|
2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
|
|
|
|
|
|
|
|
|
|
Make CONSTRUCTOR use VEC to store initializers.
|
|
|
|
|
* call.c (convert_default_arg): Update call to digest_init.
|
|
|
|
|
* class.c (dump_class_hierarchy, dump_array): Update to cope with
|
|
|
|
|
VEC in CONSTRUCTOR_ELTS.
|
|
|
|
|
* cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
|
|
|
|
|
(finish_compound_literal, digest_init): Update declaration.
|
|
|
|
|
* decl.c (struct reshape_iter): New data type.
|
|
|
|
|
(reshape_init_array): Rename to...
|
|
|
|
|
(reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
|
|
|
|
|
(reshape_init): Rewrite from scratch. Split parts into...
|
|
|
|
|
(reshape_init_array, reshape_init_vector, reshape_init_class,
|
|
|
|
|
reshape_init_r): New functions.
|
|
|
|
|
(check_initializer): Update call to reshape_init. Remove obsolete
|
|
|
|
|
code.
|
|
|
|
|
(initialize_artificial_var, cp_complete_array_type): Update to cope
|
|
|
|
|
with VEC in CONSTRUCTOR_ELTS.
|
|
|
|
|
* decl2.c (grokfield): Update calls to digest_init.
|
|
|
|
|
(mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
|
|
|
|
|
* error.c (dump_expr_init_vec): New function.
|
|
|
|
|
(dump_expr): Use dump_expr_init_vec.
|
|
|
|
|
* init.c (build_zero_init, build_vec_init): Update to cope with VEC
|
|
|
|
|
in CONSTRUCTOR_ELTS.
|
|
|
|
|
(expand_default_init): Update call to digest_init.
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Use a VEC for the
|
|
|
|
|
initializers.
|
|
|
|
|
(cp_parser_initializer_list): Build a VEC of initializers.
|
|
|
|
|
* pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
|
|
|
|
|
in CONSTRUCTOR_ELTS.
|
|
|
|
|
* rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
|
|
|
|
|
ptm_initializer, class_initializer, get_pseudo_ti_init): Use
|
|
|
|
|
build_constructor_from_list instead of build_constructor.
|
|
|
|
|
* semantics.c (finish_compound_literal): Update call to digest_init.
|
|
|
|
|
* tree.c (stabilize_init): Update to cope with VEC in
|
|
|
|
|
CONSTRUCTOR_ELTS.
|
|
|
|
|
* typeck.c (build_ptrmemfunc1): Likewise.
|
|
|
|
|
* typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
|
|
|
|
|
Likewise.
|
|
|
|
|
(store_init_value): Use build_constructor_from_list and update call
|
|
|
|
|
to digest_init.
|
|
|
|
|
(digest_init): Rewrite.
|
|
|
|
|
(process_init_constructor): Rewrite from scratch. Split into...
|
|
|
|
|
(process_init_constructor_array, picflag_from_initializer,
|
|
|
|
|
process_init_constructor_record, process_init_constructor_union):
|
|
|
|
|
New functions.
|
|
|
|
|
(PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
|
|
|
|
|
New macros.
|
|
|
|
|
(build_functional_cast): Use build_constructor_from_list instead of
|
|
|
|
|
build_constructor.
|
|
|
|
|
|
2005-07-18 17:44:36 +02:00
|
|
|
|
2005-07-18 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22263
|
|
|
|
|
* cp-tree.h (instantiate_decl): Change prototype.
|
|
|
|
|
* decl2.c (mark_used): Adjust accordingly.
|
|
|
|
|
* pt.c (do_decl_instantiation): Likewise.
|
|
|
|
|
(instantiate_class_member): Likewise.
|
|
|
|
|
(instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
|
|
|
|
|
Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
|
|
|
|
|
that has no definition available.
|
|
|
|
|
(instantiate_pending_templates): Adjust call to instantiate_decl.
|
|
|
|
|
|
2005-07-18 00:02:09 +02:00
|
|
|
|
2005-07-17 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22139
|
|
|
|
|
* cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
|
|
|
|
|
* decl.c (duplicate_decls): Re-register template specializations
|
|
|
|
|
for functions that have DECL_TEMLPLATE_INFO, even if they do not
|
|
|
|
|
have DECL_TEMPLATE_INSTANTIATION set.
|
|
|
|
|
|
2005-07-16 16:20:45 +02:00
|
|
|
|
2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* call.c (diagnostic_fn_t): New.
|
|
|
|
|
(build_temp, convert_like_real): Use diagnostic_fn_t.
|
|
|
|
|
|
2005-07-16 02:25:01 +02:00
|
|
|
|
2005-07-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22204
|
|
|
|
|
* repo.c (repo_emit_p): Robustify.
|
|
|
|
|
|
2005-07-15 22:22:39 +02:00
|
|
|
|
2005-07-14 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
|
|
|
|
Fix PR c++/22452
|
|
|
|
|
* tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
|
|
|
|
|
|
2005-07-15 18:10:05 +02:00
|
|
|
|
2005-07-15 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/22132
|
|
|
|
|
* call.c (implicit_conversion): Add c_cast_p parameter.
|
|
|
|
|
(standard_conversion): Likewise. Allow conversions between
|
|
|
|
|
differently-qualified pointer types when performing a C-style
|
|
|
|
|
cast.
|
|
|
|
|
(add_function_candidate): Adjust callee.
|
|
|
|
|
(build_builtin_candidate): Likewise.
|
|
|
|
|
(build_user_type_conversion_1): Likewise.
|
|
|
|
|
(conditional_conversion): Likewise.
|
|
|
|
|
(can_convert_arg): Likewise.
|
|
|
|
|
(can_convert_arg_bad): Likewise.
|
|
|
|
|
(perform_implicit_conversion): Likewise.
|
|
|
|
|
* cp-tree.h (comp_ptr_ttypes_const): Declare.
|
|
|
|
|
* typeck.c (comp_ptr_ttypes_const): Give it external linkage.
|
|
|
|
|
Return bool.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-07-12 18:07:38 +02:00
|
|
|
|
2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20172
|
|
|
|
|
* pt.c (tsubst_template_parms): Check for invalid non-type
|
|
|
|
|
parameters.
|
|
|
|
|
|
2005-07-09 17:45:09 +02:00
|
|
|
|
2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
|
|
|
|
|
decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
|
|
|
|
|
(cp_init_ts): Call init_shadowed_var_for_decl.
|
|
|
|
|
Remove include of gt-cp-cp-lang.h.
|
|
|
|
|
* cp-objcp-common.c (shadowed_var_for_decl,
|
|
|
|
|
decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
|
|
|
|
|
cp-lang.c.
|
|
|
|
|
(init_shadowed_var_for_decl): New function to initialize
|
|
|
|
|
shadowed_var_for_decl.
|
|
|
|
|
Include gt-cp-cp-objcp-common.h.
|
|
|
|
|
* Make-lang.in (gt-cp-lang.h): Remove.
|
|
|
|
|
(gt-cp-cp-objcp-common.h): Add.
|
|
|
|
|
(cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
|
|
|
|
|
(cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
|
|
|
|
|
* config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
|
|
|
|
|
* cp-tree (init_shadowed_var_for_decl): Add prototype.
|
|
|
|
|
|
2005-07-09 01:37:11 +02:00
|
|
|
|
2005-07-08 Daniel Berlin <dberlin@dberlin.org>
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-07-09 01:37:11 +02:00
|
|
|
|
* Make-lang.in: Add gt-cp-lang.h.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
(cp-lang.o): Ditto.
|
2005-07-09 01:37:11 +02:00
|
|
|
|
* class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
|
|
|
|
|
the field.
|
|
|
|
|
* config-lang.in: Add cp-lang.c to gtfiles.
|
|
|
|
|
* cp-lang.c: Include hashtab.h.
|
|
|
|
|
(cp_init_ts): New function.
|
|
|
|
|
(LANG_HOOK_INIT_TS): Use macro.
|
|
|
|
|
(decl_shadowed_for_var_lookup): New function.
|
|
|
|
|
(decl_shadowed_for_var_insert): Ditto.
|
|
|
|
|
* cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
|
|
|
|
|
(NON_THUNK_FUNCTION_CHECK): Ditto.
|
|
|
|
|
(DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
|
|
|
|
|
(DECL_INIT_PRIORITY): Ditto.
|
|
|
|
|
(DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
|
|
|
|
|
(DECL_SHADOWED_FOR_VAR): Use hashtable.
|
|
|
|
|
(SET_DECL_SHADOWED_FOR_VAR): Ditto.
|
|
|
|
|
* decl.c (duplicate_decls): Update for new/updated structures.
|
|
|
|
|
(poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
|
|
|
|
|
* decl2.c (start_static_initialization_or_destruction): Deal with
|
2006-01-18 01:15:37 +01:00
|
|
|
|
priority.
|
2005-07-09 01:37:11 +02:00
|
|
|
|
* pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
|
|
|
|
|
SET_DECL_RTL.
|
|
|
|
|
* tree.c (handle_init_priority_attribute): Handle priority.
|
|
|
|
|
|
2005-07-08 13:05:51 +02:00
|
|
|
|
2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21799
|
|
|
|
|
* pt.c (type_unification_real): Add is_method argument. Use it
|
|
|
|
|
for this pointer unification.
|
|
|
|
|
(fn_type_unification): Adjust type_unification_real call.
|
|
|
|
|
(unify): Likewise.
|
|
|
|
|
|
2005-07-07 16:38:33 +02:00
|
|
|
|
2005-07-07 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* pt.c (type_unification_real): Remove allow_incomplete argument.
|
|
|
|
|
Remove unreachable code.
|
|
|
|
|
(fn_type_unification): Adjust call to type_unification_real.
|
|
|
|
|
(unify): Likewise.
|
|
|
|
|
|
Makefile.in: Adjust dependencies.
2005-07-05 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Adjust dependencies.
* tree-pass.h: Add new passes and passes formerly in tree-optimize.c.
* basic-block.h (duplicate_computed_gotos): Remove, it is now static.
* alias.c (rest_of_handle_cfg, pass_cfg): New.
* bb-reorder.c (duplicate_computed_gotos): Make it static.
* cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of
rest_of_compilation.
* bb-reorder.c (gate_duplicate_computed_gotos,
pass_duplicate_computed_gotos, gate_handle_reorder_blocks,
rest_of_handle_reorder_blocks, pass_reorder_blocks,
gate_handle_partition_blocks, rest_of_handle_partition_blocks,
pass_partition_blocks): New.
* bt-load.c (gate_handle_branch_target_load_optimize,
rest_of_handle_branch_target_load_optimize,
pass_branch_target_load_optimize): New.
* cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2,
pass_jump2): New.
* cfglayout.c (pass_insn_locators_initialize): New.
* cfgrtl.c (pass_free_cfg): New.
* combine.c (gate_handle_combine, rest_of_handle_combine,
pass_combine): New.
* cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse,
gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New.
* emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New.
* except.c (pass_set_nothrow_function_flags,
pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh,
pass_rtl_eh): New.
* final.c (pass_compute_alignments, rest_of_handle_final, pass_final,
rest_of_handle_shorten_branches, pass_shorten_branches,
rest_of_clean_state, pass_clean_state): New.
* flow.c (pass_recompute_reg_usage, gate_remove_death_notes,
rest_of_handle_remove_death_notes, pass_remove_death_notes,
rest_of_handle_life, pass_life, rest_of_handle_flow2,
pass_flow2): New.
* function.c (pass_instantiate_virtual_regs, pass_init_function,
rest_of_handle_check_leaf_regs, pass_leaf_regs): New.
* gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse,
pass_gcse): New.
* global.c (rest_of_handle_global_alloc, pass_global_alloc): New.
* ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion,
pass_rtl_ifcvt, gate_handle_if_after_combine,
rest_of_handle_if_after_combine, pass_if_after_combine,
gate_handle_if_after_reload, rest_of_handle_if_after_reload,
pass_if_after_reload): New.
* integrate.c (pass_initial_value_sets): New.
* jump.c (pass_cleanup_barriers, purge_line_number_notes,
pass_purge_lineno_notes): New.
* mode-switching.c (rest_of_handle_mode_switching,
pass_mode_switching): New.
* local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New.
* loop-init.c (gate_handle_loop2, rest_of_handle_loop2,
pass_loop2): New.
* loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize,
pass_loop_optimize): New.
* modulo-sched.c (gate_handle_sms, rest_of_handle_sms,
pass_sms): New.
* postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2,
pass_gcse2): New.
* postreload.c (gate_handle_postreload, rest_of_handle_postreload,
pass_postreload_cse): New.
* profile.c (gate_handle_profiling, pass_profiling,
rest_of_handle_branch_prob, pass_branch_prob): New.
* recog.c (pass pass_split_for_shorten_branches, gate_do_final_split,
pass_split_before_regstack, gate_handle_split_before_regstack,
gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2,
rest_of_handle_split_all_insns, pass_split_all_insns): New.
* reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs,
pass_stack_regs): New.
* regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove,
gate_handle_stack_adjustments, rest_of_handle_stack_adjustments,
pass_stack_adjustments): New.
* regrename.c (gate_handle_regrename, rest_of_handle_regrename,
pass_regrename): New.
* reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots,
pass_delay_slots, gate_handle_machine_reorg,
rest_of_handle_machine_reorg, pass_machine_reorg): New.
* rtl.h (extern void purge_line_number_notes): New.
* sched-rgn.c (gate_handle_sched, rest_of_handle_sched,
gate_handle_sched2, rest_of_handle_sched2, pass_sched,
pass_sched2): New.
* tracer.c (gate_handle_tracer, rest_of_handle_tracer,
pass_tracer): New.
* value-prof.c (gate_handle_value_profile_transformations,
rest_of_handle_value_profile_transformations,
pass_value_profile_transformations): New.
* var-tracking.c (gate_handle_var_tracking,
pass_variable_tracking): New.
* web.c (gate_handle_web, rest_of_handle_web, pass_web): New.
* passes.c (open_dump_file, close_dump_file, rest_of_handle_final,
rest_of_handle_delay_slots, rest_of_handle_stack_regs,
rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
rest_of_handle_old_regalloc, rest_of_handle_regrename,
rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks,
rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2,
rest_of_handle_gcse2, rest_of_handle_regmove,
rest_of_handle_tracer, rest_of_handle_if_conversion,
rest_of_handle_if_after_combine, rest_of_handle_if_after_reload,
rest_of_handle_web, rest_of_handle_branch_prob,
rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
rest_of_handle_jump_bypass, rest_of_handle_combine,
rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
rest_of_handle_gcse, rest_of_handle_loop_optimize,
rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize,
rest_of_handle_mode_switching, rest_of_handle_jump,
rest_of_handle_eh, rest_of_handle_stack_adjustments,
rest_of_handle_flow2, rest_of_handle_jump2,
rest_of_handle_peephole2, rest_of_handle_postreload,
rest_of_handle_shorten_branches, rest_of_clean_state,
rest_of_compilation): Remove.
* cgraphunit.c (ipa_passes): Moved from tree-optimize.c.
* passes.c (dump_flags, in_gimple_form, all_passes,
all_ipa_passes, all_lowering_passes, register_one_dump_file,
register_dump_files, next_pass_1, last_verified, execute_todo,
execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved
from tree-optimize.c.
(init_optimization_passes): Moved from tree-optimize.c,
adding the RTL optimizations.
* tree-dump.h (dump_info_p, dump_flag): Moved from tree.h.
* tree-optimize.c (dump_flags, in_gimple_form, all_passes,
all_ipa_passes, all_lowering_passes, register_one_dump_file,
register_dump_files, next_pass_1, last_verified, execute_todo,
execute_one_pass, execute_pass_list, execute_ipa_pass_list,
init_tree_optimization_passes, ipa_passes): Delete.
* tree-pass.h (enum tree_dump_index): Moved from tree.h, removing
the RTL dumps.
(TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p,
dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved
from tree.h.
(ipa_passes): Remove.
(all_passes, all_ipa_passes, all_lowering_passes): Now extern.
* tree.h (enum tree_dump_index, TDF_*, get_dump_file_name,
dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node,
dump_switch_p, dump_flag_name): Moved to tree-pass.h.
(dump_info_p, dump_flag): Moved to tree-dump.h.
* Makefile.in: Adjust dependencies for tree-pretty-print.c,
cgraph.c, opts.c.
* passes.c (finish_optimization_passes): Use dump_begin
and dump_end, TDI_end.
(gate_rest_of_compilation): New.
(pass_rest_of_compilation): Use it.
(gate_postreload, pass_postreload): New.
* toplev.c (general_init): Rename init_tree_optimization_passes.
* toplev.h (init_tree_optimization_passes): Rename to
init_optimizations_passes.
* tree-dump.c (dump_flag): Make static.
(dump_files): Remove RTL dumps.
* tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
pass_cleanup_cfg, pass_free_cfg_annotations,
pass_cleanup_cfg_post_optimizing, pass_free_datastructures,
pass_init_datastructures, pass_fixup_cfg): Make non-static.
* tree-pretty-print.c: Include tree-pass.h.
* cgraph.c: Include tree-dump.h.
cp:
2005-07-05 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (class.o, decl2.o): Adjust dependencies.
* class.c: Include tree-dump.h.
* decl2.c: Include tree-dump.h.
java:
2005-07-05 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in (parse.o): Adjust dependencies.
* parse.y: Include tree-dump.h.
From-SVN: r101627
2005-07-05 18:20:53 +02:00
|
|
|
|
2005-07-05 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
|
|
|
|
* Makefile.in (class.o, decl2.o): Adjust dependencies.
|
|
|
|
|
* class.c: Include tree-dump.h.
|
|
|
|
|
* decl2.c: Include tree-dump.h.
|
2006-01-18 01:15:37 +01:00
|
|
|
|
|
2005-07-03 08:50:51 +02:00
|
|
|
|
2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
* dump.c: Use dump_string_field.
|
|
|
|
|
|
c-common.h (GCC_DIAG_STYLE): Define.
* c-common.h (GCC_DIAG_STYLE): Define.
* c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC
version for format checking to 4.1.
* c-format.c: Include toplev.h after c-common.h.
(enum format_type): Add gcc_tdiag_format_type.
(gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
(format_types_orig): Add gcc_tdiag.
(init_dynamic_diag_info): Support gcc_tdiag formats.
(handle_format_attribute): Likewise.
* toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
(GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC
version for format checking to 4.1.
(warning0, warning, error, pedwarn, sorry): Use
ATTRIBUTE_GCC_DIAG.
* config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
(finish_aliases_1): Do not use %qE.
* config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
Correct format bugs.
* config/v850/v850-protos.h (v850_output_aligned_bss): Change size
parameter to unsigned HOST_WIDE_INT.
* config/v850/v850.c (v850_output_aligned_bss): Likewise.
cp:
* cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
minimum GCC version for format checking to 4.1.
testsuite:
* gcc.dg/format/gcc_diag-1.c: Update.
From-SVN: r101543
2005-07-03 02:38:49 +02:00
|
|
|
|
2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
|
|
|
|
|
minimum GCC version for format checking to 4.1.
|
|
|
|
|
|
2005-07-03 00:17:53 +02:00
|
|
|
|
2005-07-02 Kazu Hirata <kazu@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cc1plus-checksum.c): Use
|
|
|
|
|
build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
|
|
|
|
|
|
c.opt, [...]: Remove "." from end of help texts.
* c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
config/rs6000/rs6000.opt, params.def: Remove "." from end of help
texts.
* config/avr/avr.c: Do not use '`' as left quote.
* config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
Remove "." from end of diagnostics. Make diagnostics start with
lowercase letter.
cp:
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
diagnostics.
fortran:
* lang.opt: Remove "." from end of help texts.
objc:
* objc-act.c: Use %q to quote in diagnostics.
From-SVN: r101533
2005-07-02 15:19:59 +02:00
|
|
|
|
2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c, parser.c: Use %q, %< and %> to quote in
|
|
|
|
|
diagnostics.
|
|
|
|
|
|
toplev.c (default_tree_printer): Handle setting location with '+' flag.
2005-07-02 Zack Weinberg <zack@codesourcery.com>
Joseph S. Myers <joseph@codesourcery.com>
* toplev.c (default_tree_printer): Handle setting location with
'+' flag.
* c-objc.common.c (c_tree_printer): Likewise.
* c-format.c (gcc_diag_flag_specs): Add '+'.
(gcc_cdiag_char_table): Allow '+' flag for tree formats.
(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
formats.
* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
config/v850/v850.c, function.c, stor-layout.c, toplev.c,
tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end
of diagnostics. Use %q+D not %s for a decl. Do not pass excess
format arguments where %J is used without %D.
cp:
* error.c (location_of): Add comment.
(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
or cp_pedwarn_at. Mark up some diagnostic strings with N_.
java:
* class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
flag for quoting.
objc:
* objc-act.c: Use '+' flag instead of %J. Use 'q' flag for
quoting.
testsuite:
* gcc.dg/format/gcc_diag-1.c: Update.
From-SVN: r101532
2005-07-02 12:55:32 +02:00
|
|
|
|
2005-07-02 Zack Weinberg <zack@codesourcery.com>
|
2006-03-09 19:14:39 +01:00
|
|
|
|
Joseph S. Myers <joseph@codesourcery.com>
|
toplev.c (default_tree_printer): Handle setting location with '+' flag.
2005-07-02 Zack Weinberg <zack@codesourcery.com>
Joseph S. Myers <joseph@codesourcery.com>
* toplev.c (default_tree_printer): Handle setting location with
'+' flag.
* c-objc.common.c (c_tree_printer): Likewise.
* c-format.c (gcc_diag_flag_specs): Add '+'.
(gcc_cdiag_char_table): Allow '+' flag for tree formats.
(format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
formats.
* c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
config/v850/v850.c, function.c, stor-layout.c, toplev.c,
tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end
of diagnostics. Use %q+D not %s for a decl. Do not pass excess
format arguments where %J is used without %D.
cp:
* error.c (location_of): Add comment.
(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
or cp_pedwarn_at. Mark up some diagnostic strings with N_.
java:
* class.c, decl.c, expr.c: Use '+' flag instead of %J. Use 'q'
flag for quoting.
objc:
* objc-act.c: Use '+' flag instead of %J. Use 'q' flag for
quoting.
testsuite:
* gcc.dg/format/gcc_diag-1.c: Update.
From-SVN: r101532
2005-07-02 12:55:32 +02:00
|
|
|
|
|
|
|
|
|
* error.c (location_of): Add comment.
|
|
|
|
|
(locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
|
|
|
|
|
* cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
|
|
|
|
|
* call.c, class.c, decl.c, decl2.c, friend.c, init.c,
|
|
|
|
|
name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
|
|
|
|
|
typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
|
|
|
|
|
or cp_pedwarn_at. Mark up some diagnostic strings with N_.
|
|
|
|
|
|
2006-01-18 01:15:37 +01:00
|
|
|
|
2005-06-30 Daniel Berlin <dberlin@dberlin.org>
|
|
|
|
|
|
2005-07-01 21:43:37 +02:00
|
|
|
|
* decl.c (require_complete_types_for_parms): Call relayout_decl
|
|
|
|
|
instead of layout_decl.
|
|
|
|
|
|
pretty-print.h (PP_NL_ARGMAX): New.
gcc:
* pretty-print.h (PP_NL_ARGMAX): New.
(text_info): Add locus.
(struct chunk_info): New.
(output_buffer): Add formatted_obstack, chunk_obstack, and
cur_chunk_array. Change obstack to a pointer.
(pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
(struct pretty_print_info): Replace ideal_maximum_length and
prefixing_rule with wrapping.
(pp_line_cutoff, pp_prefixing_rule): Update to match.
Update prototypes and wrapper macros throughout.
* pretty-print.c (pp_formatted_text_data, pp_append_r)
(pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
(pp_base_last_position_in_text, pp_base_newline, pp_base_character):
Update for changes to pp structure.
(pp_base_prepare_to_format, pp_base_format_text): Delete.
(pp_base_format, pp_base_output_formatted_text): New functions.
(pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
(pp_verbatim): Clear text.locus.
(pp_printf): Likewise. Use pp_format and pp_output_formatted_text.
* c-objc-common.c (c_tree_printer): Update function signature.
* diagnostic.c (diagnostic_initialize): Update for changes to
pp structure.
(diagnostic_report_diagnostic): Call pp_format and then
pp_output_formatted_text.
(verbatim): Clear text.locus.
* diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
Update for changes to pp structure.
* c-lang.c: No need to include c-pretty-print.h.
* Makefile.in: Remove bogus line containing only a tab.
(c-lang.o): Update dependencies.
* toplev.c (announce_function): Don't use verbatim.
(default_tree_printer): Update signature.
* objc/objc-lang.c: No need to include c-pretty-print.h.
* objc/Make-lang.in: Update dependencies.
gcc/cp:
* cp-lang.c: No need to include cxx-pretty-print.h.
* error.c (cp_printer): Update signature. No need to process
flags.
(print_instantiation_partial_context): Output last newline
with pp_base_newline.
* Make-lang.in: Update dependencies.
gcc/objcp:
* objcp-lang.c: No need to include cxx-pretty-print.h.
* Make-lang.in: Update dependencies.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r101481
2005-07-01 01:09:06 +02:00
|
|
|
|
2005-06-30 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* cp-lang.c: No need to include cxx-pretty-print.h.
|
|
|
|
|
* error.c (cp_printer): Update signature. No need to process
|
|
|
|
|
flags.
|
|
|
|
|
(print_instantiation_partial_context): Output last newline
|
|
|
|
|
with pp_base_newline.
|
|
|
|
|
* Make-lang.in: Update dependencies.
|
|
|
|
|
|
2005-06-30 14:17:52 +02:00
|
|
|
|
2005-06-30 Steven Bosscher <stevenb@suse.de>
|
|
|
|
|
|
|
|
|
|
* decl.c (start_decl): Replace DECL_THREAD_LOCAL with
|
|
|
|
|
DECL_THREAD_LOCAL_P.
|
|
|
|
|
(cp_finish_decl): Likewise.
|
|
|
|
|
(grokvardecl): Set the default DECL_TLS_MODEL here.
|
|
|
|
|
|
target.h (invalid_conversion, [...]): New hooks.
* target.h (invalid_conversion, invalid_unary_op,
invalid_binary_op): New hooks.
* target-def.h (TARGET_INVALID_CONVERSION,
TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
TARGET_INITIALIZER): Likewise.
* hooks.h (hook_constcharptr_tree_tree_null,
hook_constcharptr_int_tree_null,
hook_constcharptr_int_tree_tree_null): New.
* hooks.c (hook_constcharptr_tree_tree_null,
hook_constcharptr_int_tree_null,
hook_constcharptr_int_tree_tree_null): Likewise.
* gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
* c-convert.c (convert): Use invalid_conversion hook.
* c-typeck.c (build_unary_op): Use invalid_unary_op hook.
(build_binary_op): Use invalid_binary_op hook.
* config/ia64/ia64-modes.def: Define RFmode.
* config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
(ia64_expand_movxf_movrf): New.
* config/ia64/ia64.md (movxf): Move code to
ia64_expand_movxf_movrf.
(movrf, movrf_internal): New.
* ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
(spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
Add mode parameter. Make static.
(ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
as well as XFmode.
(ia64_function_arg, ia64_function_value, ia64_register_move_cost,
ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
(ia64_init_builtins): Set up __fpreg as RFmode.
(ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
cp:
* cvt.c (ocp_convert): Use invalid_conversion hook.
* typeck.c (build_binary_op): Use invalid_binary_op hook.
(build_unary_op): Use invalid_unary_op hook.
testsuite:
* g++.dg/ext/fpreg1.C, gcc.target/ia64/fpreg-1.c,
gcc.target/ia64/fpreg-2.c: New tests.
From-SVN: r101391
2005-06-28 23:55:24 +02:00
|
|
|
|
2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cvt.c (ocp_convert): Use invalid_conversion hook.
|
|
|
|
|
* typeck.c (build_binary_op): Use invalid_binary_op hook.
|
|
|
|
|
(build_unary_op): Use invalid_unary_op hook.
|
|
|
|
|
|
Makefile.in: Set and use UNWIND_H.
2005-06-28 Paul Brook <paul@codesourcery.com>
gcc/
* Makefile.in: Set and use UNWIND_H. Install as unwind.h.
* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
* except.c (add_ehspec_entry): Generate arm eabi filter lists.
(assign_filter_values): Ditto.
(output_ttype): New function.
(output_function_exception_table): Use output_ttype. Generate arm
eabi filter lists.
(default_init_unwind_resume_libfunc): New function.
* except.h (default_init_unwind_resume_libfunc): Add prototype.
* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
* opts.c (decode_options): Use targetm.unwind_tables_default.
* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
and arm_eabi_unwinder.
* unwind-c.c: Support Arm EABI unwinder.
* unwind.h: Rename ...
* unwind-generic.h: ... To this.
* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
(TARGET_UNWID_TABLES_DEFAULT): Document.
* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
Define.
(thumb_pushpop, thumb_output_function_prologue): Output unwinding
directives.
(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
!TARGET_UNWIND_INFO.
(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
* config/arm/lib1funcs.asm: Include libunwind.S.
* config/arm/libgcc-bpabi.ver: Add unwinding routines.
* config/arm/libunwind.S: New file.
* config/arm/pr-support.c: New file.
* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
* config/arm/unwind-arm.c: New file.
* config/arm/unwind-arm.h: New file.
* config/i386/t-netware (USER_H): Remove unwind.h.
* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
gcc/cp/
* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
* except.c: Include target.h.
(init_exception_processing): Initialize unwind_resume_libfunc.
* doc/tm.texi: Document TARGET_ASM_TTYPE
gcc/ada/
* misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
gcc/java/
* decl.c (java_init_decl_processing): Call
default_init_unwind_resume_libfunc.
gcc/objc/
* objc-act.c (objc_init_exceptions): Call
default_init_unwind_resume_libfunc.
libstdc++/
* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Check for
__cxa_end_cleanup.
* libsupc++/Makefile.am (sources): Add eh_call.c and eh_arm.c.
* libsupc++/eh_arm.cc: New file.
* libsupc++/eh_call.cc: New file.
* libsupc++/eh_catch.cc (__cxa_get_exception_ptr): Use
__gxx_caught_object.
(__cxa_begin_catch): Ditto. Use __is_gxx_exception_class. Call
_Unwind_Complete when using the ARM EABI.
(__cxa_end_catch): Use __is_gxx_exception_class.
* libsupc++/eh_personality.cc: Define NO_SIZE_OF_ENCODED_VALUE when
using the ARM EABI.
(save_caught_exception, restore_caught_exception): New functions.
(_throw_typet): New typedef.
(get_ttype_entry, get_adjusted_ptr, check_exception_spec): Add ARM
EABI implementations.
(PERSONALITY_FUNCTION): Use new functions. Addd support for ARM EABI
unwinding libary.
(__cxa_unexpected): Disable when using the ARM EABI.
* libsupc++/eh_throw.cc (__cxa_throw): Use __GXX_INIT_EXCEPTION_CLASS.
(__cxa_rethrow): Use __is_gxx_exception_class. Call
_Unwind_RaiseException when using the ARM EABI.
* libsupc++/unwind-cxx.h (struct __cxa_exception): Add fields for ARM
EABI semantics.
(struct __cxa_eh_globals): Ditto.
(__cxa_call_terminate): Add prototype.
(__cxa_type_match, __cxa_begin_cleanup, __cxa_end_cleanup): Add
prototypes.
(__get_exception_header_from_obj, __get_exception_header_from_ue):
Move earlier in file.
(__is_gxx_exception_class, __GXX_INIT_EXCEPTION_CLASS,
__gxx_caught_object): New functions.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* libmath/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* src/Makefie.in: Regenerate.
* testsuite/makefile.in: Regenerate.
From-SVN: r101385
2005-06-28 21:52:27 +02:00
|
|
|
|
2005-06-28 Paul Brook <paul@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cp/except.o): Depend on $(TARGET_H)
|
|
|
|
|
* except.c: Include target.h.
|
|
|
|
|
(init_exception_processing): Initialize unwind_resume_libfunc.
|
|
|
|
|
* doc/tm.texi: Document TARGET_ASM_TTYPE
|
|
|
|
|
|
2005-06-26 23:54:24 +02:00
|
|
|
|
2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* call.c (build_over_call): Pass in named argument list to
|
|
|
|
|
`check_function_arguments'.
|
|
|
|
|
* typeck.c (build_function_call): Likewise.
|
|
|
|
|
|
2005-06-26 23:50:32 +02:00
|
|
|
|
2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (lang_check_failed): Add noreturn attribute.
|
|
|
|
|
|
2005-06-25 02:59:41 +02:00
|
|
|
|
2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* all files: Update FSF address in copyright headers.
|
|
|
|
|
|
2005-06-23 16:44:21 +02:00
|
|
|
|
2005-06-23 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19317
|
|
|
|
|
* semantics.c (simplify_aggr_init_expr): Use
|
|
|
|
|
CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
|
|
|
|
|
|
2005-06-23 00:47:26 +02:00
|
|
|
|
2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* pt.c (register_specialization): Remove superfluous assertion.
|
|
|
|
|
|
2005-06-18 17:07:28 +02:00
|
|
|
|
2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* call.c (convert_like_real): Add format attribute.
|
|
|
|
|
* typeck.c (check_for_casting_away_constness,
|
|
|
|
|
build_static_cast_1): Likewise.
|
|
|
|
|
* typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
|
|
|
|
|
Likewise.
|
|
|
|
|
|
2005-06-18 00:13:33 +02:00
|
|
|
|
2005-06-17 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
PR c++/17413
|
|
|
|
|
* pt.c (type_unification_real): Apply template type deduction even
|
|
|
|
|
to procedure parameters that are not dependent on a template
|
|
|
|
|
parameter.
|
|
|
|
|
|
2005-06-16 10:21:00 +02:00
|
|
|
|
2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
|
|
|
|
|
change.
|
|
|
|
|
(create_pseudo_type_info): First parameter is an int.
|
|
|
|
|
|
Make-lang.in: Reformat some long lines.
* Make-lang.in: Reformat some long lines.
(gt-cp-rtti.h): New target.
(cp/rtti.o): Add dependency.
* config-lang.in (gtfiles): Add cp/rtti.c.
* cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
class_desc_type_node, si_class_desc_type_node,
vmi_class_desc_type_node, ptm_desc_type_node,
base_desc_type_node): Remove.
* decl.c: Adjust documentation of global trees.
* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
TINFO_REAL_NAME): Remove.
(struct tinfo_s): New.
(enum tinfo_kind): New.
(tinfo_descs): New.
(get_tinfo_decl): Adjust use of tinfo descriptor.
(tinfo_base_init, generic_initializer, ptr_initializer,
ptm_initializer, class_initializer): Likewise.
(get_pseudo_ti_init): Take descriptor index. Adjust.
(create_pseudo_type_info): Likewise.
(get_pseudo_ti_desc): Return descriptor index. Adjust.
(create_tinfo_types): Adjust use of create_pseudo_type_info.
(emit_tinfo_decl): Adjust use of tinfo descriptor.
From-SVN: r100971
2005-06-15 10:18:01 +02:00
|
|
|
|
2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-06-15 10:23:01 +02:00
|
|
|
|
PR c++/20678
|
|
|
|
|
* error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
|
|
|
|
|
null.
|
|
|
|
|
|
Make-lang.in: Reformat some long lines.
* Make-lang.in: Reformat some long lines.
(gt-cp-rtti.h): New target.
(cp/rtti.o): Add dependency.
* config-lang.in (gtfiles): Add cp/rtti.c.
* cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
class_desc_type_node, si_class_desc_type_node,
vmi_class_desc_type_node, ptm_desc_type_node,
base_desc_type_node): Remove.
* decl.c: Adjust documentation of global trees.
* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
TINFO_REAL_NAME): Remove.
(struct tinfo_s): New.
(enum tinfo_kind): New.
(tinfo_descs): New.
(get_tinfo_decl): Adjust use of tinfo descriptor.
(tinfo_base_init, generic_initializer, ptr_initializer,
ptm_initializer, class_initializer): Likewise.
(get_pseudo_ti_init): Take descriptor index. Adjust.
(create_pseudo_type_info): Likewise.
(get_pseudo_ti_desc): Return descriptor index. Adjust.
(create_tinfo_types): Adjust use of create_pseudo_type_info.
(emit_tinfo_decl): Adjust use of tinfo descriptor.
From-SVN: r100971
2005-06-15 10:18:01 +02:00
|
|
|
|
* Make-lang.in: Reformat some long lines.
|
|
|
|
|
(gt-cp-rtti.h): New target.
|
|
|
|
|
(cp/rtti.o): Add dependency.
|
|
|
|
|
* config-lang.in (gtfiles): Add cp/rtti.c.
|
|
|
|
|
* cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
|
|
|
|
|
CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
|
|
|
|
|
CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
|
|
|
|
|
CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
|
|
|
|
|
CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
|
|
|
|
|
(ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
|
|
|
|
|
ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
|
|
|
|
|
class_desc_type_node, si_class_desc_type_node,
|
|
|
|
|
vmi_class_desc_type_node, ptm_desc_type_node,
|
|
|
|
|
base_desc_type_node): Remove.
|
|
|
|
|
* decl.c: Adjust documentation of global trees.
|
|
|
|
|
* rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
|
|
|
|
|
TINFO_REAL_NAME): Remove.
|
|
|
|
|
(struct tinfo_s): New.
|
|
|
|
|
(enum tinfo_kind): New.
|
|
|
|
|
(tinfo_descs): New.
|
|
|
|
|
(get_tinfo_decl): Adjust use of tinfo descriptor.
|
|
|
|
|
(tinfo_base_init, generic_initializer, ptr_initializer,
|
|
|
|
|
ptm_initializer, class_initializer): Likewise.
|
|
|
|
|
(get_pseudo_ti_init): Take descriptor index. Adjust.
|
|
|
|
|
(create_pseudo_type_info): Likewise.
|
|
|
|
|
(get_pseudo_ti_desc): Return descriptor index. Adjust.
|
|
|
|
|
(create_tinfo_types): Adjust use of create_pseudo_type_info.
|
|
|
|
|
(emit_tinfo_decl): Adjust use of tinfo descriptor.
|
|
|
|
|
|
2005-06-14 15:31:26 +02:00
|
|
|
|
2005-06-14 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
|
|
|
|
|
|
2005-06-14 11:03:46 +02:00
|
|
|
|
2005-06-13 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
|
|
|
|
|
(rule for installing g++.1 manpage): Does depend on installdirs.
|
|
|
|
|
|
2005-06-13 17:58:10 +02:00
|
|
|
|
2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20789
|
|
|
|
|
* decl.c (cp_finish_decl): Clear runtime runtime initialization if
|
|
|
|
|
in-class decl's initializer is bad.
|
|
|
|
|
|
|
|
|
|
PR c++/21929
|
|
|
|
|
* parser.c (struct cp_parser): Document that scope could be
|
|
|
|
|
error_mark.
|
|
|
|
|
(cp_parser_diagnose_invalid_type_name): Cope with error_mark for
|
|
|
|
|
scope.
|
|
|
|
|
(cp_parser_nested_name_specifier): Return NULL_TREE on error.
|
|
|
|
|
(cp_parser_postfix_expression): Deal with null or error_mark
|
|
|
|
|
scope.
|
|
|
|
|
(cp_parser_elaborated_type_specifier): Adjust
|
|
|
|
|
cp_parser_nested_name_specifier call.
|
|
|
|
|
|
|
|
|
|
* parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
|
|
|
|
|
|
2005-06-13 01:46:46 +02:00
|
|
|
|
2005-06-12 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21930
|
|
|
|
|
* error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
|
|
|
|
|
Treat CONVERT_EXPR identically to NOP_EXPR.
|
|
|
|
|
|
2005-06-10 19:35:37 +02:00
|
|
|
|
2005-06-10 Aldy Hernandez <aldyh@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/10611
|
|
|
|
|
* cvt.c (build_expr_type_conversion): Same.
|
|
|
|
|
* typeck.c (build_binary_op): Handle vectors.
|
|
|
|
|
(common_type): Same.
|
|
|
|
|
(type_after_usual_arithmetic_conversions): Same.
|
|
|
|
|
|
2005-06-08 13:49:23 +02:00
|
|
|
|
2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19497
|
|
|
|
|
* cp-tree.def (USING_DECL): Update documentation.
|
|
|
|
|
* cp-tree.h (DECL_DEPENDENT_P): New.
|
|
|
|
|
(USING_DECL_DECLS, USING_DECL_SCOPE): New.
|
|
|
|
|
* class.c (handle_using_decl): Move most of the processing to ...
|
|
|
|
|
* name-lookup.c (do_class_using_decl): ... here. Make stricter.
|
|
|
|
|
(push_using_decl): Use USING_DECL_SCOPE.
|
|
|
|
|
(cp_emit_debug_info_for_using): Make extern.
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
|
|
|
|
|
* name-lookup.h (cp_emit_debug_info_for_using): Declare.
|
|
|
|
|
* pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
|
|
|
|
|
when tsubsting.
|
|
|
|
|
(tsubst_expr): Use USING_DECL_SCOPE.
|
|
|
|
|
* search.c (lookup_field_1): Use DECL_DEPENDENT_P.
|
|
|
|
|
* semantics.c (finish_member_declaration): Likewise.
|
|
|
|
|
|
2005-06-08 13:09:13 +02:00
|
|
|
|
2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/19894
|
|
|
|
|
* pt.c (tsubst): Reject pointer-to-member of type void.
|
|
|
|
|
|
|
|
|
|
PR c++/20563
|
|
|
|
|
* parser.c (cp_parser_label_declaration): Deal with invalid/missing
|
|
|
|
|
identifiers.
|
|
|
|
|
|
2005-06-07 10:45:32 +02:00
|
|
|
|
2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-06-07 19:46:02 +02:00
|
|
|
|
* cp-tree.def (DEFAULT_ARG): Adjust documentation.
|
|
|
|
|
* cp-tree.h (DEFARG_INSTANTIATIONS): New.
|
|
|
|
|
(struct tree_default_arg): Add instantiations member.
|
|
|
|
|
* parser.c (cp_parser_late_parsing_default_args): Adjust to use a
|
|
|
|
|
VEC.
|
|
|
|
|
* pt.c (tsubst_arg_types): Likewise.
|
|
|
|
|
|
2005-06-07 10:45:32 +02:00
|
|
|
|
* parser.c (cp_parser_late_parsing_default_args): Fix overeager
|
|
|
|
|
assert in previous patch.
|
|
|
|
|
|
exgettext: Handle gmsgid and cmsgid arguments specially, as gcc-internal-format and c-format.
gcc/po/
* exgettext: Handle gmsgid and cmsgid arguments specially,
as gcc-internal-format and c-format. Because of xgettext
bug, invoke xgettext once with --language=c, once with
--language=GCC-source and then merge together. Fail if
xgettext is not 0.14.5 or later.
gcc/
* intl.h (G_): New macro.
* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
instead of msgid for argument name.
* tree-ssa.c (warn_uninit): Likewise.
* c-parser.c (c_parser_error): Likewise.
* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
* config/darwin-c.c (BAD): Likewise.
* config/c4x/c4x-c.c (BAD): Likewise.
* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
* c-common.c (c_parse_error): Likewise.
* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
warning0, pedwarn, error, sorry, fatal_error, internal_error):
Likewise.
(fnotice): Use cmsgid instead of msgid for argument name.
* gcov.c (fnotice): Likewise.
* protoize.c (notice): Likewise.
* final.c (output_operand_lossage): Likewise.
* gcc.c (fatal, notice): Likewise.
(error): Use gmsgid instead of msgid for argument name.
* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
of msgid for argument name.
(error): Use gmsgid instead of msgid for argument name.
* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
instead of N_().
* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
* tree-inline.c (inline_forbidden_p_1): Likewise.
* ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
conventions for marking translations.
* doc/install.texi: Mention gettext 0.14.5 or later requirement.
gcc/cp/
* error.c (locate_error): Use gmsgid instead of msgid for argument
name.
(cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
gcc/java/
* jv-scan.c (fatal_error, warning, warning0): Use gmsgid instead of
msgid for argument name.
* gjavah.c (error): Likewise.
* java-tree.h (parse_error_context): Likewise.
* parse.y (parse_error_context, parse_warning_context,
issue_warning_error_from_context): Likewise.
From-SVN: r100676
2005-06-06 21:31:40 +02:00
|
|
|
|
2005-06-06 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
* error.c (locate_error): Use gmsgid instead of msgid for argument
|
|
|
|
|
name.
|
|
|
|
|
(cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
|
|
|
|
|
|
2005-06-06 16:18:22 +02:00
|
|
|
|
2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-06-06 19:29:41 +02:00
|
|
|
|
PR 21903
|
|
|
|
|
* cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
|
|
|
|
|
* parser.c (cp_parser_late_parsing_default_args): Propagate parsed
|
|
|
|
|
argument to any early instantiations.
|
|
|
|
|
* pt.c (tsubst_arg_types): Chain early instantiation of default arg.
|
|
|
|
|
|
2005-06-06 16:18:22 +02:00
|
|
|
|
PR c++/20637
|
|
|
|
|
* cp-tree.h (add_method): Add using_decl parameter.
|
|
|
|
|
* class.c (add_method): Add using_decl parameter. Adjust error
|
|
|
|
|
messages.
|
|
|
|
|
(handle_using_decl): Pass the using decl to add_method.
|
|
|
|
|
(clone_function_decl): Adjust add_member calls.
|
|
|
|
|
* decl2.c (check_classfn): Likewise.
|
|
|
|
|
* method.c (lazily_declare_fn): Likewise.
|
|
|
|
|
* semantics.c (finish_member_declaration): Likewise.
|
|
|
|
|
|
|
|
|
|
* method.c (synthesize_method): Use inform, not warning.
|
|
|
|
|
|
2005-06-06 13:25:40 +02:00
|
|
|
|
2005-06-06 Hans-Peter Nilsson <hp@axis.se>
|
|
|
|
|
|
|
|
|
|
* config-lang.in (target_libs): Remove target-gperf.
|
|
|
|
|
|
2005-06-05 18:33:43 +02:00
|
|
|
|
2005-06-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21619
|
|
|
|
|
* cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Allow non-constant
|
|
|
|
|
expressions as arguments to __builtin_constant_p.
|
|
|
|
|
* tree.c (builtin_valid_in_constant_expr_p): Use
|
2005-06-14 22:01:59 +02:00
|
|
|
|
DECL_IS_BUILTIN_CONSTANT_P.
|
2005-06-05 18:33:43 +02:00
|
|
|
|
|
2005-06-03 18:16:46 +02:00
|
|
|
|
2005-06-03 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-06-04 01:22:11 +02:00
|
|
|
|
PR c++/21853
|
|
|
|
|
* typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
|
|
|
|
|
the pointed-to type for a pointer-to-member.
|
|
|
|
|
|
2005-06-03 18:16:46 +02:00
|
|
|
|
PR c++/21336
|
|
|
|
|
* cp-tree.h (grok_op_properties): Remove friendp parameter.
|
|
|
|
|
* decl.c (grokfndecl): Adjust call.
|
|
|
|
|
(grok_op_properties): Determine the class of which the function is
|
|
|
|
|
a member by looking at its DECL_CONTEXT, not current_class_type.
|
|
|
|
|
* pt.c (tsubst_decl): Adjust call to grok_op_properties.
|
|
|
|
|
|
2005-06-02 10:53:48 +02:00
|
|
|
|
2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-06-02 22:02:26 +02:00
|
|
|
|
* method.c (synthesize_method): Add addtional arg to warning call.
|
|
|
|
|
|
2005-06-02 19:52:28 +02:00
|
|
|
|
PR c++/21280
|
|
|
|
|
* Make-lang.in (method.o): Add diagnostic.h
|
|
|
|
|
* decl.c (start_preparsed_function): Use decl's location for file
|
|
|
|
|
info.
|
|
|
|
|
* decl2.c (cp_finish_file): Set input_location before synthesizing
|
|
|
|
|
a function.
|
|
|
|
|
(mark_used): When deferring a synthesized function, save current
|
|
|
|
|
location. Do not set function's location when actually
|
|
|
|
|
synthesizing it.
|
|
|
|
|
* method.c: #include diagnostic.h.
|
|
|
|
|
(synthesize_method): Set the functions source location. Show
|
|
|
|
|
needed location if errors are emitted.
|
|
|
|
|
|
2005-06-02 11:34:38 +02:00
|
|
|
|
* decl.c (start_decl): Simplify specialization handling. Remove
|
|
|
|
|
unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
|
|
|
|
|
* mangle.c (discriminator_for_local_entity): Use VEC_index.
|
|
|
|
|
|
2005-06-02 11:09:48 +02:00
|
|
|
|
PR c++/20350
|
|
|
|
|
* decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
|
|
|
|
|
|
2005-06-02 10:53:48 +02:00
|
|
|
|
PR c++/21151
|
|
|
|
|
* name-lookup.c (pushtag): Push local class even in a template.
|
|
|
|
|
|
2005-05-31 19:43:26 +02:00
|
|
|
|
2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21165
|
|
|
|
|
* init.c (integral_constant_value): Check the type of the
|
|
|
|
|
initializer, not the decl.
|
|
|
|
|
|
2005-05-30 18:20:29 +02:00
|
|
|
|
2005-05-30 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21784
|
|
|
|
|
* name-lookup.c (do_nonmember_using_decl): Ignore builtin
|
|
|
|
|
functions, even when the used name is not a function.
|
|
|
|
|
|
2005-05-30 17:44:28 +02:00
|
|
|
|
2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* operators.def, optimize.c: Update copyright.
|
|
|
|
|
|
2005-05-29 02:16:05 +02:00
|
|
|
|
2005-05-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-05-30 18:20:29 +02:00
|
|
|
|
PR c++/21210
|
|
|
|
|
* call.c (standard_conversion): Permit conversions to complex
|
|
|
|
|
types if conversion to the corresponding scalar type would be
|
|
|
|
|
permitted.
|
|
|
|
|
|
2005-05-29 02:16:05 +02:00
|
|
|
|
PR c++/21340
|
|
|
|
|
* method.c (implicitly_declare_fn): Clear processing_template_decl
|
|
|
|
|
when generating implicit declaration.
|
|
|
|
|
|
2005-05-28 04:21:30 +02:00
|
|
|
|
2005-05-27 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21614
|
|
|
|
|
* typeck.c (get_member_function_from_ptrfunc): Do not attempt
|
|
|
|
|
conversions to base classes of incomplete types.
|
|
|
|
|
|
2005-05-28 03:38:11 +02:00
|
|
|
|
2005-05-27 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* semantics.c (add_stmt): Add C++ frontend specific version.
|
|
|
|
|
* cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
|
|
|
|
|
(stmts_are_full_exprs_p): Declare.
|
|
|
|
|
|
2005-05-28 01:17:21 +02:00
|
|
|
|
2005-05-27 Roger Sayle <roger@eyesopen.com>
|
|
|
|
|
Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
|
|
|
|
|
* parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
|
|
|
|
|
of CONVERT_EXPR.
|
|
|
|
|
(cp_parser_unary_expression): Likewise.
|
|
|
|
|
* typeck.c (build_unary_op): Likewise.
|
|
|
|
|
* call.c (add_builtin_candidate, build_new_op): Likewise.
|
|
|
|
|
* error.c (dump_expr): Likewise.
|
|
|
|
|
* pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
|
|
|
|
|
* decl.c (ambi_op_p, grok_op_properties): Likewise.
|
|
|
|
|
* dump.c (dump_op): Likewise.
|
|
|
|
|
* lex.c (init_operators): Likewise.
|
|
|
|
|
* operators.def ("+"): Likewise.
|
|
|
|
|
* cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
|
|
|
|
|
conversion, if the result and argument types differ.
|
|
|
|
|
* tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
|
|
|
|
|
like a NOP_EXPR when !processing_template_decl.
|
|
|
|
|
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
|
|
|
|
|
(pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
|
|
|
|
|
|
2005-05-27 16:23:47 +02:00
|
|
|
|
2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-05-27 17:50:26 +02:00
|
|
|
|
PR c++/21455
|
|
|
|
|
* typeck.c (get_delta_difference): Cope with incomplete but equal
|
|
|
|
|
classes. Reorder if.
|
|
|
|
|
|
2005-05-27 16:23:47 +02:00
|
|
|
|
PR c++/21681
|
|
|
|
|
* parser.c (cp_parser_late_parsing_for_member): Disable access
|
|
|
|
|
checking for template functions.
|
|
|
|
|
|
2005-05-26 18:04:37 +02:00
|
|
|
|
2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/21768
|
|
|
|
|
* pt.c (redeclare_class_template): Change error message according
|
|
|
|
|
to coding conventions.
|
|
|
|
|
|
2005-05-26 15:33:02 +02:00
|
|
|
|
2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* call.c (build_op_delete_call): Fix quoting in error message.
|
|
|
|
|
|
2005-05-26 00:08:31 +02:00
|
|
|
|
2005-05-25 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libgcj/21692
|
|
|
|
|
* cp-tree.h (make_alias_for): Declare.
|
|
|
|
|
* decl2.c (build_java_method_aliases): New.
|
|
|
|
|
(cp_finish_file): Call it.
|
|
|
|
|
* method.c (make_alias_for): Split out from ...
|
|
|
|
|
(make_alias_for_thunk): ... here.
|
|
|
|
|
|
2005-05-25 11:47:18 +02:00
|
|
|
|
2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/21686
|
|
|
|
|
* semantics.c (finish_id_expression): Fix quoting in error message.
|
|
|
|
|
|
2005-05-25 06:18:19 +02:00
|
|
|
|
2005-05-25 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (duplicate_decls): Move warning control from if() to
|
|
|
|
|
warning(OPT_*).
|
|
|
|
|
* name-lookup.c (parse_using_directive): Likewise.
|
|
|
|
|
* parser.c (cp_parser_elaborated_type_specifier): Likewise.
|
|
|
|
|
(cp_parser_init_declarator): Likewise.
|
|
|
|
|
* tree.c (handle_com_interface_attribute): Likewise.
|
|
|
|
|
|
2005-05-25 00:22:33 +02:00
|
|
|
|
2005-05-24 Ziemowit Laski <zlaski@apple.com>
|
|
|
|
|
|
|
|
|
|
* class.c (layout_class_type): Do not issue C++ ABI warnings
|
|
|
|
|
for ObjC structs.
|
|
|
|
|
* decl.c (objc_mark_locals_volatile): Streamline by calling
|
|
|
|
|
objc_volatilize_decl().
|
|
|
|
|
* parser.c (cp_parser_objc_message_expression): Allow simple
|
|
|
|
|
type specifiers (instead of merely type names) as message
|
|
|
|
|
receivers.
|
|
|
|
|
* pt.c (template_args_equal): Do not call objc_comptypes().
|
|
|
|
|
* typeck.c (composite_pointer_type): If both pointers are
|
|
|
|
|
ObjC-esque, arbitrarily choose the first; do not call
|
|
|
|
|
objc_comptypes().
|
|
|
|
|
(comptypes): Do not call objc_comptypes().
|
|
|
|
|
(convert_for_assignment): Call objc_compare_types().
|
|
|
|
|
(comp_ptr_ttypes_real): Call objc_type_quals_match() before
|
|
|
|
|
concluding that types do not match.
|
|
|
|
|
|
2005-05-24 21:06:20 +02:00
|
|
|
|
2005-05-24 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/21645
|
|
|
|
|
* optimize.c (update_cloned_parm): Copy the TYPE also from the
|
|
|
|
|
original one.
|
|
|
|
|
|
2005-05-19 09:37:45 +02:00
|
|
|
|
2005-05-19 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21495
|
|
|
|
|
* decl.c (grokdeclarator): Fix "storage class specified for"
|
|
|
|
|
error reporting.
|
|
|
|
|
|
2005-05-19 05:05:49 +02:00
|
|
|
|
2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* parser.c: Fix comment typos.
|
|
|
|
|
|
2005-05-18 22:45:26 +02:00
|
|
|
|
2005-05-18 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cc1plus-dummy): New.
|
|
|
|
|
(cc1plus-checksum.c): New.
|
|
|
|
|
(cc1plus-checksum.o): New.
|
|
|
|
|
(cc1plus): Add cc1plus-checksum.o.
|
|
|
|
|
|
2005-05-17 23:47:13 +02:00
|
|
|
|
2005-05-17 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR C++/19664
|
|
|
|
|
* decl2.c (determine_visibility): Don't set visibility to
|
|
|
|
|
hidden if it has been set explicitly by user.
|
|
|
|
|
|
2005-05-21 01:42:07 +02:00
|
|
|
|
2005-05-17 Ziemowit Laski <zlaski@apple.com>
|
|
|
|
|
Mike Stump <mrs@apple.com>
|
2005-05-17 22:05:24 +02:00
|
|
|
|
|
|
|
|
|
Yet more Objective-C++...
|
2005-06-14 22:01:59 +02:00
|
|
|
|
|
2005-05-17 22:05:24 +02:00
|
|
|
|
* cp-objcp-common.h (cxx_get_alias_set): Move from
|
|
|
|
|
here...
|
|
|
|
|
(cxx_warn_unused_global_decl): Likewise.
|
|
|
|
|
(cp_expr_size): Likewise.
|
|
|
|
|
(cp_tree_size): Likewise.
|
|
|
|
|
(cp_var_mod_type_p): Likewise.
|
|
|
|
|
(cxx_initialize_diagnostics): Likewise.
|
|
|
|
|
(cxx_types_compatible_p): Likewise.
|
|
|
|
|
* cp-tree.h: to here.
|
|
|
|
|
(do_poplevel): Add.
|
|
|
|
|
* lex.c (D_OBJC): Add.
|
|
|
|
|
(init_reswords): Add.
|
|
|
|
|
* Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
|
|
|
|
|
* parser.c: Add c-common.h include.
|
|
|
|
|
* pt.c: Add c-common.h and cp-objcp-common.h includes.
|
|
|
|
|
(template_args_equal): Use objc_comptypes as well.
|
|
|
|
|
(tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
|
|
|
|
|
* semantics.c (do_poplevel): Remove static.
|
|
|
|
|
|
|
|
|
|
* decl.c (objc_mark_locals_volatile): Don't change decls that are
|
|
|
|
|
already ok.
|
|
|
|
|
* decl2.c (generate_ctor_or_dtor_function): Add code to initialize
|
|
|
|
|
Objective C++ early enough.
|
|
|
|
|
* lex.c (struct resword reswords): Add Objective-C++ support.
|
|
|
|
|
* parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
|
|
|
|
|
(cp_parser_objc_message_receiver): Add.
|
|
|
|
|
(cp_parser_objc_message_args): Likewise.
|
|
|
|
|
(cp_parser_objc_message_expression): Likewise.
|
|
|
|
|
(cp_parser_objc_encode_expression): Likewise.
|
|
|
|
|
(cp_parser_objc_defs_expression): Likewise.
|
|
|
|
|
(cp_parser_objc_protocol_expression): Likewise.
|
|
|
|
|
(cp_parser_objc_selector_expression): Likewise.
|
|
|
|
|
(cp_parser_objc_expression): Likewise.
|
|
|
|
|
(cp_parser_objc_visibility_spec): Likewise.
|
|
|
|
|
(cp_parser_objc_method_type): Likewise.
|
|
|
|
|
(cp_parser_objc_protocol_qualifiers): Likewise.
|
|
|
|
|
(cp_parser_objc_typename): Likewise.
|
|
|
|
|
(cp_parser_objc_selector_p): Likewise.
|
|
|
|
|
(cp_parser_objc_selector): Likewise.
|
|
|
|
|
(cp_parser_objc_method_keyword_params): Likewise.
|
|
|
|
|
(cp_parser_objc_method_tail_params_opt): Likewise.
|
|
|
|
|
(cp_parser_objc_interstitial_code): Likewise.
|
|
|
|
|
(cp_parser_objc_method_signature): Likewise.
|
|
|
|
|
(cp_parser_objc_method_prototype_list): Likewise.
|
|
|
|
|
(cp_parser_objc_method_definition_list): Likewise.
|
|
|
|
|
(cp_parser_objc_class_ivars): Likewise.
|
|
|
|
|
(cp_parser_objc_identifier_list): Likewise.
|
|
|
|
|
(cp_parser_objc_alias_declaration): Likewise.
|
|
|
|
|
(cp_parser_objc_class_declaration): Likewise.
|
|
|
|
|
(cp_parser_objc_protocol_declaration): Likewise.
|
|
|
|
|
(cp_parser_objc_protocol_refs_opt): Likewise.
|
|
|
|
|
(cp_parser_objc_superclass_or_category): Likewise.
|
|
|
|
|
(cp_parser_objc_class_interface): Likewise.
|
|
|
|
|
(cp_parser_objc_class_implementation): Likewise.
|
|
|
|
|
(cp_parser_objc_end_implementation): Likewise.
|
|
|
|
|
(cp_parser_objc_declaration): Likewise.
|
|
|
|
|
(cp_parser_objc_try_catch_finally_statement): Likewise.
|
|
|
|
|
(cp_parser_objc_synchronized_statement): Likewise.
|
|
|
|
|
(cp_parser_objc_throw_statement): Likewise.
|
|
|
|
|
(cp_parser_objc_statement): Likewise.
|
|
|
|
|
(cp_parser_primary_expression): Add Objective-C++.
|
|
|
|
|
(cp_parser_statement): Likewise.
|
|
|
|
|
(cp_parser_declaration): Likewise.
|
|
|
|
|
(cp_parser_simple_type_specifier): Likewise.
|
|
|
|
|
(cp_parser_type_name): Likewise.
|
|
|
|
|
(cp_parser_parameter_declaration_list): Likewise.
|
|
|
|
|
(cp_parser_member_declaration) Likewise.
|
|
|
|
|
* tree.c: Include debug.h.
|
|
|
|
|
* typeck.c (composite_pointer_type): Add Objective-C++ support.
|
|
|
|
|
(finish_class_member_access_expr): Likewise.
|
|
|
|
|
(build_function_call): Allow objc to rewrite FUNCTION_DECLs.
|
|
|
|
|
(build_modify_expr): Allow objc to generate write barriers.
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cp/tree.o): Add debug.h.
|
|
|
|
|
* tree.c (lvalue_p_1, case CONST_DECL): Add.
|
|
|
|
|
|
2005-05-18 23:04:17 +02:00
|
|
|
|
2005-05-18 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* method.c: Include tree-pass.h
|
|
|
|
|
(use_thunk): Lower body before expanding.
|
|
|
|
|
|
2005-05-17 08:51:48 +02:00
|
|
|
|
2005-05-17 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21454
|
|
|
|
|
* decl.c (maybe_deduce_size_from_array_init): Call
|
|
|
|
|
cp_apply_type_quals_to_decl after completing array type.
|
|
|
|
|
|
2005-05-17 01:05:45 +02:00
|
|
|
|
2005-05-16 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
|
|
|
|
|
(build_library_fn): ... here.
|
|
|
|
|
|
2005-05-12 15:06:15 +02:00
|
|
|
|
2005-05-12 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (cp_stmt_codes): Don't define.
|
|
|
|
|
(statement_code_p): Declare.
|
|
|
|
|
(STATEMENT_CODE_P): Define.
|
|
|
|
|
* lex.c (statement_code_p): Define.
|
|
|
|
|
(cxx_init): Use actual codes in stmt_codes initializer, not
|
|
|
|
|
cp_stmt_codes macro. Initialize statement_code_p directly, rather
|
|
|
|
|
than using INIT_STATEMENT_CODES.
|
|
|
|
|
|
2005-05-10 07:31:15 +02:00
|
|
|
|
2005-05-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_unary_op): Do not resort to address arithmetic
|
|
|
|
|
when taking the address of a COMPONENT_REF.
|
2005-06-14 22:01:59 +02:00
|
|
|
|
|
2005-05-08 04:17:54 +02:00
|
|
|
|
2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* class.c (vtbl_init_data_s): Change the type of fns to
|
|
|
|
|
VEC(tree,gc)*.
|
|
|
|
|
(build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
|
|
|
|
|
Use VEC instead of VARRAY.
|
|
|
|
|
|
2005-05-07 11:48:29 +02:00
|
|
|
|
2005-05-07 Richard Sandiford <rsandifo@redhat.com>
|
|
|
|
|
|
|
|
|
|
* mangle.c: Remove a reference to the MIPS -mint64 option.
|
|
|
|
|
|
2005-05-07 04:29:34 +02:00
|
|
|
|
2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* decl.c (wrapup_globals_for_namespace): Use VEC instead of
|
|
|
|
|
VARRAY.
|
|
|
|
|
* name-lookup.c (add_decl_to_level, begin_scope): Likewise.
|
|
|
|
|
* name-lookup.h (cp_binding_level): Change the type of
|
|
|
|
|
static_decls to VEC(tree,gc)*.
|
|
|
|
|
|
2005-05-07 06:12:06 +02:00
|
|
|
|
* mangle.c (globals): Change the type of substitutions to
|
|
|
|
|
VEC(tree,gc)*.
|
|
|
|
|
(dump_substitution_candidates, add_substitution,
|
|
|
|
|
find_substitution, finish_mangling, init_mangle): Use VEC
|
|
|
|
|
instead of VARRAY.
|
|
|
|
|
|
2005-05-06 16:10:35 +02:00
|
|
|
|
2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* decl2.c (spew_debug): Remove.
|
|
|
|
|
|
2005-05-06 16:24:20 +02:00
|
|
|
|
* decl2.c (ssdf_decls, start_static_storage_duration_function,
|
|
|
|
|
generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
|
|
|
|
|
|
2005-05-06 21:03:35 +02:00
|
|
|
|
* decl2.c (pending_statics, note_vague_linkage_var,
|
|
|
|
|
cp_finish_file): Use VEC instead of VARRAY.
|
|
|
|
|
(pending_statics_used): Remove.
|
|
|
|
|
|
2005-05-05 23:57:46 +02:00
|
|
|
|
2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* decl2.c (deferred_fns, note_vague_linkage_fn,
|
|
|
|
|
cp_finish_file): Use VEC instead of VARRAY.
|
|
|
|
|
|
2005-05-05 21:08:12 +02:00
|
|
|
|
2005-05-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21352
|
|
|
|
|
* pt.c (build_non_dependent_expr): Use is_overloaded_fn.
|
|
|
|
|
|
2005-05-05 18:24:10 +02:00
|
|
|
|
2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* pt.c: Fix a comment typo.
|
|
|
|
|
|
2005-05-04 08:00:13 +02:00
|
|
|
|
2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (language_function): Change the type of
|
|
|
|
|
x_local_names to VEC.
|
|
|
|
|
* decl.c (push_local_name): Adjust uses of local_names.
|
|
|
|
|
|
2005-05-03 20:34:03 +02:00
|
|
|
|
2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* friend.c, lex.c, mangle.c, repo.c: Update copyright.
|
|
|
|
|
|
2005-05-02 20:36:24 +02:00
|
|
|
|
2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* class.c (local_classes, init_class_processing): Use VEC
|
|
|
|
|
instead of VARRAY.
|
|
|
|
|
* cp-tree.h (local_classes): Likewise.
|
|
|
|
|
* mangle.c (discriminator_for_local_entity): Likewise.
|
|
|
|
|
* name-lookup.c (pushtag): Likewise.
|
|
|
|
|
|
2005-05-02 22:49:16 +02:00
|
|
|
|
* class.c (current_lang_depth, push_lang_context,
|
|
|
|
|
pop_lang_context): Use VEC instead of VARRAY.
|
|
|
|
|
* cp-tree.h (saved_scope): Use VEC for lang_base instead of
|
|
|
|
|
VARRAY.
|
|
|
|
|
* name-lookup.c (push_to_top_level): Use VEC instead of
|
|
|
|
|
VARRAY.
|
|
|
|
|
|
c-common.c (resolve_overloaded_builtin): Forward to target hook for BUILT_IN_MD built-ins.
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
* c-common.c (resolve_overloaded_builtin): Forward to target
hook for BUILT_IN_MD built-ins.
* c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
for all types of built-in.
* target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
in the definition of the target hooks struct.
* target.h (struct gcc_target): Add resolve_overloaded_builtin.
* config/rs6000/altivec.h: Rewritten.
* config/rs6000/rs6000-c.c (struct altivec_builtin_types,
altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
rs6000_builtin_type, rs6000_builtin_type_compatible,
altivec_overloaded_builtins, rs6000_builtin_type,
rs6000_builtin_type_compatible): New.
* config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
New.
(def_builtin): Turn into a function. Check for duplicates and store
the builtin into rs6000_builtin_decls.
(bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
bdesc_1arg): Add overloaded builtins.
(altivec_expand_builtin): Check for unresolved overloaded builtins,
do not support ALTIVEC_COMPILETIME_ERROR.
(rs6000_init_builtins): Add opaque 128-bit vector, and internal
nodes to represent front-end types.
(altivec_init_builtins, rs6000_common_init_builtins): Create builtins
with opaque arguments and/or return values.
* config/rs6000/rs6000.h (enum rs6000_builtins): Remove
ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
(rs6000_builtin_type_index): New.
(is_ev64_opaque_type): Rename to...
(rs6000_is_opaque_type): ... this.
(rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
target hook.
cp:
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
* semantics.c (finish_call_expr): Call resolve_overloaded_builtin
for BUILT_IN_MD built-ins.
testsuite:
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
* gcc.dg/altivec-3.c (vec_store): Do not use the old
__builtin_altivec_st_internal_4si built-in.
From-SVN: r99103
2005-05-02 18:02:52 +02:00
|
|
|
|
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
|
|
|
|
|
|
2005-05-26 00:08:31 +02:00
|
|
|
|
* semantics.c (finish_call_expr): Call resolve_overloaded_builtin
|
|
|
|
|
for BUILT_IN_MD built-ins.
|
c-common.c (resolve_overloaded_builtin): Forward to target hook for BUILT_IN_MD built-ins.
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
* c-common.c (resolve_overloaded_builtin): Forward to target
hook for BUILT_IN_MD built-ins.
* c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
for all types of built-in.
* target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
in the definition of the target hooks struct.
* target.h (struct gcc_target): Add resolve_overloaded_builtin.
* config/rs6000/altivec.h: Rewritten.
* config/rs6000/rs6000-c.c (struct altivec_builtin_types,
altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
rs6000_builtin_type, rs6000_builtin_type_compatible,
altivec_overloaded_builtins, rs6000_builtin_type,
rs6000_builtin_type_compatible): New.
* config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
New.
(def_builtin): Turn into a function. Check for duplicates and store
the builtin into rs6000_builtin_decls.
(bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
bdesc_1arg): Add overloaded builtins.
(altivec_expand_builtin): Check for unresolved overloaded builtins,
do not support ALTIVEC_COMPILETIME_ERROR.
(rs6000_init_builtins): Add opaque 128-bit vector, and internal
nodes to represent front-end types.
(altivec_init_builtins, rs6000_common_init_builtins): Create builtins
with opaque arguments and/or return values.
* config/rs6000/rs6000.h (enum rs6000_builtins): Remove
ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
(rs6000_builtin_type_index): New.
(is_ev64_opaque_type): Rename to...
(rs6000_is_opaque_type): ... this.
(rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
target hook.
cp:
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
* semantics.c (finish_call_expr): Call resolve_overloaded_builtin
for BUILT_IN_MD built-ins.
testsuite:
2005-05-02 Paolo Bonzini <bonzini@gnu.org>
* gcc.dg/altivec-3.c (vec_store): Do not use the old
__builtin_altivec_st_internal_4si built-in.
From-SVN: r99103
2005-05-02 18:02:52 +02:00
|
|
|
|
|
2005-05-02 06:22:45 +02:00
|
|
|
|
2005-05-02 Michael Matz <matz@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/19542
|
|
|
|
|
* cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
|
|
|
|
|
common frontend.
|
|
|
|
|
(null_node): Remove.
|
|
|
|
|
* lex.c (cxx_init): Move null_node initialisation to C common frontend.
|
|
|
|
|
|
2005-04-25 21:03:41 +02:00
|
|
|
|
2005-04-25 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def: Add EXPR_STMT.
|
|
|
|
|
* cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
|
|
|
|
|
(EXPR_STMT_EXPR): Define.
|
|
|
|
|
* cp-gimplify.c: Include "flags.h".
|
|
|
|
|
(gimplify_expr_stmt): New static function.
|
|
|
|
|
(cp_gimplify_expr): Handle EXPR_STMT.
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
|
|
|
|
|
rather than pp_expression.
|
|
|
|
|
(pp_cxx_statement): Handle EXPR_STMT.
|
|
|
|
|
* dump.c (cp_dump_tree): Handle EXPR_STMT.
|
|
|
|
|
* lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
|
|
|
|
|
initializer.
|
|
|
|
|
|
2005-04-25 20:08:35 +02:00
|
|
|
|
2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR C++/21188
|
|
|
|
|
* rtti.c (ifnonnull): Cast the zero comparison operand
|
|
|
|
|
to the correct type.
|
|
|
|
|
|
2005-04-25 00:06:37 +02:00
|
|
|
|
2005-04-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/20991
|
|
|
|
|
* class.c: Include cgraph.h.
|
|
|
|
|
(cp_fold_obj_type_ref): Set node->local.vtable_method.
|
|
|
|
|
* Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
|
|
|
|
|
|
2005-04-24 19:35:34 +02:00
|
|
|
|
2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
|
|
|
|
|
|
|
|
|
|
* mangle.c (write_builtin_type): Handle integer types which are
|
|
|
|
|
not one of the shared integer type nodes and emit a "vendor
|
|
|
|
|
extended builtin type" with an encoding in the form of "u5int96".
|
|
|
|
|
|
2005-04-24 15:38:19 +02:00
|
|
|
|
2005-04-24 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def (USING_STMT): Change class to tcc_statement.
|
|
|
|
|
(TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
|
|
|
|
|
(IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
|
|
|
|
|
(BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
|
|
|
|
|
|
diagnostic.c (warning): Accept parameter to classify warning option.
* diagnostic.c (warning): Accept parameter to classify warning option.
(warning0): New, for when a pointer to an error() like function is needed.
* errors.c (warning): Likewise.
* errors.h (warning, warning0): Adjust prototypes.
* toplev.h (warning, warning0): Likewise.
* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
config/darwin.c, config/darwin.h, config/h8300/h8300.c,
config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
config/rs6000/aix52.h, config/rs6000/darwin.h,
config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
config/stormy16/stormy16.c, config/v850/v850-c.c,
config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
callers.
* ada/misc.c: Adjust warning() callers.
* cp/call.c, cp/class.c, cp/cvt.c, cp/decl.c, cp/decl2.c,
cp/except.c, cp/friend.c, cp/init.c, cp/lex.c, cp/mangle.c,
cp/method.c, cp/name-lookup.c, cp/parser.c, cp/repo.c, cp/rtti.c,
cp/tree.c, cp/typeck.c, cp/typeck2.c: Adjust warning() callers.
* fortran/trans-decl.c: Adjust warning() callers.
* java/class.c, java/decl.c, java/expr.c, java/jcf-io.c,
java/jcf-parse.c, java/jv-scan.c, java/parse.y: Adjust warning()
callers.
* objc/objc-act.c: Adjust warning() callers.
* treelang/parse.y: Adjust warning() callers.
From-SVN: r98633
2005-04-23 23:29:07 +02:00
|
|
|
|
2005-04-23 DJ Delorie <dj@redhat.com>
|
|
|
|
|
|
|
|
|
|
* call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
|
|
|
|
|
init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
|
|
|
|
|
repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
|
|
|
|
|
callers.
|
|
|
|
|
|
2005-04-22 21:01:29 +02:00
|
|
|
|
2005-04-22 Per Bothner <per@bothner.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
|
2005-05-26 00:08:31 +02:00
|
|
|
|
input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
|
2005-04-22 21:01:29 +02:00
|
|
|
|
|
2005-04-22 18:57:23 +02:00
|
|
|
|
2005-04-22 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21087
|
|
|
|
|
* name-lookup.c (push_overloaded_decl): Do not overload with
|
|
|
|
|
non-duplicate anticipated built-in.
|
|
|
|
|
|
2005-04-21 16:01:56 +02:00
|
|
|
|
2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
|
|
|
|
|
VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
|
|
|
|
|
|
vec.h: Update API to separate allocation mechanism from type.
* vec.h: Update API to separate allocation mechanism from type.
(VEC_safe_grow): New.
* vec.c (calculate_allocation): New.
(vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
(vec_gc_free, vec_heap_free): Remove.
* gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
(VEC): Likewise.
(mangle_macro_name): New.
(struct macro_def): New.
(struct macro): Add multiple argument values.
(macro_expans_end): New.
(push_macro_expansion): Chain on new macro. Process multiple
args, create follow on expansion. Return follow on argument.
(macro_input): Deal with multiple arguments.
* tree.h: Define VEC(tree,heap) and VEC(tree,gc).
(struct tree_binfo): Adjust.
* basic-block.h: Define VEC(edge,gc).
(struct edge_def): Adjust.
(struct basic_block_def, struct edge_iterator): Likewise.
(ei_container, ei_start_1, ei_last_1): Likewise.
* cfg.c (connect_src, connect_dest): Likewise.
* cfgrtl.c (force_nonfallthru_and_redirect)
* dbxout.c (dbxout_type)
* dwarf2out.c (gen_member_die)
* lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
(gcc_tree_to_linear_expression): Adjust.
(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
lbv_to_gcc_expression, lle_to_gcc_expression,
lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
perfect_nestify): Likewise.
* lambda.h (gcc_loopnest_to_lambda_loopnest,
lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
* profile.c (instrument_values): Adjust.
* tree-cfg.c (modified_noreturn_calls): Adjust.
(remove_fallthru_edge): Likewise.
* tree-dump.c (dequeue_and_dump): Adjust.
* tree-flow-inline.h (mark_stmt_modified): Adjust.
* tree-flow.h (modified_noreturn_calls): Adjust.
(tree_on_heap): Remove. (yay!)
(register_new_def): Adjust.
* tree-into-ssa.c: Define VEC(int,heap).
(block_defs_stack): Adjust.
(find_idf, insert_phi_nodes, register_new_def,
rewrite_initialize_block, rewrite_finalize_block,
register_new_update_single, rewrite_update_init_block,
rewrite_update_fini_block, rewrite_blocks,
ssa_rewrite_finalize_block, ssa_register_new_def,
ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
* tree-loop-linear.c (linear_transform_loops): Adjust.
* tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
(push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
* tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
vrp_variables_stack): Adjust declarations.
(tree_ssa_dominator_optimize): Adjust.
(dom_opt_initialize_block, remove_local_expressions_from_table,
restore_nonzero_vars_to_original_value,
restore_vars_to_original_value,
restore_currdefs_to_original_value, dom_opt_finalize_block,
record_var_is_nonzero, record_cond, record_const_or_copy_1,
optimize_stmt, update_rhs_and_lookup_avail_expr,
lookup_avail_expr, record_range): Likewise.
* tree-ssa-pre.c: Define VEC(basic_block,heap).
(compute_antic_aux): Adjust.
(inserted_exprs, create_expression_by_pieces,
insert_into_preds_of_block, eliminate, mark_operand_necessary,
remove_dead_inserted_code, fini_pre): Likewise.
* tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
(varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
ssa_prop_init): Likewise.
* tree-ssa.c: Define VEC(bitmap,heap).
(verify_name_tags): Adjust.
* value-prof.c (rtl_divmod_values_to_profile): Adjust.
(insn_prefetch_values_to_profile, rtl_find_values_to_profile,
tree_divmod_values_to_profile, tree_find_values_to_profile,
value_profile_transformations): Likewise.
* value-prof.h: Define VEC(histogram_value,heap).
* varasm.c: Remove alias_pair pointer typedef, define
VEC(alias_pair,gc).
(finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
* config/pa/pa.c (typedef extern_symbol): Typedef the structure,
not a pointer to it. Create an object vector.
(extern_symbols): Turn into an object vector.
(pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
* cp/cp-tree.h: Adjust for new VEC API.
Define VEC(tree_pair_s,gc).
(struct save_scope): Adjust.
(struct lang_type_class): Adjust.
(unemitted_tinfo_decls): Adjust.
* cp/class.c (add_method, resort_type_method_vec,
finish_struct_methods, struct find_final_overrider_data,
dfs_find_final_overrider_pre, find_final_overrider,
get_vcall_index, warn_hidden, walk_subobject_offsets,
check_methods, fixup_inline_methods, end_of_class,
warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
add_vcall_offset): Adjust.
* cp/decl.c (xref_basetypes, finish_method): Adjust.
* cp/decl2.c (check_classfn): Adjust.
* cp/init.c (sort_mem_initializers, push_base_cleanups): Adjust.
* cp/method.c (do_build_copy_constructor): Adjust.
* cp/name-lookup.c (new_class_binding, store_binding,
store_bindings, store_class_bindings): Adjust.
* cp/name-lookup.h: Define VEC(cxx_saved_binding,gc),
VEC(cp_class_binding,gc).
(struct cp_binding_level): Adjust.
* cp/parser.c: Define VEC(cp_token_position,heap).
(struct cp_lexer): Adjust.
(cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
cp_lexer_save_tokens): Adjust.
* cp/pt.c (retrieve_specialization,
check_explicit_specialization): Adjust.
* cp/rtti.c (unemitted_tinfo_decls): Adjust.
(init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
get_pseudo_ti_desc): Adjust.
* cp/search.c (dfs_access_in_type, lookup_conversion_operator,
lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
* cp/semantics.c: Define VEC(deferred_access,gc).
(push_deferring_access_checks): Adjust.
* cp/typeck2.c (abstract_virtuals_error): Adjust.
From-SVN: r98498
2005-04-21 11:18:28 +02:00
|
|
|
|
2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h: Adjust for new VEC API.
|
|
|
|
|
Define VEC(tree_pair_s,gc).
|
|
|
|
|
(struct save_scope): Adjust.
|
|
|
|
|
(struct lang_type_class): Adjust.
|
|
|
|
|
(unemitted_tinfo_decls): Adjust.
|
|
|
|
|
* class.c (add_method, resort_type_method_vec,
|
|
|
|
|
finish_struct_methods, struct find_final_overrider_data,
|
|
|
|
|
dfs_find_final_overrider_pre, find_final_overrider,
|
|
|
|
|
get_vcall_index, warn_hidden, walk_subobject_offsets,
|
|
|
|
|
check_methods, fixup_inline_methods, end_of_class,
|
|
|
|
|
warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
|
|
|
|
|
add_vcall_offset): Adjust.
|
|
|
|
|
* decl.c (xref_basetypes, finish_method): Adjust.
|
|
|
|
|
* decl2.c (check_classfn): Adjust.
|
|
|
|
|
* init.c (sort_mem_initializers, push_base_cleanups): Adjust.
|
|
|
|
|
* method.c (do_build_copy_constructor): Adjust.
|
2005-06-14 22:01:59 +02:00
|
|
|
|
* name-lookup.c (new_class_binding, store_binding,
|
vec.h: Update API to separate allocation mechanism from type.
* vec.h: Update API to separate allocation mechanism from type.
(VEC_safe_grow): New.
* vec.c (calculate_allocation): New.
(vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
(vec_gc_free, vec_heap_free): Remove.
* gengtype-lex.l (DEF_VEC_): Process mult-argument macros. Adjust.
(VEC): Likewise.
(mangle_macro_name): New.
(struct macro_def): New.
(struct macro): Add multiple argument values.
(macro_expans_end): New.
(push_macro_expansion): Chain on new macro. Process multiple
args, create follow on expansion. Return follow on argument.
(macro_input): Deal with multiple arguments.
* tree.h: Define VEC(tree,heap) and VEC(tree,gc).
(struct tree_binfo): Adjust.
* basic-block.h: Define VEC(edge,gc).
(struct edge_def): Adjust.
(struct basic_block_def, struct edge_iterator): Likewise.
(ei_container, ei_start_1, ei_last_1): Likewise.
* cfg.c (connect_src, connect_dest): Likewise.
* cfgrtl.c (force_nonfallthru_and_redirect)
* dbxout.c (dbxout_type)
* dwarf2out.c (gen_member_die)
* lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
(gcc_tree_to_linear_expression): Adjust.
(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
lbv_to_gcc_expression, lle_to_gcc_expression,
lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
perfect_nestify): Likewise.
* lambda.h (gcc_loopnest_to_lambda_loopnest,
lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
* profile.c (instrument_values): Adjust.
* tree-cfg.c (modified_noreturn_calls): Adjust.
(remove_fallthru_edge): Likewise.
* tree-dump.c (dequeue_and_dump): Adjust.
* tree-flow-inline.h (mark_stmt_modified): Adjust.
* tree-flow.h (modified_noreturn_calls): Adjust.
(tree_on_heap): Remove. (yay!)
(register_new_def): Adjust.
* tree-into-ssa.c: Define VEC(int,heap).
(block_defs_stack): Adjust.
(find_idf, insert_phi_nodes, register_new_def,
rewrite_initialize_block, rewrite_finalize_block,
register_new_update_single, rewrite_update_init_block,
rewrite_update_fini_block, rewrite_blocks,
ssa_rewrite_finalize_block, ssa_register_new_def,
ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
* tree-loop-linear.c (linear_transform_loops): Adjust.
* tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
(push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
* tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
vrp_variables_stack): Adjust declarations.
(tree_ssa_dominator_optimize): Adjust.
(dom_opt_initialize_block, remove_local_expressions_from_table,
restore_nonzero_vars_to_original_value,
restore_vars_to_original_value,
restore_currdefs_to_original_value, dom_opt_finalize_block,
record_var_is_nonzero, record_cond, record_const_or_copy_1,
optimize_stmt, update_rhs_and_lookup_avail_expr,
lookup_avail_expr, record_range): Likewise.
* tree-ssa-pre.c: Define VEC(basic_block,heap).
(compute_antic_aux): Adjust.
(inserted_exprs, create_expression_by_pieces,
insert_into_preds_of_block, eliminate, mark_operand_necessary,
remove_dead_inserted_code, fini_pre): Likewise.
* tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
(varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
ssa_prop_init): Likewise.
* tree-ssa.c: Define VEC(bitmap,heap).
(verify_name_tags): Adjust.
* value-prof.c (rtl_divmod_values_to_profile): Adjust.
(insn_prefetch_values_to_profile, rtl_find_values_to_profile,
tree_divmod_values_to_profile, tree_find_values_to_profile,
value_profile_transformations): Likewise.
* value-prof.h: Define VEC(histogram_value,heap).
* varasm.c: Remove alias_pair pointer typedef, define
VEC(alias_pair,gc).
(finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
* config/pa/pa.c (typedef extern_symbol): Typedef the structure,
not a pointer to it. Create an object vector.
(extern_symbols): Turn into an object vector.
(pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
* cp/cp-tree.h: Adjust for new VEC API.
Define VEC(tree_pair_s,gc).
(struct save_scope): Adjust.
(struct lang_type_class): Adjust.
(unemitted_tinfo_decls): Adjust.
* cp/class.c (add_method, resort_type_method_vec,
finish_struct_methods, struct find_final_overrider_data,
dfs_find_final_overrider_pre, find_final_overrider,
get_vcall_index, warn_hidden, walk_subobject_offsets,
check_methods, fixup_inline_methods, end_of_class,
warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
add_vcall_offset): Adjust.
* cp/decl.c (xref_basetypes, finish_method): Adjust.
* cp/decl2.c (check_classfn): Adjust.
* cp/init.c (sort_mem_initializers, push_base_cleanups): Adjust.
* cp/method.c (do_build_copy_constructor): Adjust.
* cp/name-lookup.c (new_class_binding, store_binding,
store_bindings, store_class_bindings): Adjust.
* cp/name-lookup.h: Define VEC(cxx_saved_binding,gc),
VEC(cp_class_binding,gc).
(struct cp_binding_level): Adjust.
* cp/parser.c: Define VEC(cp_token_position,heap).
(struct cp_lexer): Adjust.
(cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
cp_lexer_save_tokens): Adjust.
* cp/pt.c (retrieve_specialization,
check_explicit_specialization): Adjust.
* cp/rtti.c (unemitted_tinfo_decls): Adjust.
(init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
get_pseudo_ti_desc): Adjust.
* cp/search.c (dfs_access_in_type, lookup_conversion_operator,
lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
* cp/semantics.c: Define VEC(deferred_access,gc).
(push_deferring_access_checks): Adjust.
* cp/typeck2.c (abstract_virtuals_error): Adjust.
From-SVN: r98498
2005-04-21 11:18:28 +02:00
|
|
|
|
store_bindings, store_class_bindings): Adjust.
|
|
|
|
|
* name-lookup.h: Define VEC(cxx_saved_binding,gc),
|
|
|
|
|
VEC(cp_class_binding,gc).
|
|
|
|
|
(struct cp_binding_level): Adjust.
|
|
|
|
|
* parser.c: Define VEC(cp_token_position,heap).
|
|
|
|
|
(struct cp_lexer): Adjust.
|
|
|
|
|
(cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
|
|
|
|
|
cp_lexer_save_tokens): Adjust.
|
|
|
|
|
* pt.c (retrieve_specialization,
|
|
|
|
|
check_explicit_specialization): Adjust.
|
|
|
|
|
* rtti.c (unemitted_tinfo_decls): Adjust.
|
|
|
|
|
(init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
|
|
|
|
|
get_pseudo_ti_desc): Adjust.
|
|
|
|
|
* search.c (dfs_access_in_type, lookup_conversion_operator,
|
|
|
|
|
lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
|
|
|
|
|
dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
|
|
|
|
|
* semantics.c: Define VEC(deferred_access,gc).
|
|
|
|
|
(push_deferring_access_checks): Adjust.
|
|
|
|
|
* typeck2.c (abstract_virtuals_error): Adjust.
|
|
|
|
|
|
2005-04-20 21:59:16 +02:00
|
|
|
|
2005-04-20 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def: Add STMT_EXPR.
|
|
|
|
|
* cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
|
|
|
|
|
(STMT_EXPR_STMT): Define.
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_primary_expression): Handle
|
|
|
|
|
STMT_EXPR.
|
|
|
|
|
(pp_cxx_expression): Likewise.
|
|
|
|
|
(pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
|
|
|
|
|
* dump.c (cp_dump_tree): Handle STMT_EXPR.
|
|
|
|
|
|
2005-04-18 15:39:38 +02:00
|
|
|
|
2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* decl.c (expand_static_init): Call build2 and build3 instead
|
|
|
|
|
of build.
|
|
|
|
|
|
2005-04-18 17:02:51 +02:00
|
|
|
|
* cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
|
|
|
|
|
|
2005-04-17 23:27:47 +02:00
|
|
|
|
2005-04-17 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
|
|
|
|
|
ARROW_EXPR.
|
|
|
|
|
(pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
|
|
|
|
|
(pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
|
|
|
|
|
ALIGNOF_EXPR.
|
|
|
|
|
* typeck.c (cxx_sizeof_or_alignof_type): Update call to
|
|
|
|
|
c_sizeof_or_alignof_type for change in parameter type.
|
|
|
|
|
|
2005-04-17 05:43:01 +02:00
|
|
|
|
2005-04-16 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/21025
|
|
|
|
|
* typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
|
|
|
|
|
which sizeof/alignof is dependent, rather than just whether we are
|
|
|
|
|
processing_template_decl.
|
2005-06-14 22:01:59 +02:00
|
|
|
|
|
2005-04-17 04:37:36 +02:00
|
|
|
|
2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (LOOKUP_GLOBAL): Remove.
|
|
|
|
|
(LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
|
|
|
|
|
LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
|
|
|
|
|
LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
|
|
|
|
|
their values.
|
|
|
|
|
|
2005-04-16 04:07:33 +02:00
|
|
|
|
2005-04-15 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR middle-end/14311
|
|
|
|
|
* semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
|
|
|
|
|
|
2005-04-15 17:00:58 +02:00
|
|
|
|
2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (lang_type_class): Remove redefined. Move
|
|
|
|
|
java_interface into where redefined was. Increment the width
|
|
|
|
|
of dummy.
|
|
|
|
|
(TYPE_REDEFINED): Remove.
|
|
|
|
|
|
2005-04-14 14:22:49 +02:00
|
|
|
|
2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
|
|
|
|
|
CLASSTYPE_TEMPLATE_LEVEL): Remove.
|
|
|
|
|
|
2005-04-12 08:33:48 +02:00
|
|
|
|
2005-04-11 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (determine_visibility): Don't use export_class_data.
|
|
|
|
|
(import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
|
2005-06-14 22:01:59 +02:00
|
|
|
|
TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
|
2005-04-12 08:33:48 +02:00
|
|
|
|
|
2005-04-09 18:52:46 +02:00
|
|
|
|
2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (cxx_alignof): Remove.
|
|
|
|
|
|
2005-04-09 18:53:39 +02:00
|
|
|
|
* cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
|
|
|
|
|
|
2005-04-09 18:55:03 +02:00
|
|
|
|
* cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
|
|
|
|
|
CONV_STATIC_CAST): Remove.
|
|
|
|
|
|
2005-04-09 18:57:01 +02:00
|
|
|
|
* pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
|
|
|
|
|
|
2005-04-09 18:58:14 +02:00
|
|
|
|
* cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
|
|
|
|
|
|
2005-04-09 21:16:29 +02:00
|
|
|
|
* cp-tree.h (cp_deprecated): Remove.
|
|
|
|
|
|
c-common.def: Move FOR_STMT...
./ * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
* c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
(DO_COND, DO_BODY): Likewise.
(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
(c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
(build_continue_stmt, build_break_stmt): Don't declare.
(c_do_switch_warnings): Update declaration.
* c-gimplify.c (enum bc_t): Remove.
(struct c_gimplify_ctx, ctxp): Remove.
(push_context, pop_context): Remove static functions.
(c_genericize): Don't call push_context or pop_context.
(begin_bc_block, finish_bc_block): Remove static functions.
(build_bc_goto): Likewise.
(gimplify_c_loop): Likewise.
(gimplify_for_stmt, gimplify_while_stmt): Likewise.
(gimplify_do_stmt, gimplify_switch_stmt): Likewise.
(c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
* c-common.c (c_do_switch_warnings): Rename from
c_do_switch_warnings_1.
(c_do_switch_warnings) [old version]: Remove.
(c_do_switch_expr_warnings): Remove.
* c-typeck.c (c_finish_case): Call new c_do_switch_warnings
function instead of c_do_switch_expr_warnings.
* c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
* c-pretty-print.c (pp_c_statement): Likewise.
* c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
cp/
* cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
CONTINUE_STMT, SWITCH_STMT.
* cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
(WHILE_COND, WHILE_BODY): Define.
(DO_COND, DO_BODY): Define.
(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
* cp-gimplify.c (enum bc_t): Define.
(struct cp_gimplify_ctx, ctxp): Define.
(push_context, pop_context): New static functions.
(begin_bc_block, finish_bc_block): New static functions.
(build_bc_goto): New static function.
(gimplify_cp_loop, gimplify_for_stmt): New static functions.
(gimplify_while_stmt, gimplify_do_stmt): Likewise.
(gimplify_switch_stmt): Likewise.
(cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
(cp_genericize): Call push_context and pop_context.
* semantics.c (finish_break_stmt): Just call build_stmt
(BREAK_STMT) rather than build_break_stmt.
(finish_continue_stmt): Corresponding change.
* decl.c (pop_switch): Update call to c_do_switch_warnings for new
parameters.
* cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
* dump.c (cp_dump_tree): Likewise.
From-SVN: r97885
2005-04-09 05:18:18 +02:00
|
|
|
|
2005-04-08 Ian Lance Taylor <ian@airs.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
|
|
|
|
|
CONTINUE_STMT, SWITCH_STMT.
|
|
|
|
|
* cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
|
|
|
|
|
BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
|
|
|
|
|
(WHILE_COND, WHILE_BODY): Define.
|
|
|
|
|
(DO_COND, DO_BODY): Define.
|
|
|
|
|
(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
|
|
|
|
|
(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
|
|
|
|
|
* cp-gimplify.c (enum bc_t): Define.
|
|
|
|
|
(struct cp_gimplify_ctx, ctxp): Define.
|
|
|
|
|
(push_context, pop_context): New static functions.
|
|
|
|
|
(begin_bc_block, finish_bc_block): New static functions.
|
|
|
|
|
(build_bc_goto): New static function.
|
|
|
|
|
(gimplify_cp_loop, gimplify_for_stmt): New static functions.
|
|
|
|
|
(gimplify_while_stmt, gimplify_do_stmt): Likewise.
|
|
|
|
|
(gimplify_switch_stmt): Likewise.
|
|
|
|
|
(cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
|
|
|
|
|
SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
|
|
|
|
|
(cp_genericize): Call push_context and pop_context.
|
|
|
|
|
* semantics.c (finish_break_stmt): Just call build_stmt
|
|
|
|
|
(BREAK_STMT) rather than build_break_stmt.
|
|
|
|
|
(finish_continue_stmt): Corresponding change.
|
|
|
|
|
* decl.c (pop_switch): Update call to c_do_switch_warnings for new
|
|
|
|
|
parameters.
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
|
|
|
|
|
WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
|
|
|
|
|
* dump.c (cp_dump_tree): Likewise.
|
|
|
|
|
|
2005-04-08 21:39:59 +02:00
|
|
|
|
2005-04-08 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-04-08 23:13:57 +02:00
|
|
|
|
PR c++/20905
|
|
|
|
|
* parser.c (cp_parser_type_specifier_seq): Add is_condition
|
|
|
|
|
parameter.
|
|
|
|
|
(cp_parser_new_type_id): Pass it.
|
|
|
|
|
(cp_parser_condition): Likewise.
|
|
|
|
|
(cp_parser_conversion_type_id): Likewise.
|
|
|
|
|
(cp_parser_type_id): Likewise.
|
|
|
|
|
(cp_parser_type_specifier_seq): In a condition, do not allow
|
|
|
|
|
invalid type-specifier combinations.
|
|
|
|
|
(cp_parser_exception_declaration): Adjust call to
|
2005-06-14 22:01:59 +02:00
|
|
|
|
cp_parser_type_specifier_seq.
|
2005-04-08 23:13:57 +02:00
|
|
|
|
|
2005-04-08 21:39:59 +02:00
|
|
|
|
* cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
|
|
|
|
|
* cp-tree.h (struct tinst_level): Add in_system_header_p.
|
|
|
|
|
(TINST_IN_SYSTEM_HEADER_P): New macro.
|
|
|
|
|
(make_tinst_level): Remove.
|
|
|
|
|
* pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
|
|
|
|
|
the instantiated class.
|
|
|
|
|
(push_tinst_level): Do not use make_tinst_level. Set
|
|
|
|
|
TINST_IN_SYSTEM_HEADER_P.
|
|
|
|
|
(pop_tinst_level): Likewise.
|
|
|
|
|
(instantiate_class_template): Set in_system_header.
|
|
|
|
|
(instantiate_pending_templates): Likewise.
|
|
|
|
|
* tree.c (make_tinst_level): Remove.
|
|
|
|
|
|
2005-04-06 19:17:38 +02:00
|
|
|
|
2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (start_decl): Apply pending #pragma weak regardless of
|
|
|
|
|
scope.
|
|
|
|
|
|
2005-04-06 17:55:00 +02:00
|
|
|
|
2005-04-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20212
|
|
|
|
|
* pt.c (regenerate_decl_from_template): Copy attributes for
|
|
|
|
|
parameters from the pattern to the instantiation.
|
|
|
|
|
|
2005-04-06 17:40:05 +02:00
|
|
|
|
2005-04-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20734
|
|
|
|
|
* cp-tree.def (OFFSET_REF): Correct comments.
|
|
|
|
|
* init.c (build_offset_ref): Remove misleading comment.
|
|
|
|
|
* typeck.c (build_unary_op): Handle pointer-to-member creation
|
|
|
|
|
here, rather than ...
|
|
|
|
|
(unary_complex_lvalue): ... here.
|
|
|
|
|
|
2005-04-06 06:57:39 +02:00
|
|
|
|
2005-04-06 Jason Merrill <jason@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19312
|
|
|
|
|
* tree.c (stabilize_init): Don't bother trying to stabilize
|
|
|
|
|
something with no side-effects.
|
|
|
|
|
|
2005-04-05 20:21:00 +02:00
|
|
|
|
2005-04-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20763
|
|
|
|
|
* decl.c (grokdeclarator): Correct attribute handling.
|
|
|
|
|
|
2005-04-05 17:40:16 +02:00
|
|
|
|
2005-04-05 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19159
|
|
|
|
|
* decl2.c (import_export_decl): Use non-COMDAT external linkage
|
|
|
|
|
for virtual tables, typeinfo, etc. that will be emitted in only
|
|
|
|
|
one translation unit on systems without weak symbols.
|
|
|
|
|
|
2005-04-04 21:11:07 +02:00
|
|
|
|
2005-04-04 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20679
|
|
|
|
|
* parser.c (cp_parser_template_name): Fix thinko.
|
|
|
|
|
|
2005-04-04 19:45:16 +02:00
|
|
|
|
2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20746
|
|
|
|
|
* method.c (use_thunk): Protect covariant pointer return
|
|
|
|
|
adjustments from NULL pointers.
|
|
|
|
|
|
2005-04-04 17:12:55 +02:00
|
|
|
|
2005-04-04 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* decl2.c (finish_objects): Revert my previous patch.
|
|
|
|
|
(cp_finish_file): Likewise.
|
|
|
|
|
|
2005-04-03 16:24:28 +02:00
|
|
|
|
2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* pt.c: Fix comment typos.
|
|
|
|
|
|
2005-04-03 14:33:02 +02:00
|
|
|
|
2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20723
|
|
|
|
|
* pt.c (more_specialized_fn): Member functions are unordered wrt
|
|
|
|
|
non-members. Conversion operators are unordered wrt other
|
|
|
|
|
functions.
|
|
|
|
|
|
2005-04-01 10:29:50 +02:00
|
|
|
|
2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* call.c (add_template_candidates_real): Remove length parameter
|
|
|
|
|
from fn_type_unification call.
|
|
|
|
|
* class.c (resolve_address_of_overloaded_function): Likewise
|
|
|
|
|
* cp-tree.h (fn_type_unification): Remove length parameter.
|
|
|
|
|
* pt.c (get_bindings_overload): Remove.
|
|
|
|
|
(get_bindings_real): Rename to ...
|
|
|
|
|
(get_bindings): ... here. Remove length and strict
|
|
|
|
|
parameters. Change return type flag to boolean. Remove original
|
|
|
|
|
forwarding function.
|
|
|
|
|
(determine_specialization): Adjust get_bindings call.
|
|
|
|
|
(fn_type_unification): Remove length parameter. Adjust.
|
|
|
|
|
(type_unification_real): Remove length parameter. Adjust.
|
|
|
|
|
(resolve_overloaded_unification): Adjust get_bindings call.
|
|
|
|
|
(try_one_overload): Simplify confusing cascaded if control flow.
|
|
|
|
|
(unify): Remove length paramter from type_unification_real call.
|
|
|
|
|
(most_specialized_instantiation): Adjust get_bindings calls.
|
|
|
|
|
(most_specialized): Likewise.
|
|
|
|
|
|
2005-03-31 19:36:17 +02:00
|
|
|
|
2005-03-31 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19203, implement DR 214
|
|
|
|
|
* call.c (joust): Use more_specialized_fn.
|
|
|
|
|
* cp-tree.h (DEDUCE_ORDER): Remove.
|
|
|
|
|
(more_specialized): Replace with ...
|
|
|
|
|
(more_specialized_fn): ... this.
|
|
|
|
|
* pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
|
|
|
|
|
case.
|
|
|
|
|
(type_unification_real): Remove DEDUCE_ORDER case.
|
|
|
|
|
(more_specialized): Replace with ...
|
|
|
|
|
(more_specialized_fn): ... this. Implement DR 214.
|
|
|
|
|
(most_specialized_instantiation): Use get_bindings_real directly.
|
|
|
|
|
|
2005-03-31 16:21:14 +02:00
|
|
|
|
2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
|
|
|
|
|
|
|
|
|
PR c++/18644
|
|
|
|
|
* call.c (build_new_op): Remove check for -Wsynth.
|
|
|
|
|
|
2005-03-31 00:28:02 +02:00
|
|
|
|
2005-03-31 Jan Hubicka <jh@suse.cz>
|
|
|
|
|
|
|
|
|
|
* decl2.c (finish_objects): Mark ctor as needed.
|
|
|
|
|
(cp_finish_file): Output variables only in nonunit-at-a-time.
|
|
|
|
|
|
2005-03-30 03:35:15 +02:00
|
|
|
|
2005-03-29 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c/20519
|
|
|
|
|
* decl.c (cp_complete_array_type): Rename from complete_array_type.
|
|
|
|
|
Use the new complete_array_type in c-common.c. Update all callers.
|
|
|
|
|
* cp-tree.h (cp_complete_array_type): Update to match.
|
|
|
|
|
|
2005-03-25 00:33:56 +01:00
|
|
|
|
2005-03-24 Geoffrey Keating <geoffk@apple.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (build_static_cast_1): Allow scalar_cast between
|
|
|
|
|
any integral, floating, or enumeration type.
|
|
|
|
|
|
2005-03-24 08:20:42 +01:00
|
|
|
|
2005-03-24 Steven Bosscher <stevenb@suse.de>
|
|
|
|
|
|
|
|
|
|
* typeck.c (comptypes): First determine if the types are compatible
|
|
|
|
|
from a target-independent point of view. Check target attributes
|
|
|
|
|
last.
|
|
|
|
|
|
|
|
|
|
* class.c (build_base_path):
|
|
|
|
|
(build_vbase_offset_vtbl_entries):
|
|
|
|
|
(add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
|
|
|
|
|
* error.c (dump_expr): Likewise.
|
|
|
|
|
* init.c (build_zero_init, expand_cleanup_for_base,
|
|
|
|
|
build_vec_delete_1): Likewise.
|
|
|
|
|
* mangle.c (write_integer_cst): Likewise.
|
|
|
|
|
* method.c (thunk_adjust): Likewise.
|
|
|
|
|
* pt.c (convert_nontype_argument, tsubst, unify): Likewise.
|
|
|
|
|
* tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
|
|
|
|
|
* typeck.c (build_ptrmemfunc_access_expr,
|
|
|
|
|
(get_member_function_from_ptrfunc): Likewise.
|
|
|
|
|
|
2005-03-23 20:47:09 +01:00
|
|
|
|
2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
|
|
|
|
|
|
2005-03-23 02:29:08 +01:00
|
|
|
|
2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (perform_integral_promotions): Remove.
|
|
|
|
|
(default_conversion): Add.
|
|
|
|
|
|
2005-03-23 00:11:31 +01:00
|
|
|
|
2005-03-22 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_warn_min_max): New function.
|
|
|
|
|
(cp_parser_binary_expression): Use it.
|
|
|
|
|
(cp_parser_assignment_operator_opt): Likewise.
|
|
|
|
|
(cp_parser_operator): Likewise.
|
|
|
|
|
|
2005-03-22 16:07:04 +01:00
|
|
|
|
2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/19980
|
|
|
|
|
* decl.c (start_preparsed_function): Robustify.
|
|
|
|
|
|
2005-03-22 15:44:10 +01:00
|
|
|
|
2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/20499
|
|
|
|
|
* parser.c (cp_parser_class_head): Return NULL_TREE when
|
|
|
|
|
encountering a redefinition.
|
|
|
|
|
|
2005-03-22 10:30:22 +01:00
|
|
|
|
2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20465
|
|
|
|
|
PR c++/20381
|
|
|
|
|
* typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
|
|
|
|
|
template.
|
|
|
|
|
|
2005-03-21 12:49:32 +01:00
|
|
|
|
2005-03-21 Paolo Carlini <pcarlini@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/20461
|
|
|
|
|
PR c++/20536
|
|
|
|
|
* init.c (emit_mem_initializers): Don't crash on undefined
|
|
|
|
|
types.
|
|
|
|
|
|
|
|
|
|
2005-03-21 Paolo Carlini <pcarlini@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/20147
|
|
|
|
|
* semantics.c (finish_stmt_expr_expr): Return immediately
|
|
|
|
|
if error_operand_p (expr).
|
|
|
|
|
|
2005-03-21 03:22:08 +01:00
|
|
|
|
2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (lvalue_or_else, lvalue_p): New.
|
|
|
|
|
* typeck.c (lvalue_or_else): New. Call lvalue_error.
|
|
|
|
|
|
2005-03-19 13:35:24 +01:00
|
|
|
|
2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/20240
|
|
|
|
|
* decl.c (decls_match): Compare context of VAR_DECL.
|
|
|
|
|
|
2005-03-19 12:54:49 +01:00
|
|
|
|
2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/20333
|
|
|
|
|
* parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
|
|
|
|
|
Check the return value of cp_parser_nested_name_specifier.
|
|
|
|
|
|
2005-04-16 01:17:15 +02:00
|
|
|
|
2005-03-18 Dale Johannesen <dalej@apple.com>
|
|
|
|
|
|
|
|
|
|
* cp/tree.c (cp_tree_equal): Handle SSA_NAME.
|
|
|
|
|
|
2005-03-18 18:16:16 +01:00
|
|
|
|
2005-03-18 Paolo Carlini <pcarlini@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/20463
|
|
|
|
|
* parser.c (cp_parser_diagnose_invalid_type_name):
|
|
|
|
|
Check TYPE_BINFO (current_class_type) before attempting
|
|
|
|
|
to emit inform messages.
|
|
|
|
|
|
2005-03-17 15:37:04 +01:00
|
|
|
|
2005-03-17 Paolo Carlini <pcarlini@suse.de>
|
|
|
|
|
|
|
|
|
|
PR c++/19966
|
|
|
|
|
* cp-tree.h (grok_op_properties): Change return type to void.
|
|
|
|
|
* decl.c (grok_op_properties): Return early - don't check the
|
|
|
|
|
arity - in case of a static member or an operator that cannot
|
|
|
|
|
be non-member; tidy a bit.
|
|
|
|
|
|
2005-03-17 14:26:39 +01:00
|
|
|
|
2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20186
|
|
|
|
|
* pt.c (contains_dependent_cast_p): Remove.
|
|
|
|
|
(fold_non_dependent_expr): Don't use it.
|
|
|
|
|
(value_dependent_expression_p): Use a switch statement.
|
|
|
|
|
reference_exprs can be dependent.
|
|
|
|
|
|
2005-03-14 15:51:25 +01:00
|
|
|
|
2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/4403
|
|
|
|
|
PR c++/9783, DR433
|
|
|
|
|
* name-lookup.c (pushtag): Skip template parameter scope when
|
|
|
|
|
scope is ts_global. Don't push tag into template parameter
|
|
|
|
|
scope.
|
|
|
|
|
* pt.c (instantiate_class_template): Reorder friend class
|
|
|
|
|
template substitution to handle non-dependent friend class
|
|
|
|
|
that hasn't been previously declared.
|
|
|
|
|
|
2005-03-14 15:33:54 +01:00
|
|
|
|
2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
Friend class name lookup 5/n
|
|
|
|
|
PR c++/1016
|
|
|
|
|
* cp-tree.h (pushtag): Adjust declaration.
|
|
|
|
|
* decl.c (lookup_and_check_tag): Call lookup_type_scope if
|
|
|
|
|
lookup_name fails.
|
|
|
|
|
(xref_tag): Adjust call to pushtag. Make hidden class visible.
|
|
|
|
|
(start_enum): Adjust call to pushtag.
|
|
|
|
|
* name-lookup.c (ambiguous_decl): Ignore hidden names.
|
|
|
|
|
(qualify_lookup): Change return type to bool.
|
|
|
|
|
(hidden_name_p): New function.
|
|
|
|
|
(lookup_namespace_name, unqualified_namespace_lookup,
|
|
|
|
|
lookup_name_real): Use it.
|
|
|
|
|
(lookup_type_scope): Update comments.
|
|
|
|
|
(maybe_process_template_type_declaration): Change parameter name
|
|
|
|
|
from globalize to is_friend.
|
|
|
|
|
(pushtag): Change globalize parameter of type int to tag_scope.
|
|
|
|
|
Hide name if introduced by friend declaration.
|
|
|
|
|
* name-lookup.h (hidden_name_p): Add declaration.
|
|
|
|
|
* parser.c (cp_parser_lookup_name): Don't deal with hidden name
|
|
|
|
|
here.
|
|
|
|
|
* pt.c (push_template_decl_real): Make hidden class template
|
|
|
|
|
visible.
|
|
|
|
|
(lookup_template_class, instantiate_class_template): Adjust call
|
|
|
|
|
to pushtag.
|
|
|
|
|
* semantics.c (begin_class_definition): Likewise.
|
2005-06-14 22:01:59 +02:00
|
|
|
|
* rtti.c (init_rtti_processing, build_dynamic_cast_1,
|
2005-03-14 15:33:54 +01:00
|
|
|
|
tinfo_base_init, emit_support_tinfos): Use ts_current instead of
|
|
|
|
|
ts_global.
|
|
|
|
|
|
2005-03-14 04:54:21 +01:00
|
|
|
|
2005-03-13 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20157
|
2005-06-14 22:01:59 +02:00
|
|
|
|
* pt.c (determine_specialization): Reject non-specializations.
|
2005-03-14 04:54:21 +01:00
|
|
|
|
|
2005-03-12 07:39:31 +01:00
|
|
|
|
2005-03-11 Per Bothner <per@bothner.com>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (struct cp_declarator): New id_loc field.
|
|
|
|
|
* cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
|
|
|
|
|
location using c_lex_with_flags, instead of input_location.
|
|
|
|
|
(cp_parser_direct_declarator): Set declarator's id_loc from
|
|
|
|
|
cp_token's id_loc.
|
|
|
|
|
|
2005-03-10 15:19:51 +01:00
|
|
|
|
2005-03-10 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/18384, c++/18327
|
|
|
|
|
* decl.c (reshape_init_array): Use UHWI type for max_index_cst
|
|
|
|
|
and index. Convert max_index to size_type_node if it isn't
|
|
|
|
|
host_integerp (, 1).
|
|
|
|
|
|
2005-03-09 19:35:48 +01:00
|
|
|
|
2005-03-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20208
|
|
|
|
|
* pt.c (tsubst_decl): Apply array-to-pointer and
|
|
|
|
|
function-to-pointer conversions to function arguments.
|
|
|
|
|
(regenerate_decl_from_template): Likewise.
|
|
|
|
|
|
2005-03-09 18:03:34 +01:00
|
|
|
|
2005-03-09 Paolo Carlini <pcarlini@suse.de>
|
|
|
|
|
|
2005-06-14 22:01:59 +02:00
|
|
|
|
PR c++/16859
|
2005-03-09 18:03:34 +01:00
|
|
|
|
* decl.c (complete_array_type): In pedantic mode, return
|
|
|
|
|
3 for an empty initializer list as the initializer for an
|
|
|
|
|
array of unknown bound (8.5.1/4).
|
|
|
|
|
(maybe_deduce_size_from_array_init): Fix final test to use
|
|
|
|
|
the above.
|
|
|
|
|
|
2005-03-09 13:57:13 +01:00
|
|
|
|
2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20186
|
|
|
|
|
* pt.c (contains_dependent_cast_p): New.
|
|
|
|
|
(fold_non_dependent_expr): Call it.
|
|
|
|
|
|
2005-03-09 08:28:10 +01:00
|
|
|
|
2005-03-08 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20142
|
|
|
|
|
* cp-tree.h (target_type): Remove.
|
|
|
|
|
* decl.c (layout_var_decl): Remove #if 0'd code.
|
|
|
|
|
(cp_finish_decl): Remove dead code.
|
|
|
|
|
* init.c (build_vec_init): When determining whether or not the
|
|
|
|
|
element type has an asignment operator, look through all array
|
2005-06-14 22:01:59 +02:00
|
|
|
|
dimensions.
|
2005-03-09 08:28:10 +01:00
|
|
|
|
* typeck.c (target_type): Remove.
|
|
|
|
|
|
2005-03-08 00:08:58 +01:00
|
|
|
|
2005-03-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* class.c (finish_struct_1): Do not warn about non-virtual
|
|
|
|
|
destructors in Java classes.
|
|
|
|
|
|
2005-03-05 16:44:22 +01:00
|
|
|
|
2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/19311
|
|
|
|
|
* init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
|
|
|
|
|
* pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
|
|
|
|
|
for OFFSET_TYPE.
|
|
|
|
|
* typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
|
|
|
|
|
Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
|
|
|
|
|
(build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
|
|
|
|
|
template.
|
|
|
|
|
|
2005-03-02 20:55:52 +01:00
|
|
|
|
2005-03-02 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (push_overloaded_decl): Don't error if the new
|
|
|
|
|
decl matches the old one.
|
|
|
|
|
* decl.c (redeclaration_error_message): Likewise.
|
|
|
|
|
|
2005-03-02 01:23:47 +01:00
|
|
|
|
2005-03-01 Per Bothner <per@bothner.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (finish_function): Use SET_EXPR_LOCATION instead of
|
|
|
|
|
unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
|
|
|
|
|
|
2005-03-01 10:57:45 +01:00
|
|
|
|
2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20232
|
|
|
|
|
* class.c (update_vtable_entry_for_fn): Don't crash on invalid
|
2005-06-14 22:01:59 +02:00
|
|
|
|
covariancy.
|
2005-03-01 10:57:45 +01:00
|
|
|
|
|
|
|
|
|
* cp-tree.g (THUNK_TARGET): Expand comment.
|
|
|
|
|
* method.c (use_thunk): Make sure we also use the target, if that
|
|
|
|
|
is a thunk.
|
|
|
|
|
|
2005-02-27 18:13:28 +01:00
|
|
|
|
2005-02-27 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20206
|
|
|
|
|
* decl.c (cxx_comdat_group): Put thunks for
|
|
|
|
|
TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
|
|
|
|
|
comdat group as the thunk target.
|
|
|
|
|
|
2005-02-24 22:55:15 +01:00
|
|
|
|
2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
|
|
|
|
|
parser.c: Fix comment typo(s).
|
|
|
|
|
|
2005-02-24 22:21:28 +01:00
|
|
|
|
2005-02-24 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/20175
|
|
|
|
|
* decl.c (reshape_init): Don't warn about missing braces if STRING_CST
|
|
|
|
|
initializes a char/wchar_t array.
|
|
|
|
|
|
2005-02-24 03:42:17 +01:00
|
|
|
|
2005-02-23 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19878
|
|
|
|
|
* decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
|
|
|
|
|
with internal linkage.
|
|
|
|
|
|
2005-02-23 19:57:43 +01:00
|
|
|
|
2005-02-23 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (grokvardecl): Don't exempt anonymous types from having
|
|
|
|
|
linkage for variables that have linkage other than "C".
|
|
|
|
|
|
2005-02-23 16:14:47 +01:00
|
|
|
|
2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-objcp-common.h, error.c: Update copyright.
|
|
|
|
|
|
2005-02-22 22:43:55 +01:00
|
|
|
|
2005-02-22 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-02-23 07:55:07 +01:00
|
|
|
|
PR c++/20073
|
|
|
|
|
* decl.c (start_decl_1): Don't clear TREE_READONLY.
|
|
|
|
|
(cp_finish_decl): Likewise.
|
|
|
|
|
(complete_vars): Call cp_apply_type_quals_to_decl.
|
|
|
|
|
* typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
|
|
|
|
|
cases where that's not valid.
|
|
|
|
|
|
2005-02-23 06:30:48 +01:00
|
|
|
|
PR c++/19991
|
|
|
|
|
* init.c (integral_constant_value): Iterate if the value of a decl
|
|
|
|
|
is itself a constant.
|
|
|
|
|
|
|
|
|
|
PR c++/20152
|
|
|
|
|
* parser.c (cp_parser_class_head): Check for redefintions here.
|
|
|
|
|
* semantics.c (begin_class_definition): Not here.
|
2005-06-14 22:01:59 +02:00
|
|
|
|
|
2005-02-23 06:30:48 +01:00
|
|
|
|
PR c++/20153
|
|
|
|
|
* decl2.c (build_anon_union_vars): Add type parameter.
|
|
|
|
|
(finish_anon_union): Pass it.
|
|
|
|
|
|
|
|
|
|
PR c++/20148
|
|
|
|
|
* error.c (dump_expr): Do not print the body of a BIND_EXPR.
|
|
|
|
|
Handle STATEMENT_LIST.
|
|
|
|
|
|
2005-02-22 22:43:55 +01:00
|
|
|
|
PR c++/19883
|
|
|
|
|
* parser.c (cp_parser_direct_declarator): Always complain about
|
|
|
|
|
non-constant array bounds when in a function scope.
|
|
|
|
|
* semantics.c (finish_id_expression): Do not mark dependent names
|
2005-06-14 22:01:59 +02:00
|
|
|
|
as non-constant.
|
2005-02-22 22:43:55 +01:00
|
|
|
|
|
2005-02-22 00:12:27 +01:00
|
|
|
|
2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
|
2005-06-14 22:01:59 +02:00
|
|
|
|
|
2005-02-22 00:12:27 +01:00
|
|
|
|
PR c++/19076
|
|
|
|
|
PR c++/6628
|
|
|
|
|
* cp-tree.h (cp_apply_type_quals_to_decl): Declared.
|
|
|
|
|
* decl.c (grokdeclarator): Pedwarn about qualifying a function
|
2005-06-14 22:01:59 +02:00
|
|
|
|
type.
|
2005-02-22 00:12:27 +01:00
|
|
|
|
Add qualifiers when declaring a typedef of a function type.
|
|
|
|
|
Member function pointers pick up the qualifiers of the typedef
|
|
|
|
|
used to declare them.
|
2005-03-24 08:20:42 +01:00
|
|
|
|
Don't complain about creating cv-qualified function types.
|
2005-02-22 00:12:27 +01:00
|
|
|
|
Complain about qualified function typedefs that are used to
|
|
|
|
|
declare non-static member functions or free functions.
|
|
|
|
|
Use cp_apply_type_quals_to_decl.
|
|
|
|
|
(start_preparsed_function): Use cp_apply_type_quals_to_decl.
|
|
|
|
|
(grokclassfn): Use cp_apply_type_quals_to_decl.
|
|
|
|
|
* error.c (dump_type_suffix): Print qualifiers for function
|
2005-06-14 22:01:59 +02:00
|
|
|
|
types.
|
2005-02-22 00:12:27 +01:00
|
|
|
|
* pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
|
|
|
|
|
(tsubst): When substituting a function type into a member
|
|
|
|
|
pointer type, pass along the qualifiers.
|
|
|
|
|
(unify): Unify member pointers to member function pointers.
|
|
|
|
|
* tree.c (cp_build_qualified_type_real): Function types may be
|
|
|
|
|
qualified. This includes restrict qualifiers.
|
|
|
|
|
* typeck.c (cp_apply_type_quals_to_decl): New function to replace
|
|
|
|
|
use of c_apply_type_quals_to_decl. Drops qualifiers that are being
|
|
|
|
|
added to function types.
|
|
|
|
|
|
2005-02-20 18:01:32 +01:00
|
|
|
|
2005-02-20 Zack Weinberg <zack@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR 18785
|
|
|
|
|
* cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
|
|
|
|
|
c_common_to_target_charset. Delete bogus comment.
|
|
|
|
|
|
2005-02-19 03:35:25 +01:00
|
|
|
|
2005-02-18 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR libstdc++/10606
|
|
|
|
|
* except.c (do_get_exception_ptr): New.
|
|
|
|
|
(expand_start_catch_block): Use it.
|
|
|
|
|
|
2005-02-19 00:20:55 +01:00
|
|
|
|
2005-02-19 Jakub Jelinek <jakub@redhat.com>
|
2005-02-19 00:20:00 +01:00
|
|
|
|
|
|
|
|
|
* decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
|
|
|
|
|
if type is not error_mark_node.
|
|
|
|
|
|
2005-02-18 20:11:58 +01:00
|
|
|
|
2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/19508
|
|
|
|
|
* decl2.c (grokfield): Do not apply attributes to template parameters
|
|
|
|
|
as they are ignored by tsubst anyway.
|
|
|
|
|
|
2005-02-18 07:58:40 +01:00
|
|
|
|
2005-02-18 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19813
|
|
|
|
|
* decl.c (start_decl_1): Clear TREE_READONLY flag if
|
|
|
|
|
its type has TYPE_NEEDS_CONSTRUCTING.
|
|
|
|
|
(complete_vars): Likewise.
|
|
|
|
|
|
2005-02-17 17:42:09 +01:00
|
|
|
|
2005-02-17 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
2005-02-17 20:25:05 +01:00
|
|
|
|
PR c++/20028
|
|
|
|
|
* class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
|
|
|
|
|
template along with TYPE_SIZE.
|
|
|
|
|
|
2005-02-17 17:42:09 +01:00
|
|
|
|
PR c++/20022
|
|
|
|
|
* semantics.c (perform_deferred_access_checks): Use
|
|
|
|
|
get_deferred_access_checks to get the top of the stack.
|
|
|
|
|
|
2005-02-15 20:39:31 +01:00
|
|
|
|
2005-02-15 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/17788
|
|
|
|
|
* class.c (add_implicitly_declared_members, check_field_decl)
|
|
|
|
|
(check_field_decls, check_bases): Remove arguments, tests and
|
|
|
|
|
assignments of cant_have_default_ctor-related variables.
|
|
|
|
|
|
2005-02-15 20:37:13 +01:00
|
|
|
|
2005-02-15 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
* decl2.c (mark_used): Set the source location of the used decl to
|
|
|
|
|
the current input location here...
|
|
|
|
|
* method.c (synthesize_method): ... not here. Set input_location
|
|
|
|
|
from the decl instead.
|
|
|
|
|
|
2005-02-14 14:45:42 +01:00
|
|
|
|
2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
2005-02-14 18:50:58 +01:00
|
|
|
|
PR c++/19608
|
|
|
|
|
* parser.c (cp_parser_late_parsing_for_member): Use
|
|
|
|
|
current_function_decl as scope to push to and from.
|
|
|
|
|
|
2005-02-14 14:45:42 +01:00
|
|
|
|
PR c++/19884
|
|
|
|
|
* pt.c (check_explicit_specialization): Make sure namespace
|
|
|
|
|
binding lookup found an overloaded function.
|
|
|
|
|
(lookup_template_function): Just assert FNS is an overloaded
|
|
|
|
|
function.
|
|
|
|
|
|
|
|
|
|
PR c++/19895
|
|
|
|
|
* decl.c (grokdeclarator): Check for error mark node in ptrmem
|
|
|
|
|
construction.
|
|
|
|
|
|
2005-02-14 13:01:15 +01:00
|
|
|
|
2005-02-14 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/17816
|
|
|
|
|
* decl.c (redeclaration_error_message): Report redefinition of
|
|
|
|
|
pure virtual function.
|
|
|
|
|
|
2005-02-14 14:45:42 +01:00
|
|
|
|
2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
|
2005-02-14 10:36:35 +01:00
|
|
|
|
|
|
|
|
|
PR c++/19891
|
|
|
|
|
* class.c (build_simple_base_path): Build the component_ref
|
|
|
|
|
directly.
|
|
|
|
|
(update_vtable_entry_for_fn): Walk the covariant's binfo chain
|
|
|
|
|
rather than using lookup_base.
|
|
|
|
|
* search.c (dfs_walk_once): Add non-recursive assert check.
|
|
|
|
|
* typeck.c (build_class_member_access_expr): It is possible for
|
|
|
|
|
the member type to be both const and volatile.
|
|
|
|
|
|
2005-02-12 16:40:28 +01:00
|
|
|
|
2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/14479
|
|
|
|
|
PR c++/19487
|
|
|
|
|
* pt.c (maybe_check_template_type): Remove.
|
|
|
|
|
* cp-tree.h (maybe_check_template_type): Remove prototype.
|
|
|
|
|
* name-lookup.c (maybe_process_template_type_declaration): Don't
|
|
|
|
|
use maybe_check_template_type.
|
|
|
|
|
|
2005-02-11 21:22:23 +01:00
|
|
|
|
2005-02-11 Richard Henderson <rth@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19632
|
2005-02-20 18:01:32 +01:00
|
|
|
|
* pt.c (get_mostly_instantiated_function_type): Save and restore
|
|
|
|
|
flag_access_control instead of push/pop_access_scope.
|
2005-02-11 21:22:23 +01:00
|
|
|
|
|
2005-02-11 18:15:50 +01:00
|
|
|
|
2005-02-10 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19755
|
|
|
|
|
* decl.c (reshape_init): Issue warnings about missing braces.
|
|
|
|
|
|
2005-02-11 17:28:37 +01:00
|
|
|
|
2005-02-11 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.def, except.c, ptree.c: Update copyright.
|
|
|
|
|
|
2005-02-10 01:34:46 +01:00
|
|
|
|
2005-02-09 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-02-10 08:55:04 +01:00
|
|
|
|
PR c++/19811
|
|
|
|
|
* call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
|
|
|
|
|
attempting name lookup.
|
|
|
|
|
|
2005-02-10 05:39:41 +01:00
|
|
|
|
* parser.c (cp_parser_unqualified_id): Initialize type_decl.
|
|
|
|
|
|
2005-02-10 01:34:46 +01:00
|
|
|
|
PR c++/19787
|
|
|
|
|
* call.c (initialize_reference): Robustify.
|
|
|
|
|
|
|
|
|
|
PR ++/19732
|
|
|
|
|
* decl.c (grokdeclarator): Check for invalid use of destructor
|
|
|
|
|
names.
|
|
|
|
|
|
|
|
|
|
PR c++/19762
|
|
|
|
|
* parser.c (cp_parser_unqualified_id): Avoid creating destructor
|
|
|
|
|
names with invalid types.
|
|
|
|
|
|
|
|
|
|
PR c++/19826
|
|
|
|
|
* parser.c (cp_parser_direct_declarator): Allow type-dependent
|
|
|
|
|
expressions as array bounds.
|
|
|
|
|
|
|
|
|
|
PR c++/19739
|
|
|
|
|
* parser.c (cp_parser_attributes_list): Allow empty lists.
|
|
|
|
|
|
2005-02-09 03:53:41 +01:00
|
|
|
|
2005-02-08 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19733
|
|
|
|
|
* class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
(check_bases): Give warnings about a base class with a
|
|
|
|
|
non-virtual destructor, even if it is implicit.
|
|
|
|
|
(finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
(maybe_warn_about_overly_private_class): Don't use
|
|
|
|
|
TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
(finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
(check_for_override): Give it external linkage.
|
|
|
|
|
(add_implicitly_declared_members): Generate destructors lazily.
|
|
|
|
|
(check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
|
|
|
|
|
TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
(check_bases_and_members): Call check_methods before
|
|
|
|
|
check_field_decls.
|
|
|
|
|
(check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
|
|
|
|
|
TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
(finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
* cp-tree.def (PSEUDO_DTOR_EXPR): Document.
|
|
|
|
|
* cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
|
|
|
|
|
(lang_type_class): Add lazy_destructor.
|
|
|
|
|
(CLASSTYPE_LAZY_DESTRUCTOR): New macro.
|
|
|
|
|
(CLASSTYPE_DESTRUCTORS): Robustify.
|
|
|
|
|
(TYPE_HAS_DESTRUCTOR): Remove.
|
|
|
|
|
(check_for_override): Declare.
|
|
|
|
|
(build_vbase_delete): Remove.
|
|
|
|
|
* cvt.c (convert_to_void): Issue errors about pseudo-destructor
|
|
|
|
|
expressions.
|
|
|
|
|
* decl.c (cxx_maybe_build_cleanup): Remove dead code.
|
|
|
|
|
* except.c (dtor_nothrow): Lazily create destructors if necessary.
|
|
|
|
|
(build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
|
|
|
|
|
* init.c (build_delete): Lazily create destructors, if necessary.
|
|
|
|
|
(build_vbase_delete): Remove.
|
|
|
|
|
* method.c (locate_dtor): Simplify.
|
|
|
|
|
(implicitly_declare_fn): Add support for destructors.
|
|
|
|
|
* parser.c (cp_parser_lookup_name): Lazily create destructors, if
|
|
|
|
|
necessary.
|
|
|
|
|
* pt.c (check_explicit_specialization): Don't use
|
|
|
|
|
TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
(instantiate_class_template): Likewise.
|
|
|
|
|
* ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
|
|
|
|
|
* rtti.c (emit_support_tinfos): Robustify.
|
|
|
|
|
* search.c (lookup_fnfields_1): Lazily create destructors.
|
|
|
|
|
* typeck.c (build_class_member_access_expr): Remove
|
|
|
|
|
PSEUDO_DTOR_EXPR handling.
|
|
|
|
|
(lookup_destructor): Likewise.
|
|
|
|
|
|
2005-02-08 15:46:52 +01:00
|
|
|
|
2005-02-08 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
|
|
|
|
|
copyright.
|
|
|
|
|
|
2005-02-08 05:11:04 +01:00
|
|
|
|
2005-02-07 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
|
|
|
|
|
on boolean variables.
|
|
|
|
|
(cp_lexer_stop_debugging): Likewise.
|
|
|
|
|
|
2005-02-03 11:26:22 +01:00
|
|
|
|
2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/17401
|
|
|
|
|
* parser.c (cp_parser_pure_specifier): Emit a specific error
|
|
|
|
|
message with an invalid pure specifier.
|
|
|
|
|
* decl2.c (grok_function_init): Remove.
|
|
|
|
|
(grokfield): An initializer for a method is a always a pure
|
|
|
|
|
specifier.
|
|
|
|
|
|
2005-02-03 01:02:10 +01:00
|
|
|
|
2005-02-02 Matt Austern <austern@apple.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19628
|
|
|
|
|
* cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
|
|
|
|
|
* parser.c (cp_parser_postfix_expression): Accept function call in
|
|
|
|
|
constant expression if builtin_valid_in_constant_expr_p is true
|
2005-02-20 18:01:32 +01:00
|
|
|
|
for that function.
|
2005-02-03 01:02:10 +01:00
|
|
|
|
* pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
|
|
|
|
|
* semantics.c (finish_id_expression): Accept function call in constant
|
|
|
|
|
expression if builtin_valid_in_constant_expr_p is true for that
|
2005-02-20 18:01:32 +01:00
|
|
|
|
function.
|
2005-02-03 01:02:10 +01:00
|
|
|
|
* tree.c (builtin_valid_in_constant_expr_p): New.
|
2005-02-20 18:01:32 +01:00
|
|
|
|
|
2005-02-02 22:58:46 +01:00
|
|
|
|
2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
PR c++/17413
|
|
|
|
|
* pt.c (check_instantiated_args): Improve error message.
|
|
|
|
|
Fix logic when to print its second part.
|
|
|
|
|
|
2005-02-02 22:19:07 +01:00
|
|
|
|
2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (complete_type_or_else): Remove macro.
|
|
|
|
|
(complete_type_or_diagnostic): Rename to complete_type_or_else
|
|
|
|
|
and remove last argument.
|
|
|
|
|
* typeck.c (complete_type_or_diagnostic): Rename to
|
|
|
|
|
complete_type_or_else and remove last argument.
|
|
|
|
|
|
2005-02-02 22:13:41 +01:00
|
|
|
|
2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h (commonparms): Remove prototype.
|
|
|
|
|
(convert_arguments): Likewise.
|
|
|
|
|
(PFN_FROM_PTRMEMFUNC): Remove.
|
|
|
|
|
* typeck.c (commonparms): Make static.
|
|
|
|
|
(convert_arguments): Add prototype. Make static.
|
|
|
|
|
(PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
|
|
|
|
|
|
2005-02-01 07:58:27 +01:00
|
|
|
|
2005-01-31 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_parser_primary_expression): Don't complain about
|
|
|
|
|
floating-point literals in integral constant expressions when
|
|
|
|
|
!pedantic.
|
|
|
|
|
|
2005-02-01 06:56:08 +01:00
|
|
|
|
2005-02-01 Alexandre Oliva <aoliva@redhat.com>
|
|
|
|
|
|
2005-02-01 07:07:14 +01:00
|
|
|
|
* parser.c (cp_parser_template_id): Revert comment patch too.
|
2005-02-20 18:01:32 +01:00
|
|
|
|
|
2005-02-01 06:56:08 +01:00
|
|
|
|
PR c++/18757
|
|
|
|
|
PR c++/19366
|
|
|
|
|
PR c++/19499
|
|
|
|
|
* parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
|
|
|
|
|
Issue an error when creating the template id.
|
|
|
|
|
* pt.c (fn_type_unification): Return early if the explicit
|
|
|
|
|
template arg list is an error_mark_node.
|
|
|
|
|
|
2005-02-01 02:01:34 +01:00
|
|
|
|
2005-01-31 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (build_enumerator): Do not issue duplicate error messages
|
|
|
|
|
about invalid enumeration constants.
|
|
|
|
|
* parser.c (cp_parser_non_integral_constant_expression): Always
|
|
|
|
|
set parser->non_integral_constant_expression_p.
|
|
|
|
|
(cp_parser_primary_expression): Add cast_p parameter. Issue
|
|
|
|
|
errors about invalid uses of floating-point literals in
|
|
|
|
|
cast-expressions.
|
|
|
|
|
(cp_parser_postfix_expression): Add cast_p parameter.
|
|
|
|
|
(cp_parser_open_square_expression): Pass it.
|
|
|
|
|
(cp_parser_parenthesized_expression_list): Add cast_p parameter.
|
|
|
|
|
(cp_parser_unary_expression): Likewise.
|
|
|
|
|
(cp_parser_new_placement): Pass it.
|
|
|
|
|
(cp_parser_direct_new_declarator): Likewise.
|
|
|
|
|
(cp_parser_new_initializer): Likewise.
|
|
|
|
|
(cp_parser_cast_expression): Add cast_p parameter.
|
|
|
|
|
(cp_parser_binary_expression): Likewise.
|
|
|
|
|
(cp_parser_question_colon_clause): Likewise.
|
|
|
|
|
(cp_parser_assignment_expression): Likewise.
|
|
|
|
|
(cp_parser_expression): Likewise.
|
|
|
|
|
(cp_parser_constant_expression): If an integral constant
|
|
|
|
|
expression is invalid, return error_mark_node.
|
|
|
|
|
(cp_parser_expression_statement): Pass cast_p.
|
|
|
|
|
(cp_parser_condition): Likewise.
|
|
|
|
|
(cp_parser_iteration_statement): Likewise.
|
|
|
|
|
(cp_parser_jump_statement): Likewise.
|
|
|
|
|
(cp_parser_mem_initializer): Likewise.
|
|
|
|
|
(cp_parser_template_argument): Likewise.
|
|
|
|
|
(cp_parser_parameter_declaration): Likewise.
|
|
|
|
|
(cp_parser_initializer): Likewise.
|
|
|
|
|
(cp_parser_throw_expression): Likewise.
|
|
|
|
|
(cp_parser_attribute_list): Likewise.
|
|
|
|
|
(cp_parser_simple_cast_expression): Likewise.
|
|
|
|
|
(cp_parser_functional_cast): Likewise.
|
|
|
|
|
(cp_parser_late_parsing_default_args): Likewise.
|
|
|
|
|
(cp_parser_sizeof_operand): Save/restore
|
|
|
|
|
non_integral_constant_expression_p.
|
|
|
|
|
|
2005-01-31 23:05:07 +01:00
|
|
|
|
2005-01-31 Mike Stump <mrs@apple.com>
|
|
|
|
|
|
|
|
|
|
* parser.c (cp_lexer_new_main): Get the first token, first, before
|
|
|
|
|
doing anything.
|
|
|
|
|
|
2005-01-31 17:16:16 +01:00
|
|
|
|
2005-01-31 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
* decl.c (start_decl): Add missing parentheses.
|
|
|
|
|
|
2005-01-31 02:17:11 +01:00
|
|
|
|
2005-01-30 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-01-31 07:16:54 +01:00
|
|
|
|
PR c++/19555
|
|
|
|
|
* cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
|
|
|
|
|
* decl.c (duplicate_decls): Do not discard
|
|
|
|
|
DECL_IMPLICIT_INSTANTIATION when merging declarations.
|
|
|
|
|
(start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
|
|
|
|
|
variables that do not have DECL_USE_TEMPLATE.
|
|
|
|
|
|
2005-01-31 05:07:41 +01:00
|
|
|
|
PR c++/19395
|
|
|
|
|
* decl.c (grokdeclarator): Refactor code so that qualified names
|
|
|
|
|
are never allowed as the declarator in a typedef.
|
|
|
|
|
|
|
|
|
|
PR c++/19367
|
|
|
|
|
* name-lookup.c (do_nonmember_using_decl): Avoid overloading
|
|
|
|
|
builtin declarations.
|
|
|
|
|
|
2005-01-31 02:17:11 +01:00
|
|
|
|
PR c++/19457
|
|
|
|
|
* call.c (convert_like_real): Inline call to
|
|
|
|
|
dubious_conversion_warnings here.
|
|
|
|
|
* cp-tree.h (dubious_conversion_warnings): Remove.
|
|
|
|
|
* semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
|
|
|
|
|
setting TREE_NEGATED_INT.
|
|
|
|
|
* typeck.c (dubious_conversion_warnings): Remove.
|
|
|
|
|
|
|
|
|
|
PR c++/19349
|
|
|
|
|
* name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
|
2005-02-20 18:01:32 +01:00
|
|
|
|
memory.
|
2005-01-31 02:17:11 +01:00
|
|
|
|
|
2005-01-29 01:47:57 +01:00
|
|
|
|
2005-01-28 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
2005-01-29 03:07:18 +01:00
|
|
|
|
PR c++/19253
|
|
|
|
|
* parser.c (cp_parser_diagnose_invalid_type_name): Commit to
|
|
|
|
|
tentative parses.
|
|
|
|
|
|
2005-01-29 01:47:57 +01:00
|
|
|
|
PR c++/19667
|
|
|
|
|
* pt.c (redeclare_class_template): Robustify.
|
|
|
|
|
|
tree.h (SWITCH_COND, [...]): Add tree checks.
* tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
ASM_CLOBBERS): Add tree checks.
* c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
(SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
* c-common.def (SWITCH_STMT): Update to match.
* c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
macros instead of SWITCH_EXPR ones.
* c-dump.c (c_dump_tree): Likewise.
* c-gimplify.c (gimplify_switch_stmt): Likewise.
* c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
cp/
* decl.c (finish_case_label): Use SWITCH_STMT accessor macros
instead of SWITCH_EXPR ones.
* pt.c (tsubst_expr): Likewise.
* semantics.c (begin_switch_stmt, finish_switch_cond,
finish_switch_stmt): Likewise.
doc/
* c-tree.texi (SWITCH_STMT): Update accessor macro names.
From-SVN: r94315
2005-01-27 08:32:26 +01:00
|
|
|
|
2005-01-27 Steven Bosscher <stevenb@suse.de>
|
|
|
|
|
|
|
|
|
|
* decl.c (finish_case_label): Use SWITCH_STMT accessor macros
|
|
|
|
|
instead of SWITCH_EXPR ones.
|
|
|
|
|
* pt.c (tsubst_expr): Likewise.
|
|
|
|
|
* semantics.c (begin_switch_stmt, finish_switch_cond,
|
|
|
|
|
finish_switch_stmt): Likewise.
|
|
|
|
|
|
2005-01-26 19:45:00 +01:00
|
|
|
|
2005-01-26 J"orn Rennecke <joern.rennecke@st.com>
|
|
|
|
|
|
2005-01-26 19:58:59 +01:00
|
|
|
|
PR c++/18370
|
2005-01-26 20:02:32 +01:00
|
|
|
|
* parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
|
2005-01-26 19:45:00 +01:00
|
|
|
|
|
2005-01-25 20:21:30 +01:00
|
|
|
|
2005-01-25 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
* class.c (abort_fndecl_addr): New variable.
|
|
|
|
|
(build_vtbl_initializer): If we have a pure virtual function
|
|
|
|
|
share the abort function's address.
|
|
|
|
|
Include gt-cp-class.h at the end.
|
|
|
|
|
* config-lang.in (gtfiles): Add cp/class.c.
|
|
|
|
|
|
2005-01-25 09:58:46 +01:00
|
|
|
|
2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
|
|
|
|
|
(pp_cxx_function_definition): Make static.
|
|
|
|
|
* cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
|
|
|
|
|
(pp_cxx_function_definition): Likewise.
|
|
|
|
|
|
2005-01-25 09:55:00 +01:00
|
|
|
|
2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* name-lookup.c (print_binding_level): Make static.
|
|
|
|
|
(constructor_name_full): Make static inline.
|
|
|
|
|
(current_decl_namespace): Make static.
|
|
|
|
|
* name-lookup.h (constructor_name_full): Remove prototype.
|
|
|
|
|
(print_binding_level): Likewise.
|
|
|
|
|
(current_decl_namespace): Likewise.
|
|
|
|
|
|
2005-01-25 09:50:16 +01:00
|
|
|
|
2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
|
|
|
|
|
|
|
|
|
* decl.h (debug_bindings_indentation): Remove.
|
|
|
|
|
|
2005-01-23 16:22:18 +01:00
|
|
|
|
2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* typeck.c: Fix a comment typo.
|
|
|
|
|
|
2005-01-21 03:27:16 +01:00
|
|
|
|
2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
|
|
|
|
|
|
|
|
|
|
PR c++/19208
|
|
|
|
|
* pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
|
|
|
|
|
at least once.
|
|
|
|
|
(tsubst): Use fold_decl_constant_value in place of a bare call to
|
|
|
|
|
integral_constant_value.
|
|
|
|
|
|
2005-01-20 08:12:50 +01:00
|
|
|
|
2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* typeck.c (more_qualified_p): Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototype.
|
|
|
|
|
|
2005-01-20 02:43:21 +01:00
|
|
|
|
2005-01-19 Matt Austern <austern@apple.com>
|
|
|
|
|
|
|
|
|
|
* typeck.c (comptypes): Handle return code from objc_comptypes
|
|
|
|
|
correctly.
|
2005-02-20 18:01:32 +01:00
|
|
|
|
|
2005-01-19 22:16:56 +01:00
|
|
|
|
2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h, name-lookup.h: Remove unused prototypes.
|
|
|
|
|
|
2005-01-19 15:30:21 +01:00
|
|
|
|
2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/19375
|
|
|
|
|
* semantics.c (finish_id_expression): Disable access checking for
|
|
|
|
|
already lookuped FIELD_DECL.
|
|
|
|
|
|
2005-01-19 00:46:24 +01:00
|
|
|
|
2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* decl.c (delete_block): Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototype.
|
|
|
|
|
|
2005-01-19 00:49:35 +01:00
|
|
|
|
* decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
|
|
|
|
|
walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
|
|
|
|
|
Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototypes.
|
|
|
|
|
|
2005-01-19 00:51:26 +01:00
|
|
|
|
* tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
|
|
|
|
|
cp_update_decl_after_saving, name_p): Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototypes.
|
|
|
|
|
|
2005-01-18 18:52:33 +01:00
|
|
|
|
2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
|
|
|
|
|
|
|
|
|
|
PR c/19472
|
|
|
|
|
* semantics.c (finish_asm_stmt): Strip nops off
|
|
|
|
|
input memory operands.
|
|
|
|
|
|
2005-01-18 12:45:39 +01:00
|
|
|
|
2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
|
|
|
|
|
typeck2.c: Update copyright.
|
|
|
|
|
|
2005-01-17 09:08:12 +01:00
|
|
|
|
2005-01-16 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* class.c (get_enclosing_class): Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototypes.
|
|
|
|
|
|
2005-01-17 09:10:06 +01:00
|
|
|
|
* cvt.c (convert_lvalue): Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototype.
|
|
|
|
|
|
2005-01-17 09:11:20 +01:00
|
|
|
|
* pt.c (tinst_for_decl): Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototypes.
|
|
|
|
|
|
2005-01-17 09:13:09 +01:00
|
|
|
|
* tree.c (hash_chainon): Remove.
|
|
|
|
|
* cp-tree.h: Remove the corresponding prototypes.
|
|
|
|
|
|
2005-01-15 00:45:59 +01:00
|
|
|
|
2005-01-15 Jakub Jelinek <jakub@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19263
|
|
|
|
|
* typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
|
|
|
|
|
of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
|
|
|
|
|
|
2005-01-13 01:53:38 +01:00
|
|
|
|
2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
|
|
|
|
|
|
|
|
|
* Make-lang.in (cp-warn): Don't append $(WERROR).
|
|
|
|
|
|
2005-01-10 20:37:05 +01:00
|
|
|
|
2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
|
|
|
|
|
|
|
|
|
|
* cp-tree.h: Fix a comment typo.
|
|
|
|
|
|
2005-01-07 18:09:15 +01:00
|
|
|
|
2005-01-07 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19298
|
|
|
|
|
* pt.c (tsubst_qualified_id): Call convert_from_reference.
|
|
|
|
|
|
2005-01-06 21:21:13 +01:00
|
|
|
|
2005-01-06 Mark Mitchell <mark@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19244
|
|
|
|
|
* class.c (add_implicitly_declared_members): Remove dead code.
|
|
|
|
|
* decl.c (grokfndecl): Add sfk parameter. Use it do set
|
|
|
|
|
DECL_CONSTRUCTOR_P.
|
|
|
|
|
(grokdeclarator): Adjust calls to grokfndecl.
|
|
|
|
|
* method.c (implicitly_declare_fn): Improve documentation.
|
|
|
|
|
* parser.c (cp_parser_direct_declarator): Do not consider a
|
|
|
|
|
function to be a constructor if the containing class was
|
|
|
|
|
originally anonymous.
|
|
|
|
|
|
2005-01-06 17:04:05 +01:00
|
|
|
|
2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/17154
|
|
|
|
|
* search.c (lookup_field_1): Handle using declaration in
|
|
|
|
|
class template partial specialization.
|
|
|
|
|
|
2005-01-06 16:41:34 +01:00
|
|
|
|
2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
|
|
|
|
|
|
|
|
|
PR c++/19258
|
|
|
|
|
* pt.c (push_access_scope): Handle friend defined in class.
|
|
|
|
|
(pop_access_scope): Likewise.
|
|
|
|
|
|
2005-01-06 16:22:11 +01:00
|
|
|
|
2005-01-06 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19270
|
|
|
|
|
* pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
|
|
|
|
|
(tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
|
|
|
|
|
array-new handling code. Use build_x_binary_op.
|
|
|
|
|
|
re PR c++/19030 (ice on tree check)
cp:
PR c++/19030
* cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
* name-lookup.h (push_scope): Return pushed scope, not flag.
* name-lookup.c (push_scope): Return scope that should be popped,
not a flag.
* decl.c (start_decl): Adjust.
(grokfndecl): Adjust scope push and pop.
* decl2.c (check_classfn): Likewise.
* parser.c (cp_parser_condition, cp_parser_conversion_function_id,
cp_parser_init_declarator, cp_parser_direct_declarator,
cp_parser_class_specifier, cp_parser_class_head,
cp_parser_lookup_name,
cp_parser_constructor_declarator_p): Likewise.
* pt.c (instantiate_class_template,
resolve_typename_type): Likewise.
testsuite:
PR c++/19030
* g++.dg/parse/crash22.C: New
From-SVN: r92946
2005-01-05 11:02:35 +01:00
|
|
|
|
2005-01-05 Nathan Sidwell <nathan@codesourcery.com>
|
|
|
|
|
|
|
|
|
|
PR c++/19030
|
|
|
|
|
* cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
|
|
|
|
|
* name-lookup.h (push_scope): Return pushed scope, not flag.
|
|
|
|
|
* name-lookup.c (push_scope): Return scope that should be popped,
|
|
|
|
|
not a flag.
|
|
|
|
|
* decl.c (start_decl): Adjust.
|
|
|
|
|
(grokfndecl): Adjust scope push and pop.
|
|
|
|
|
* decl2.c (check_classfn): Likewise.
|
|
|
|
|
* parser.c (cp_parser_condition, cp_parser_conversion_function_id,
|
|
|
|
|
cp_parser_init_declarator, cp_parser_direct_declarator,
|
|
|
|
|
cp_parser_class_specifier, cp_parser_class_head,
|
|
|
|
|
cp_parser_lookup_name,
|
|
|
|
|
cp_parser_constructor_declarator_p): Likewise.
|
|
|
|
|
* pt.c (instantiate_class_template,
|
|
|
|
|
resolve_typename_type): Likewise.
|
|
|
|
|
|
2006-04-17 18:32:03 +02:00
|
|
|
|
2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
|
2005-01-03 18:03:00 +01:00
|
|
|
|
|
|
|
|
|
PR c++/14136
|
|
|
|
|
* parser.c (cp_parser_unqualified_id): Do not issue error message
|
|
|
|
|
for typedef-name as destructor declarator when performing an
|
|
|
|
|
uncommitted tentative parse.
|
|
|
|
|
|
2005-01-01 17:15:23 +01:00
|
|
|
|
2005-01-01 Steven Bosscher <stevenb@suse.de>
|
|
|
|
|
|
|
|
|
|
PR middle-end/17544
|
|
|
|
|
* decl.c (finish_function): Fix comment. Annotate the compiler
|
|
|
|
|
generated return with the current file name and line 0.
|