1 2007-03-10 Mark Mitchell <mark@codesourcery.com>
4 * cp-tree.h (unlowered_expr_type): New function.
5 * typeck.c (is_bitfield_expr_with_lowered_type): Handle
6 COMPOUND_EXPR, MODIFY_EXPR, and SAVE_EXPR.
7 (unlowered_expr_type): New function.
8 (build_unary_op): Disallow predecrements of bool bitfields.
9 * call.c (build_conditional_expr): Use unlowered_expr_type.
10 * pt.c (type_unification_real): Likewise.
12 2007-03-09 Douglas Gregor <doug.gregor@gmail.com>
15 * typeck.c (check_return_expr): Check for bare parameter packs.
16 (comptypes): Compare template parameter packs and
18 * decl.c (grokdeclarator): Deal with the declaration of function
20 (grokparms): Verify that the (optional) function parameter pack is
21 at the end of the parameter list.
22 (xref_basetypes): Handle pack expansions in the base class.
23 (cp_tree_node_structure): Handle ARGUMENT_PACK_SELECT.
24 * cp-tree.def (TYPE_ARGUMENT_PACK): New.
25 (NONTYPE_ARGUMENT_PACK): New.
26 (TYPE_PACK_EXPANSION): New.
27 (EXPR_PACK_EXPANSION): New.
28 (ARGUMENT_PACK_SELECT): New.
29 * cp-objcp-common.c (cp_tree_size): Compute size of
30 (NON)TYPE_ARGUMENT_PACK, (TYPE|EXPR)_PACK_EXPANSION, and
32 * error.c (dump_template_argument): Print template argument packs.
33 (dump_template_argument_list): Ditto.
34 (dump_template_parameter): Dump `...' for template type parameter
36 (dump_type): Dump TYPE_PACK_EXPANSION nodes.
37 (dump_parameters): Print function parameter packs.
38 (dump_template_parms): Print template argument packs.
39 (dump_expr): Dump EXPR_PACK_EXPANSION nodes.
40 (maybe_warn_variadic_templates): New.
41 * operators.def: Add ellipsis operator for EXPR_PACK_EXPANSION.
42 * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
43 NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
45 * mangle.c (write_type): Mangle TYPE_PACK_EXPANSION.
46 (write_template_arg): Write argument packs as separate arguments.
47 * cp-tree.h (struct template_parm_index_s): Add flag that
48 indicates that the template parameter is actually a parameter
50 (struct tree_argument_pack_select): New.
51 (enum cp_tree_node_structure_enum): Add TS_CP_ARGUMENT_PACK_SELECT.
52 (union lang_tree_node): Add argument_pack_select.
53 (FUNCTION_PARAMETER_PACK_P): New.
54 (PACK_EXPANSION_P): New.
55 (PACK_EXPANSION_PATTERN): New.
56 (SET_PACK_EXPANSION_PATTERN): New.
57 (PACK_EXPANSION_PARAMETER_PACKS): New.
58 (ARGUMENT_PACK_P): New.
59 (ARGUMENT_PACK_ARGS): New.
60 (SET_ARGUMENT_PACK_ARGS): New.
61 (ARGUMENT_PACK_INCOMPLETE_P): New.
62 (ARGUMENT_PACK_EXPLICIT_ARGS): New.
63 (TEMPLATE_PARM_PARAMETER_PACK): New.
64 (TEMPLATE_TYPE_PARAMETER_PACK): New.
65 (ARGUMENT_PACK_SELECT_FROM_PACK): New.
66 (ARGUMENT_PACK_SELECT_INDEX): New.
67 (ARGUMENT_PACK_SELECT_ARG): New.
68 (struct cp_declarator): Add parameter_pack_p flag.
69 (maybe_warn_variadic_templates): Declare.
70 (process_template_parm): Add bool parameter IS_PARAMETER_PACK, to
71 indicate a template parameter pack.
72 (uses_parameter_packs): Declare.
73 (template_parameter_pack_p): Declare.
74 (template_parms_variadic_p): Declare.
75 (make_pack_expansion): Declare.
76 (check_for_bare_parameter_packs): Declare.
77 * cxx-pretty-print.c (pp_cxx_unary_expression): Print
78 sizeof... expressions.
79 (pp_cxx_expression): Print pack expansions and non-type argument
81 (pp_cxx_exception_specification): Print pack expansions.
82 (pp_cxx_direct_declarator): Print ellipsis for parameter packs.
83 (pp_cxx_ctor_initializer): Print pack expansions.
84 (pp_cxx_type_id): Print pack expansions.
85 (pp_cxx_template_argument_list): Print argument packs.
86 (pp_cxx_template_parameter): Print ellipsis for template parameter
88 * pt.c (comp_template_parms): Compare template parameter packs.
89 (template_parameter_pack_p): New.
90 (template_parms_variadic_p): New.
91 (template_args_variadic_p): New.
92 (make_ith_pack_parameter_name): New.
93 (struct find_parameter_pack_data): New.
94 (find_parameter_packs_r): New.
95 (uses_parameter_packs): New.
96 (make_pack_expansion): New.
97 (check_for_bare_parameter_packs): New.
98 (expand_template_argument_pack): New.
99 (reduce_template_parm_level): Propagate parameter pack flag.
100 (process_template_parm): Add is_parameter_pack parameter to state
101 when the parameter is actually a parameter pack. Create template
102 parameter packs when is_parameter_pack is true.
103 (current_template_args): The argument for a template parameter
104 pack is an argument pack containing a single pack expansion.
105 (process_partial_specialization): When checking that non-type
106 argument expressions do not involve template parameters, loop over
107 the arguments in argument packs separately.
108 (push_template_decl_real): Check that the type of the declaration
109 does not have any bare parameter packs. Check that primary
110 templates have no more than one parameter pack, and that it comes
111 at the end of the template parameter list.
112 (convert_template_argument): Handle coercions for pack expansion
113 expressions by coercing the pattern then rebuilding the expansion.
114 (coerce_template_parms): When coercing the arguments for a
115 variadic template, pack "extra" arguments into an argument pack.
116 (coerce_template_template_parms): Cannot coerce between parameter
117 packs and non-pack parameters.
118 (template_args_equal): Compare PACK_EXPANSION_P expressions.
119 (comp_template_args): Expand all template arguments packs before
120 comparing template argument lists.
121 (mangle_class_name_for_template): Make argument packs as separate
123 (for_each_template_parm_r): No need to handle BASELINK.
124 (instantiate_class_template): Handle pack expansions in the base
126 (tsubst_pack_expansion): New.
127 (tsubst_template_args): Handle substitutions of argument packs and
128 pack expansion into template argument lists.
129 (tsubst_decl): Expand function parameter packs into separate
131 (tsubst_arg_types): Expand a type pack expansion into separate
133 (tsubst_exception_specification): Handle pack expansions in
134 exception specifiers.
135 (tsubst): See through ARGUMENT_PACK_SELECT arguments when
136 replacing a template parameter with its argument. If we encounter
137 a substitution for an argument pack, just return the parameter
139 (tsubst_copy): sizeof(X...) returns the number of elements in
140 parameter pack X. See through ARGUMENT_PACK_SELECT when the
141 PARM_DECL is a parameter pack.
142 (tsubst_expr): Expression pack expansions and argument packs
143 cannot show up here; they will all be handled through function
144 calls, sizeof, and template argument lists.
145 (tsubst_copy_and_build): sizeof(X...) returns the number of
146 elements in parameter pack X. Handle pack expansions in TREE_LIST
147 and CONSTRUCTOR nodes.
148 (fn_type_unification): Handle "incomplete" explicit template
149 argument lists that specify some of the arguments for a template
151 (type_unification_real): Unify arguments against pack expansions.
152 (template_parm_level_and_index): New, helper function.
153 (unify_pack_expansion): New.
154 (unify): Unify argument packs on an argument-by-argument basis,
155 handling variadic argument packs as well.
156 (more_specialized_fn): Handle unification of function parameter
157 packs. All things being equal, prefer non-variadic function
158 templates to variadic function templates.
159 (more_specialized_class): Prefer the variadic class template
160 partial specialization that binds fewer arguments to a parameter
162 (regenerate_decl_from_template): Expand function parameter packs
163 into separate parameters.
164 (instantiate_decl): Ditto.
165 (tsubst_initializer_list): Handle pack expansions for base-class
167 (dependent_type_p_r): Determine dependent types in argument packs
169 (value_dependent_expression_p): Determine value-dependence of
170 non-type argument packs.
171 (dependent_template_arg_p): Handle argument packs.
172 * semantics.c (finish_cond): Check for bare parameter packs.
173 (finish_expr_stmt): Ditto.
174 (finish_for_expr): Ditto.
175 (finish_switch_cond): Ditto.
176 (finish_mem_initializers): Ditto.
177 * name-lookup.c (arg_assoc_type): Handle pack expansions and
179 * decl2.c (cp_build_parm_decl): Mark function parameter packs.
180 * parser.c (make_declarator): Declarator is not an expansion.
181 (make_pointer_declarator): Transfer parameter pack flag to outer
183 (make_reference_declarator): Ditto.
184 (make_ptrmem_declarator): Ditto.
185 (make_call_declarator): Ditto.
186 (make_array_declarator): Ditto.
187 (cp_parser_postfix_expression): Allow pack expansion expressions
188 in the argument list for a call expression.
189 (cp_parser_parenthesized_expression_list): Add new parameter
190 ALLOW_EXPANSION_P. When true, parse the ellipsis to mean "expand
191 into separate arguments."
192 (cp_parser_new_placement): Allow pack expansion expressions.
193 (cp_parser_new_initializer): Ditto.
194 (cp_parser_mem_initializer_list): Allow ellipsis to create a
195 base-class initializer expansion.
196 (cp_parser_mem_initializer): Ditto.
197 (cp_parser_template_parameter_list): Keep track of whether the
198 template parameter is a template parameter pack.
199 (cp_parser_template_parameter): Parse the ellipsis to indicate a
200 template parameter pack.
201 (cp_parser_type_parameter): Ditto.
202 (cp_parser_template_argument_list): Parse the ellipsis to indicate
204 (cp_parser_direct_declarator): Parse the ellipsis to indicate that
205 this declarator is a parameter pack.
206 (cp_parser_parameter_declaration): The ellipsis does not end the
207 parameter declaration, because it might be a parameter pack. Parse
208 the ellipsis to indicate a parameter pack.
209 (cp_parser_initializer): Allow pack expansions.
210 (cp_parser_initializer_list): Allow ellipsis to create an
211 initializer expansion.
212 (cp_parser_base_clause): Allow ellipsis to create a base specifier
214 (cp_parser_type_id_list): Allow ellipsis to create an exception
216 (cp_parser_attribute_list): Don't allow pack expansions.
217 (cp_parser_functional_cast): Allow pack expansions.
218 (cp_parser_sizeof_operand): Allow ellipsis following "sizeof" to
219 compute the length of a parameter pack.
220 (cp_parser_next_token_ends_template_argument_p): An ellipsis can
221 end a template argument.
222 * tree.c (cp_walk_subtrees): Walk BASELINK, TYPE_ARGUMENT_PACK,
223 NONTYPE_ARGUMENT_PACK, TYPE_PACK_EXPANSION, EXPR_PACK_EXPANSION,
226 2007-03-09 Dirk Mueller <dmueller@suse.de>
228 * cp/call.c (build_new_op): Call warn_logical_operator.
230 2007-03-08 Volker Reichelt <reichelt@netcologne.de>
233 * semantics.c (finish_offsetof): Handle COMPOUND_EXPR.
236 * pt.c (any_template_arguments_need_structural_equality_p):
239 2007-03-08 Alexandre Oliva <aoliva@redhat.com>
241 * decl.c (grokdeclarator): Disable warnings for anonymous
244 2007-03-05 Volker Reichelt <reichelt@netcologne.de>
246 * typeck2.c (readonly_error): Always emit a hard error.
247 Remove last argument.
248 * cp-tree.h (readonly_error): Adjust prototype.
249 * semantics.c (finish_asm_stmt): Adjust call to readonly_error.
250 * typeck.c (build_unary_op): Likewise.
251 (build_modify_expr): Likewise.
253 2007-03-04 Simon Martin <simartin@users.sourceforge.net>
256 * tree.c (cp_tree_equal): Properly handle COMPLEX_CST trees.
258 2007-03-03 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
261 * parser.c (struct cp_parser): New IN_IF_STMT.
262 (cp_parser_statement_seq_opt): Handle an unexpected 'else',
263 returning if parsing the body of an 'if' statement or issuing an
264 error and continuing.
265 (cp_parser_selection_statement): Set IN_IF_STMT bit when parsing
267 (cp_parser_jump_statement): Mask new IN_IF_STMT bit.
269 2007-03-02 Simon Martin <simartin@users.sourceforge.net>
272 * class.c (update_vtable_entry_for_fn): Properly handle invalid overriders
275 2007-03-02 Geoffrey Keating <geoffk@apple.com>
277 * g++spec.c (lang_specific_driver): Add -lstdc++ when compiling
278 Objective-C++. Don't exit early if -shared-libgcc needs to be
281 2007-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
283 * typeck.c (common_base_type): Delete unused function.
285 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
287 * Make-lang.in: Add dummy lang.install-pdf target.
289 2007-03-01 Simon Baldwin <simonb@google.com>
292 * decl.c (check_tag_decl): Added new warning for typedef ignored
293 when it precedes an otherwise valid non-typedef declaration.
295 2007-02-28 Sandra Loosemore <sandra@codesourcery.com>
297 * typeck.c (build_function_call): Store converted arguments
298 in a stack-allocated array instead of building a list.
299 (convert_arguments): Store arguments in the array passed in as an
300 argument, and return the actual number of arguments.
301 * call.c (build_call): Delete, and replace with...
302 (build_call_n, build_call_a): New.
303 (build_op_delete_call): Rewrite to avoid constructing argument lists.
304 (build_over_call): Store converted arguments in a stack-allocated
305 array instead of building a list.
306 (build_cxx_call): Pass arguments in an array instead of as a list.
307 (build_java_interface_fn_ref): Rewrite to avoid constructing
309 * tree.h: Update declarations to reflect above changes.
310 * method.c (use_thunk): Use a stack-allocated array to hold
311 the arguments instead of a list.
312 * rtti.c (throw_bad_cast): Update call to cxx_call.
313 (throw_bad_typeid): Likewise.
314 (build_dynamic_cast_1): Likewise.
315 * init.c (build_builtin_delete_call): Use build_call_n.
316 * decl.c (expand_static_init): Likewise.
317 * except.c (cp_protect_cleanup_actions): Likewise.
318 * cp-gimplify.c (genericize_eh_spec_block): Likewise.
319 (gimplify_must_not_throw_expr): Likewise.
320 (cxx_omp_apply_fn): Use build_call_a.
322 2007-02-26 Mark Mitchell <mark@codesourcery.com>
324 * semantics.c (expand_or_defer_fn): Call c_record_cdtor_fn.
325 * decl2.c (cp_write_gloabl_declarations): Call c_build_cdtor_fns.
327 2007-02-25 Mark Mitchell <mark@codesourcery.com>
329 * cp-tree.h (static_ctors): Remove.
330 * cp-tree.h (static_dtors): Likewise.
331 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Adjust for
332 refactoring of tree_map hierarchy.
333 (decl_shadowed_for_var_insert): Likewise.
334 * semantics.c (expand_body): Use c_expand_body.
335 (expand_or_defer_fn): Don't update static_ctors or static_dtors.
336 * decl2.c (static_ctors): Remove.
337 (static_dtors): Likewise.
338 (generate_ctor_or_dtor_function): Pass NULL_TREE to
339 objc_generate_static_init_call. Do not call static_[cd]tors.
340 (generate_ctor_and_dtor_functions_for_priority): Do not check for
342 (cp_write_global_declarations): Likewise.
344 2007-02-23 Richard Guenther <rguenther@suse.de>
346 * class.c (note_name_declared_in_class): Make declaration
347 changes meaning a pedwarn.
349 2007-02-22 Michael Matz <matz@suse.de>
352 * cp-tree.h (TFF_UNQUALIFIED_NAME): New formatting flag.
353 * error.c (dump_aggr_type, dump_simple_decl, dump_decl,
354 dump_function_decl): Guard emitting outer scopes by new flag.
355 * cp-lang.c (cxx_dwarf_name): New function.
356 (LANG_HOOKS_DWARF_NAME): Define to cxx_dwarf_name.
357 * pt.c (classtype_mangled_name, mangle_class_name_for_template):
359 (push_template_decl_real, lookup_template_class): Remove calls
362 2007-02-19 Mark Mitchell <mark@codesourcery.com>
364 * call.c (build_new_method_call): Ensure that explicit calls of
365 destructors have type "void".
367 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
369 * typeck.c (build_binary_op): Replace -Wstring-literal-comparison
370 and -Walways-true with -Waddress.
371 * cvt.c (convert_to_void): Replace unconditional warning with
374 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
376 * decl.c, tree.c: Fix comment typos.
378 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
381 * semantics.c (finish_stmt_expr_expr): Set TREE_TYPE of the
382 statement expression if we had an error mark node.
384 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
385 Brooks Moses <brooks.moses@codesourcery.com>
386 Lee Millward <lee.millward@codesourcery.com>
388 * cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
389 Change class to tcc_vl_exp.
391 * call.c (build_call): Use build_call_list instead
393 (build_over_call): Likewise.
394 (build_new_method_call): Use build_min_non_dep_call_list
395 instead of build_min_non_dep.
397 * error.c (dump_call_expr_args): New function.
398 (dump_aggr_init_expr_args): New function.
399 (dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them.
400 Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
402 * cvt.c (convert_to_void): Use build_call_array instead
403 of build3; use new AGGR_INIT_EXPR accessor macros.
405 * mangle.c (write_expression): Use TREE_OPERAND_LENGTH
406 instead of TREE_CODE_LENGTH.
408 * dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
409 AGGR_INIT_EXPR accessor macros.
411 * cp-gimplify.c (cp_gimplify_init_expr): Use
412 AGGR_INIT_EXPR_SLOT to set the slot operand.
414 * cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
415 (AGGR_INIT_EXPR_SLOT): New macro.
416 (AGGR_INIT_EXPR_ARG): New macro.
417 (aggr_init_expr_nargs): New macro.
418 (AGGR_INIT_EXPR_ARGP): New macro.
419 (aggr_init_expr_arg_iterator): New.
420 (init_aggr_init_expr_arg_iterator): New.
421 (next_aggr_init_expr_arg): New.
422 (first_aggr_init_expr_arg): New.
423 (more_aggr_init_expr_args_p): New.
424 (FOR_EACH_AGGR_INIT_EXPR_ARG): New.
425 (stabilize_aggr_init): New declaration.
426 (build_min_non_dep_call_list): Likewise.
428 * tree.c (process_aggr_init_operands): New function.
429 (build_aggr_init_array) New function.
430 (build_cplus_new): Update to use new CALL_EXPR and
431 AGGR_INIT_EXPR accessor macros. Replace use of build3 with
432 build_aggr_init_array.
433 (build_min_non_dep_call_list) New function.
434 (build_min_nt): Assert input code parameter is not a variable
435 length expression class.
436 (build_min, build_min_non_dep): Likewise.
437 (cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
438 to check for equality instead of recursing. Handle tcc_vl_exp
440 (stabilize_call): Update to only handle CALL_EXPRs, not
441 AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
442 (stabilize_aggr_init): New function.
443 (stabilize_init): Use it.
445 * cxx-pretty-print.c (pp_cxx_postfix_expression)
446 <AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
447 AGGR_INIT_EXPR accessor macros and argument iterators.
449 * pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
450 build_vl_exp. Iterate through the operands, recursively
452 (tsubst_copy_and_build) <CALL_EXPR>: Update to use new
453 CALL_EXPR accessor macros.
454 (value_dependent_expression_p) <default>: Handle tcc_vl_exp
455 tree code classes. Use TREE_OPERAND_LENGTH instead of
458 * semantics.c (finish_call_expr): Use build_nt_call_list
460 (simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR
461 accessor macros. Use build_call_array to construct the
462 CALL_EXPR node instead of build3
464 * decl2.c (build_offset_ref_call_from_tree): Use
465 build_nt_call_list and build_min_non_dep_call_list instead
466 of build_min_nt and build_min_non_dep.
468 * parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
469 Use build_nt_call_list instead of build_min_nt.
471 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
474 * call.c (build_conditional_expr): Improve error message.
476 2007-02-13 Dirk Mueller <dmueller@suse.de>
478 * friend.c (do_friend): Annotate warning about friend
479 declarations in templates with OPT_Wnon_template_friend.
480 Convert informal message from warning() to inform().
482 2007-02-12 Simon Martin <simartin@users.sourceforge.net>
483 Mark Mitchell <mark@codesourcery.com>
486 * pt.c (do_decl_instantiation): Detect type mismatches in explicit
487 instantiations for variables.
489 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
492 * cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings.
493 Check warn_unused_value just once.
495 2007-02-11 Mark Mitchell <mark@codesourcery.com>
498 * pt.c (determine_specialization): Use skip_artificial_parms_for.
499 (fn_type_unificiation): Likewise.
500 (get_bindings): Likewise.
502 o2007-02-06 Mark Mitchell <mark@codesourcery.com>
505 * decl.c (finish_function): Use DECL_REPLACEABLE.
506 * tree.c (cp_cannot_inline_tree_fn): Likewise.
508 2007-02-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
510 * parser.c (cp_parser_primary_expression): Reformat overly long lines.
512 2007-02-10 Richard Henderson <rth@redhat.com>, Jakub Jelinek <jakub@redhat.com>
514 * decl.c (grokvardecl): Don't error if !have_tls.
515 (grokdeclarator): Likewise.
516 * parser.c (cp_parser_omp_threadprivate): Likewise.
518 2007-02-07 Jakub Jelinek <jakub@redhat.com>
521 * cp-gimplify.c (cp_genericize_r): Don't dereference invisiref
522 parameters and result decls in omp clauses.
523 (cxx_omp_privatize_by_reference): Pass also invisiref PARM_DECLs
526 2007-02-05 Dirk Mueller <dmueller@suse.de>
529 * parser.c (cp_parser_class_specifier): Always initialize bases.
531 2007-02-05 Paolo Bonzini <bonzini@gnu.org>
533 * cp-tree.h (OMP_ATOMIC_CODE): Delete.
534 (OMP_ATOMIC_DEPENDENT_P): Rewrite.
535 * pt.c (tsubst_expr): Adjust for new format of dependent OMP_ATOMIC
537 * semantics.c (finish_omp_atomic): Store a whole expression node
538 in operand 1, and integer_zero_node in operand 0, for dependent
539 OMP_ATOMIC. Rewrite to make flow easier to understand.
541 2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
543 * decl.c (grokdeclarator): Use OPT_Wreturn_type instead of 0.
545 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
547 * class.c, cp-tree.h, decl.c, decl2.c, g++spec.c, init.c,
548 parser.c, pt.c, tree.c, typeck.c: Follow spelling conventions.
550 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
552 * parser.c (cp_lexer_get_preprocessor_token): Attach the C++0x
553 keyword warning to -Wc++0x-compat.
555 2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
557 * decl.c (grokdeclarator): Update documentation.
559 2007-02-02 Jakub Jelinek <jakub@redhat.com>
562 * decl.c (grokdeclarator): If __thread is used together with
563 a storage class other than extern and static, clear thread_p
564 after issuing diagnostics and fall through to checking the
567 2007-01-30 Roger Sayle <roger@eyesopen.com>
569 * error.c (dump_type_suffix): Avoid use of cp_build_binary_op when
570 calculating the size of an array (to avoid recursive errors).
572 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
575 * typeck.c (build_binary_op): Fix logic for warning. Move warning
577 * call.c (convert_like_real): Don't warn when converting to
580 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
582 * decl.c (pop_label): Replace warning with call to
583 warn_for_unused_label.
585 2007-01-28 Andrew Pinski <pinskia@gmail.com>
588 * semantics.c (finish_pseudo_destructor_expr): Check the
589 destrutor name by calling check_dtor_name.
591 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
593 * lex.c (D_CPP0X): Rename.
595 (reswords): D_CPP0X -> D_CXX0X.
596 (init_reswords): Ditto.
597 * parser.c (cp_lexer_get_preprocessor_token): Warn about the use
598 of C++0x keywords as identifiers.
600 2007-01-23 Simon Martin <simartin@users.sourceforge.net>
603 * decl.c (duplicate_decls): Don't reset DECL_INVALID_OVERRIDER_P for
606 2007-01-23 Ian Lance Taylor <iant@google.com>
608 * typeck.c (convert_for_assignment): Only warn about a = b = c
609 when converting to bool.
611 2007-01-23 Roger Sayle <roger@eyesopen.com>
613 * call.c (null_ptr_cst_p): Replace use of TREE_CONSTANT_OVERFLOW with
615 * typeck.c (ignore_overflows): Remove the remaining uses of
616 TREE_CONSTANT_OVERFLOW.
618 2007-01-20 Jan Hubicka <jh@suse.cz>
620 * decl2.c (start_objects, start_static_storage_duration_function):
621 Do not make the functions uninlinable.
623 2007-01-17 Ian Lance Taylor <iant@google.com>
625 * class.c (add_method): Call VEC_reserve_exact rather than passing
626 a negative size to VEC_reserve.
628 2007-01-11 Simon Martin <simartin@users.sourceforge.net>
631 * tree.c (cp_tree_equal): Properly handle MODOP_EXPR trees.
633 2007-01-10 Mark Mitchell <mark@codesourcery.com>
636 * decl.c (make_typename_type): If the qualified name is not a
637 type, issue an error.
638 * parser.c (cp_parser_elaborated_type_specifier): Fix comment
641 2007-01-08 Geoffrey Keating <geoffk@apple.com>
643 * rtti.c: Include target.h.
644 (emit_support_tinfos): If ! targetm.cxx.library_rtti_comdat (),
645 don't emit typeinfo for fundamental types as weak.
646 * Make-lang.in (cp/rtti.o): Update and correct dependencies.
648 2007-01-08 Richard Guenther <rguenther@suse.de>
650 * cvt.c (cp_convert_to_pointer): Use build_int_cst_type.
652 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
654 * call.c (standard_conversion): Pass flag to
655 vector_types_convertible_p to disallow emission of note.
656 * typeck.c (convert_for_assignment): Pass flag to
657 vector_types_convertible_p to allow emission of note.
658 (ptr_reasonably_similar): Pass flag to vector_types_convertible_p
659 to disallow emission of note.
661 2007-01-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
664 * typeck.c (build_binary_op): Call overflow_warning if
665 TREE_OVERFLOW_P is true for the result and not for any of the
668 2007-01-06 Lee Millward <lee.millward@codesourcery.com>
671 * class.c (add_method): Don't wait until template
672 instantiation time to complain about duplicate methods.
674 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
677 * semantics.c (finish_unary_op_expr): Warn only if result
678 overflowed and operands did not.
680 2007-01-05 Ian Lance Taylor <iant@google.com>
682 * typeck.c (build_binary_op): Warn about comparing a non-weak
685 2007-01-05 Douglas Gregor <doug.gregor@gmail.com>
687 * pt.c (tsubst): Propagate the need for structural equality checks
688 when reducing the level of template parameters.
690 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
692 * pt.c: Fix a comment typo.
694 2006-01-02 Ian Lance Taylor <iant@google.com>
696 * semantics.c (maybe_convert_cond): Optionally warn when using an
697 assignment as a condition.
698 * typeck.c (convert_for_assignment): Optionally warn about
699 assigning the result of an assignment to a bool.
701 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
703 * pt.c (canonical_template_parms): Correct typo in comment.
705 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
707 * typeck.c (structural_comptypes): Renamed from "comptypes".
708 (comptypes): Use canonical type information to perform fast type
709 comparison. When VERIFY_CANONICAL_TYPES, verify that the
710 canonical type comparison returns the same results as we would see
711 from the current, structural check. Support COMPARE_STRUCTURAL
712 when we need structural checks.
713 * decl.c (typename_compare): Fix comment.
714 (build_typename_type): TYPENAME_TYPE nodes require structural
715 equality checks, because they resolve different based on the
717 (make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
718 require structural equality checks (for now).
719 (build_ptrmemfunc_type): Build the canonical pointer to member
721 (compute_array_index_type): Whenever we build a new index type
722 to represent the size of an array in a template, we need to mark
723 this index type as requiring structural equality. This goes for
724 arrays with value-dependent sizes with the current ABI, or all
726 * tree.c (cplus_array_hash): New.
727 (struct cplus_array_info): New.
728 (cplus_array_compare): New.
729 (cplus_array_htab): New.
730 (build_cplus_array_type_1): Use a hash table to cache the array
731 types we build. Build the canonical array type for each array
733 (cp_build_qualified_type_real): When building a cv-qualified array
734 type, use the hash table of array types and build canonical array
736 (bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
737 use structural equality (for now).
738 * cp-tree.h (COMPARE_STRUCTURAL): New.
739 * pt.c (canonical_template_parms): New.
740 (canonical_type_parameter): New.
741 (process_template_parm): Find the canonical type parameter.
742 (lookup_template_class): When we have named the primary template
743 type, set the canonical type for our template class to the primary
744 template type. If any of the template arguments need structural
745 equality checks, the template class needs structural equality
747 (tsubst): When reducing the level of a template template
748 parameter, we require structural equality tests for the resulting
749 parameter because its template parameters have not had their types
750 canonicalized. When reducing a template type parameter, find the
751 canonical reduced type parameter.
752 (any_template_arguments_need_structural_equality_p): New.
754 2006-12-31 Simon Martin <simartin@users.sourceforge.net>
757 * parser.c (cp_parser_primary_expression): Return error_mark_node when
758 a statement-expression is found outside of a function body.
760 2006-12-28 Kazu Hirata <kazu@codesourcery.com>
762 * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
765 * decl2.c: Fix a comment typo.
767 2006-12-21 Andrew Pinski <pinskia@gmail.com>
770 * decl.c (cxx_builtin_function): Only copy the decl if adding
771 it to the std namespace.
773 2006-12-21 Andrew Pinski <pinskia@gmail.com>
776 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
778 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
780 * decl.c: Fix a coment typo.
782 2006-12-18 Ian Lance Taylor <iant@google.com>
784 * decl.c (start_preparsed_function): Add support for
785 -Wmissing-declarations.
787 2006-12-16 Simon Martin <simartin@users.sourceforge.net>
790 * cp-tree.h (struct deferred_access_check): New structure to represent a
791 deferred access check. It replaces the previous representation as a tree.
792 (get_deferred_access_checks): Return a vector of struct
793 deferred_access_check instead of a tree list.
794 (perform_access_checks): Take a vector of struct deferred_access_check
795 instead of a tree list.
796 * semantics.c (struct deferred_access): Store the deferred access checks
797 as a vector of struct deferred_access_check instead of a tree list.
798 (push_deferring_access_checks): Handle the change in struct
800 (get_deferred_access_checks): Likewise.
801 (pop_to_parent_deferring_access_checks): Likewise.
802 (perform_or_defer_access_check): Likewise.
803 (perform_access_checks): Take a vector of struct deferred_access_check
804 instead of a tree list.
805 * parser.c (struct tree_check): New structure to store various data
806 associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
807 (struct cp_token): Changed the value field to be a union with a pointer to
808 a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
809 tokens and a tree field for all other tokens.
810 (eof_token): Adjusted due to the change in struct cp_token.
811 (cp_lexer_get_preprocessor_token): Likewise.
812 (cp_lexer_purge_token): Likewise.
813 (cp_lexer_purge_tokens_after): Likewise.
814 (cp_lexer_print_token): Likewise.
815 (cp_parser_error): Likewise.
816 (cp_parser_identifier): Likewise.
817 (cp_parser_string_literal): Likewise.
818 (cp_parser_primary_expression): Likewise.
819 (cp_parser_unqualified_id): Likewise.
820 (cp_parser_parenthesized_expression_list): Likewise.
821 (cp_parser_storage_class_specifier_opt): Likewise.
822 (cp_parser_function_specifier_opt): Likewise.
823 (cp_parser_type_specifier): Likewise.
824 (cp_parser_simple_type_specifier): Likewise.
825 (cp_parser_initializer_list): Likewise.
826 (cp_parser_member_specification_opt): Likewise.
827 (cp_parser_attribute_list): Likewise.
828 (cp_parser_objc_expression): Likewise.
829 (cp_parser_objc_protocol_qualifiers): Likewise.
830 (cp_parser_objc_selector): Likewise.
831 (cp_parser_objc_declaration): Likewise.
832 (cp_parser_objc_statement): Likewise.
833 (cp_parser_omp_clause_name): Likewise.
834 (cp_parser_omp_clause_default): Likewise.
835 (cp_parser_omp_clause_schedule): Likewise.
836 (cp_parser_omp_parallel): Likewise.
837 (cp_parser_initial_pragma): Likewise.
838 (pragma_lex): Likewise.
839 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
840 (cp_parser_nested_name_specifier_opt): Likewise.
841 Use cp_token::u::tree_check_value to save the token's value, the
842 associated deferred checks and its qualifying scope.
843 (cp_parser_template_id): Likewise.
844 (cp_parser_template_declaration_after_export): Adjusted the call to
845 get_deferred_access_checks.
846 (cp_parser_init_declarator): Take the access checks as a vector of struct
847 deferred_access_check instead of a tree list.
848 (cp_parser_single_declaration): Likewise.
849 (cp_parser_perform_template_parameter_access_checks): Likewise.
850 (cp_parser_simple_declaration): Adjusted the call to
851 cp_parser_init_declarator.
852 (cp_parser_explicit_specialization): Adjusted the call to
853 cp_parser_single_declaration.
855 2006-12-13 Ian Lance Taylor <iant@google.com>
859 * parser.c (cp_parser_expression_stack_entry): Add field
861 (cp_parser_binary_expression): Track tree code of left hand side
862 of expression. Use it when calling build_x_binary_op.
863 (cp_parser_selection_statement): Add if_p parameter. Change all
864 callers. Warn about ambiguous else.
865 (cp_parser_statement): Add if_p parameter. Change all callers.
866 (cp_parser_implicitly_scoped_statement): Likewise.
867 * typeck.c (build_x_binary_op): Add parameters arg1_code and
868 arg2_code. Change all callers. Call warn_about_parentheses.
869 * cp-tree.h (build_x_binary_op): Update declaration.
871 2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
873 * decl.c (build_enumerator): Update error message to match C
876 2006-12-11 Jan Hubicka <jh@suse.cz>
878 * decl2.c (var_finalized_p): Update for renamed varpool functions.
880 2006-12-09 Zack Weinberg <zackw@panix.com>
882 * parser.c (yydebug, enum pragma_omp_clause): Delete.
884 2006-12-07 Mark Mitchell <mark@codesourcery.com>
887 * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
888 (explicit_class_specialization_p): Declare.
889 * pt.c (explicit_class_specialization_p): New function.
890 * parser.c (cp_parser_init_declarator): Check correct number of
891 template parameters for in-class function definitions.
892 (cp_parser_check_declrator_template_parameters): Stop looking for
893 template classes when we find an explicit specialization.
895 2006-12-07 Lee Millward <lee.millward@codesourcery.com>
898 * cp_parser_elaborated_type_specifier: Check
899 the return value of check_elaborated_type_specifier.
901 2006-12-06 Mark Mitchell <mark@codesourcery.com>
904 * parser.c (cp_parser_init_declarator): Reject initialization of
907 2006-12-05 Mark Mitchell <mark@codesourcery.com>
910 * decl2.c (check_member_template): Move check for member
911 templates in local classes to ...
912 * parser.c (cp_parser_template_declaration_after_export):
916 * decl.c (check_array_designated_initializer): New function.
917 (maybe_deduce_size_from_array_init): Use it.
918 (reshape_init_array): Likewise.
920 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
922 Merge from gimple-tuples-branch.
924 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
926 * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
927 (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
928 (cxx_omp_clause_copy_ctor): Same.
929 (cxx_omp_clause_assign_op): Same.
931 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
933 * cp-tree.h (union lang_tree_node): Gimple statements do not
935 (TREE_INDIRECT_USING): Look in base.
937 2006-12-04 Jan Hubicka <jh@suse.cz>
939 * cp-objcp-common.c (cp_expr_size): Return NULL in the case
942 2006-12-04 Mark Mitchell <mark@codesourcery.com>
945 * pt.c (tsubst_decl): Disallow variables of function type.
948 * call.c (add_builtin_candidate): Do not permit NULL pointer
949 constants to be compared with template parameters.
951 2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
953 * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
954 Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
956 2006-12-03 Richard Henderson <rth@redhat.com>
957 Andrew Pinski <pinskia@gmail.com>
960 * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
962 2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
965 * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
967 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
969 * name-lookup.c: Follow spelling conventions.
971 2006-12-01 Geoffrey Keating <geoffk@apple.com>
973 * decl.c (poplevel): Check DECL_INITIAL invariant.
974 (duplicate_decls): Preserve DECL_INITIAL when eliminating
975 a new definition in favour of an old declaration.
976 (start_preparsed_function): Define and document value of
977 DECL_INITIAL before and after routine.
978 (finish_function): Check DECL_INITIAL invariant.
980 (cp_parser_function_definition_from_specifiers_and_declarator):
981 Skip duplicate function definitions.
983 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
986 * typeck.c (type_after_usual_arithmetic_conversions):
987 Fix assertion for vector types.
988 (build_binary_op): Use temporary for inner type of vector types.
990 2006-12-01 Ryan Mansfield <rmansfield@qnx.com>
993 * typeck.c (build_binary_op): Fix pointer to member function
994 comparison for ptrmemfunc_vbit_in_delta targets.
996 2006-12-01 Dirk Mueller <dmueller@suse.de>
999 * decl.c (grokdeclarator): Warn for type qualifiers on return
1000 type for non-dependent types.
1001 * pt.c (tsubst_function_type): Warn for type qualifiers on
1002 return type for dependent types.
1004 2006-11-30 Geoffrey Keating <geoffk@apple.com>
1006 * rtti.c (get_tinfo_decl): Handle return value from
1007 pushdecl_top_level_and_finish.
1009 2006-11-29 Lee Millward <lee.millward@codesourcery.com>
1012 * parser.c (cp_parser_class_head): Move processing
1013 of any base classes to...
1014 (cp_parser_class_specifier) ...here. Take an extra
1015 tree* parameter for any base classes. Only process
1016 them if the opening brace was found.
1018 2006-11-28 Jakub Jelinek <jakub@redhat.com>
1021 * decl.c (grokfndecl): Check main's type after applying
1022 attributes, not before.
1024 2006-11-27 Mark Mitchell <mark@codesourcery.com>
1026 * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
1027 entries for a primary construction virtual table.
1029 2006-11-26 Mark Mitchell <mark@codesourcery.com>
1032 * parser.c (cp_parser): Add in_function_body.
1033 (cp_parser_new): Initialize it.
1034 (cp_parser_primary_expression): Use parser->in_function_body
1035 instead of at_function_scope_p.
1036 (cp_parser_asm_definition): Likewise.
1037 (cp_parser_direct_declarator): Likewise.
1038 (cp_parser_class_specifier): Clear parser->in_function_body.
1039 (cp_parser_constructor_declarator_p): Use parser->in_function_body
1040 instead of at_function_scope_p.
1041 (cp_parser_function_body_after_declarator): Set
1042 parser->in_function_body.
1044 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
1046 * cp-tree.def (STATIC_ASSERT): New.
1047 * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
1048 * error.c (dump_decl): Handle STATIC_ASSERT.
1049 * cp-tree.h (STATIC_ASSERT_CONDITION): New.
1050 (STATIC_ASSERT_MESSAGE): New.
1051 (STATIC_ASSERT_SOURCE_LOCATION): New.
1052 (struct tree_static_assert): New.
1053 (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
1054 (union lang_tree_node): Add static_assertion.
1055 (finish_static_assert): Declare.
1056 * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
1057 (pp_cxx_declaration): Handle STATIC_ASSERT.
1058 * pt.c (instantiate_class_template): Handle
1059 STATIC_ASSERT members.
1060 (tsubst_expr): Handle STATIC_ASSERT statements.
1061 * semantics.c (finish_static_assert): New.
1062 * lex.c (D_CPP0X): New.
1063 (reswords): Add static_assert keyword.
1064 (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
1065 * parser.c (cp_parser_block_declaration): Parse static
1067 (cp_parser_static_assert): New.
1068 (cp_parser_member_declaration): Parse static assertions.
1070 2006-11-21 Jakub Jelinek <jakub@redhat.com>
1073 * decl.c (cp_finish_decl): Check for value dependent brace enclosed
1077 * cp-tree.h (WANT_VECTOR): Define.
1078 (WANT_ARITH): Add WANT_VECTOR.
1079 * cvt.c (build_expr_type_conversion): Handle vector types.
1080 * typeck.c (build_unary_op): Add WANT_VECTOR to
1081 build_expr_type_conversion flags.
1083 2006-11-20 Simon Martin <simartin@users.sourceforge.net>
1086 * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
1087 extra argument that represents the declaration to use to print
1088 potential error messages.
1089 * init.c (build_offset_ref): Adjusted the call to
1090 perform_or_defer_access_check.
1091 * class.c (alter_access, resolve_address_of_overloaded_function):
1093 * decl.c (make_typename_type, make_unbound_class_template): Likewise.
1094 * search.c (lookup_member): Likewise.
1095 * friend.c (add_friend): Likewise.
1096 * parser.c (cp_parser_template_id,
1097 cp_parser_pre_parsed_nested_name_specifier): Likewise.
1098 * semantics.c (finish_non_static_data_member,
1099 check_accessibility_of_qualified_id, finish_id_expression): Likewise.
1100 (pop_to_parent_deferring_access_checks, perform_access_checks,
1101 perform_or_defer_access_check): Adjusted the call to enforce_access.
1102 * call.c (enforce_access): Use the new extra argument to build the
1104 (build_op_delete_call): Adjusted the call to
1105 perform_or_defer_access_check.
1106 (build_over_call): Likewise.
1108 2006-11-16 Dirk Mueller <dmueller@suse.de>
1110 * name-lookup.c (begin_scope): Use GGC_CNEW instead of
1113 2006-11-13 Roger Sayle <roger@eyesopen.com>
1115 * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
1116 base type info initializer has the correct type.
1118 2006-11-13 Mark Mitchell <mark@codesourcery.com>
1121 * pt.c (coerce_template_parms): Do not skip_evaluation while
1122 substituting template arguments.
1124 2006-11-11 Richard Guenther <rguenther@suse.de>
1126 * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
1127 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
1129 2006-11-03 Roger Sayle <roger@eyesopen.com>
1131 * call.c (build_op_delete_call): Test user-visible type against
1132 size_type_node, instead of against the internal type, sizetype.
1133 * class.c (type_requires_array_cookie): Likewise.
1134 * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
1135 handling of TYPE_IS_SIZETYPE.
1136 * typeck.c (type_after_usual_arithmetic_conversions): Remove
1137 special case handling of TYPE_IS_SIZETYPE.
1138 (comptypes): Likewise.
1140 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
1142 * decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
1143 if targetm.cxx.use_atexit_for cxa_atexit.
1144 (start_cleanup_fn): Likewise.
1145 (register_dtor_fn): Likewise.
1147 2006-09-25 Geoffrey Keating <geoffk@apple.com>
1149 * decl2.c (cp_write_global_declarations): Rename from
1151 * cp-lang.c (finish_file): Don't call cp_finish_file.
1152 * cp-tree.h (cp_write_global_declarations): Rename from
1154 * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
1155 cp_write_global_declarations.
1157 2006-10-31 Geoffrey Keating <geoffk@apple.com>
1159 * name-lookup.c (get_anonymous_namespace_name): New.
1160 (push_namespace_with_attribs): Use get_anonymous_namespace_name.
1161 * decl2.c (start_objects): Update for rename of
1162 get_file_function_name_long.
1164 2006-10-30 Dirk Mueller <dmueller@suse.de>
1167 * decl.c (grokdeclarator): Duplicate diagnostic message
1168 for easier translation.
1169 * decl.c (grokdeclarator): Fix line-wrapping.
1171 2006-10-30 Dirk Mueller <dmueller@suse.de>
1174 * decl.c (grokfndecl): Use check_main_parameter_types.
1176 2006-10-30 Dirk Mueller <dmueller@suse.de>
1179 * decl.c (grokfndecl): Duplicate warning message for
1182 2006-10-30 Dirk Mueller <dmueller@suse.de>
1184 * typeck.c (build_unary_op): Fix indenting. Use G_().
1186 2006-10-29 Dirk Mueller <dmueller@suse.de>
1189 * typeck.c (build_unary_op): Duplicate warning message
1190 for easier translation.
1192 2006-10-29 Dirk Mueller <dmueller@suse.de>
1195 * typeck.c (build_array_ref): Warn for char subscriptions
1198 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
1200 * decl.c: Fix a comment typo.
1202 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
1205 * typeck.c (build_unary_op): Use same_type_p when comparing to
1208 2006-10-29 Dirk Mueller <dmueller@suse.de>
1211 * typeck.c (build_binary_op): Duplicate warning message
1212 for better translation.
1214 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
1216 * decl.c (builtin_function_1): Move common code to
1217 add_builtin_function.
1218 (builtin_function): Rename to cxx_builtin_function.
1219 Change the signature.
1220 * call.c: Include langhooks.h.
1221 (build_java_interface_fn_ref): Replace calls to
1222 builtin_function with add_builtin_function.
1223 * Make-lang.in (cp/call.o): Depend on langhooks.h.
1224 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
1225 cxx_builtin_function.
1226 * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
1227 Change the signature.
1229 2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
1232 * rtti.c (tinfo_base_init): The type info string is always global.
1234 2006-10-20 Lee Millward <lee.millward@codesourcery.com>
1235 Mark Mitchell <mark@codesourcery.com>
1238 * decl2.c (grokbitfield): Detect invalid non-integral
1239 types earlier when possible.
1241 2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
1244 * typeck2.c (digest_init): Raise error upon attempts to
1245 initialize arrays with variables.
1247 2006-10-17 Lee Millward <lee.millward@codesourcery.com>
1250 * cp-tree.h (xref_basetypes): Return bool instead of void.
1251 * decl.c (xref_basetypes): Adjust definition. Return false
1252 if the class bases are invalid.
1253 * parser.c (cp_parser_class_head): Check the return value
1254 from xref_basetypes.
1256 2006-10-17 Mark Mitchell <mark@codesourcery.com>
1259 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
1263 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
1265 (cp_parser_constructor_declarator_p): Use it.
1266 (cp_parser_check_type_definition): Return a value indicating
1267 whether or not the definition is valid.
1268 (cp_parser_enum_specifier): Skip invalid enum definitions.
1270 2006-10-17 Mark Mitchell <mark@codesourcery.com>
1273 * typeck2.c (build_functional_cast): Don't zero-initialize
1274 non-PODs; instead, call their constructors.
1275 * method.c (synthesize_method): Always build mem-initializers, if
1276 we're synthesizing the default constructor.
1278 2006-10-17 Mark Mitchell <mark@codesourcery.com>
1281 * decl.c (reshape_init_class): Move check for designated
1283 * parser.c (cp_parser_initializer_list): ... here.
1284 * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
1286 2006-10-16 Mark Mitchell <mark@codesourcery.com>
1289 * typeck2.c (process_init_constructor_array): Reword comment.
1290 * pt.c (tsubst_copy_and_built): Call reshape_init before calling
1294 * parser.c (cp_parser_using_declaration): Stop parsing when
1295 something goes wrong with an access declaration.
1298 * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
1299 types when their sizes are required. Refine test for VLAs.
1302 * parser.c (cp_parser_template_argument): Don't consider "&var" a
1303 possible constant-expression.
1304 * pt.c (convert_nontype_argument): Refine handling of arguments of
1307 2006-10-13 Mark Mitchell <mark@codesourcery.com>
1310 * parser.c (function_declarator_p): New function.
1311 (cp_parser_init_declarator): Use it.
1312 (cp_parser_member_declaration): Likewise.
1314 2006-10-12 Mark Mitchell <mark@codesourcery.com>
1317 * rtti.c (get_tinfo_decl): Refuse to create type info objects for
1318 variably modified types.
1320 2006-10-12 Lee Millward <lee.millward@codesourcery.com>
1323 * decl.c (start_decl): Return error_mark_node if a
1324 function is initialized like a variable.
1325 (check_var_type): If a variable of field is declared void,
1326 set the type to error_mark_node.
1327 (grokdeclarator): Check the return type of check_var_type.
1328 * class.c (finish_struct_1): Robustify.
1330 2006-10-11 Mark Mitchell <mark@codesourcery.com>
1333 * decl.c (check_initializer): Issue errors about trying to
1334 initialize arrays whose elements have variable size.
1336 2006-10-11 Lee Millward <lee.millward@codesourcery.com>
1339 * cp-tree (struct cp_decl_specifier_seq): Rename to
1340 conflicting_specifiers_p
1341 * parser.c (cp_parser_set_storage_class): Set
1342 conflicting_specifiers_p for the input decl specifier
1343 if a typedef specifier is present. Rename uses of
1344 multiple_specifiers_p to conflicting_specifiers_p.
1345 (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
1346 class specifier has already been set for this declaration,
1347 set conflicting_specifiers_p to true on the decl_specs.
1348 * decl.c (grokdeclarator): Rename uses of
1349 multiple_specifiers_p to conflicting_specifiers_p.
1351 2006-10-10 Brooks Moses <bmoses@stanford.edu>
1353 * Make-lang.in: Added "c++.pdf" target support.
1355 2006-10-10 Richard Guenther <rguenther@suse.de>
1357 PR rtl-optimization/29323
1358 * decl.c (finish_function): Set TREE_NOTHROW only for
1359 functions that bind local.
1361 2006-10-09 Richard Henderson <rth@redhat.com>
1363 Revert emutls patch.
1365 2006-10-04 Richard Henderson <rth@redhat.com>
1366 Jakub Jelinek <jakub@redhat.com>
1368 * decl.c (grokvardecl): Don't error if !have_tls.
1369 (grokdeclarator): Likewise.
1370 * parser.c (cp_parser_omp_threadprivate): Likewise.
1372 2006-10-03 Mark Mitchell <mark@codesourcery.com>
1375 * friend.c (do_friend): Improve comments; add assertion.
1376 * parser.c (cp_parser_nested_name_specifier_opt): Resolve
1377 typenames for qualified names used in declarations, even when
1378 caching qualified name lookup.
1381 * decl2.c (grokfield): Don't handle access declarations here.
1382 * parser.c (cp_parser_using_declaration): Handle access
1384 (cp_parser_block_declaration): Adjust calls to
1385 cp_parser_using_declaration.
1386 (cp_parser_member_declaration): Likewise. Use
1387 cp_parser_using_declaration to look for access_declarations.
1389 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1392 * init.c (build_new): Check for invalid init.
1394 2006-10-02 Mark Mitchell <mark@codesourcery.com>
1397 * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
1398 not try to actually evaluate sizeof for a VLA type.
1400 2006-10-01 Mark Mitchell <mark@codesourcery.com>
1403 * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
1404 * semantics.c (baselink_for_fns): Build a baselink, even when
1405 processing a template.
1408 * parser.c (cp_parser_postfix_dot_deref_expression): Use
1409 BASELINK_ACCESS_BINFO as the qualifying scope when calling
1410 adjust_result_of_qualified_name_lookup.
1412 2006-09-25 Lee Millward <lee.millward@codesourcery.com>
1416 * cp-tree.h (redeclare_class_template): Adjust declaration
1417 to return bool instead of void.
1418 * pt.c (redeclare_class_template): Update definition.
1419 Return false on error.
1420 * decl.c (xref_tag): Return error_mark_node if
1421 redeclare_class_template returned false.
1424 * cp-tree.h (begin_specialization): Return bool
1426 * pt.c (check_specialization_scope): Likwise.
1427 Adjust comment. Return false if a specialization
1428 isn't permitted in the current scope.
1429 (begin_specialization): Use the return value of
1430 check_specialization_scope.
1431 * parser.c (cp_parser_explicit_specialization): If
1432 begin_specialization returned false, skip the rest
1433 of the specialization.
1435 2006-09-21 Mark Mitchell <mark@codesourcery.com>
1438 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
1441 2006-09-21 Lee Millward <lee.millward@codesourcery.com>
1444 * decl.c (shadow_tag): Return error_mark_node
1445 if maybe_process_partial_specialization failed.
1448 * decl.c (grokdeclarator): Return error_mark_node on
1449 declaration with two or more data types.
1451 2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
1454 * class.c (check_for_override): Remove dllimport from virtual
1457 2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
1460 * parser.c (cp_parser_labeled_statement): Return nothing. Do
1461 not take in_statement_expr and in_compound as arguments. Rename
1462 to cp_parser_label_for_labeled_statement. Parse only the label,
1464 (cp_parser_statement): Parse the statement of a labeled-statement
1465 from here, using tail recursion.
1467 2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
1470 * init.c (build_zero_init): If we have an error mark node for
1471 the array size, return.
1473 2006-09-10 Mark Mitchell <mark@codesourcery.com>
1476 * cp-objcp-common.c (cxx_staticp): New function.
1477 * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
1478 * cp-tree.h (cxx_staticp): New function.
1480 2006-09-09 Jason Merrill <jason@redhat.com>
1483 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
1485 2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1488 * parser.c (cp_parser_skip_until_found): Rename to
1489 cp_parser_skip_to_end_of_template_parameter_list. Remove last two
1490 parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
1491 Reorganize. Adjust comment.
1492 (cp_parser_template_declaration_after_export): Adjust call.
1493 (cp_parser_enclosed_template_argument_list): Likewise.
1495 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
1498 * init.c (build_new_1): Build a distinct type copy
1499 for the array type that was returned from
1500 build_cplus_array_type.
1502 2006-09-07 Jason Merrill <jason@redhat.com>
1505 * cvt.c (convert_to_void): Enable previous change.
1508 * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
1511 2006-09-07 Simon Martin <simartin@users.sourceforge.net>
1514 * pt.c (fold_non_dependent_expr): Make sure expr is not
1515 dereferenced if it is NULL.
1517 2006-09-06 Zak Kipling <zak@transversal.com>
1520 * decl.c (make_rtl_for_nonlocal_decl),
1521 (start_preparsed_function): Don't use lbasename on
1522 input_filename when calling get_fileinfo.
1523 * semantics.c (begin_class_definition): Likewise.
1524 * lex.c (cxx_make_type): Likewise.
1525 (handle_pragma_interface): Call get_fileinfo on input_filename,
1526 not on the parameter to the directive.
1528 2006-09-06 Mark Mitchell <mark@codesourcery.com>
1531 * pt.c (tsubst): Use fold_non_dependent_expr to fold array
1535 * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
1538 2006-09-06 Jason Merrill <jason@redhat.com>
1541 * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
1542 * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
1543 * tree.c (build_cplus_new): Set it.
1546 * cvt.c (convert_to_void): Replace a subexpression with no side
1547 effects with void_zero_node.
1548 * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
1549 (get_first_fn): Ditto.
1550 * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
1552 2006-09-05 Jason Merrill <jason@redhat.com>
1555 * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
1556 where the name is a type used incorrectly.
1559 * typeck.c (maybe_warn_about_returning_address_of_local): Look
1560 through COMPONENT_REF and ARRAY_REF.
1563 * name-lookup.c (do_class_using_decl): Try to find the base even
1564 if bases_dependent_p.
1565 * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
1568 * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
1570 2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
1572 PR 23287 Revert my 2006-09-01 patch.
1573 * parser.c: Reverted.
1576 2006-09-02 Lee Millward <lee.millward@codesourcery.com>
1582 * parser.c (cp_parser_template_parameter_list): Add
1583 invalid template parameters to the parameter list as
1586 2006-09-02 Jakub Jelinek <jakub@redhat.com>
1589 * except.c (build_throw): Only set current_function_returns_abnormally
1590 if cfun is not NULL.
1593 * repo.c (repo_file): Remove.
1594 (open_repo_file, reopen_repo_file_for_write): Return fopened
1595 FILE * instead of setting global repo_file variable.
1596 (init_repo): Adjust caller.
1597 (finish_repo): Likewise. Return instead of goto out before
1598 reopen_repo_file_for_write has been called.
1600 2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
1603 * semantics.c (finish_call_expr): Add assert.
1604 * name-lookup.c (lookup_arg_dependent): Check we found an overload
1608 * parser.c (cp_parser_id_expression): Add member_p
1609 argument. Update all callers.
1610 (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
1611 the object's scope, if valid.
1612 (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
1614 (cp_parser_postfix_dot_deref_expression): Set object_scope.
1615 * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
1617 2006-08-30 Jason Merrill <jason@redhat.com>
1620 * class.c (check_field_decls): Don't unset TYPE_PACKED until all
1621 the fields have been processed.
1623 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
1626 * call.c (build_x_va_arg): Remove the reference type
1627 from the type before creating the pointer type.
1629 2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
1632 * except.c (expand_start_catch_block): Use correct types for bitwise
1635 2006-08-28 Jason Merrill <jason@redhat.com>
1638 * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
1639 fields can't be packed.
1642 * cvt.c (convert_to_void): Don't automatically load from volatiles
1643 of TREE_ADDRESSABLE type.
1645 2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1648 * cp-tree.h (maybe_process_partial_specialization): Return
1649 tree instead of void.
1650 * parser.c (cp_parser_class_head): Use return value of
1651 maybe_process_partial_specialization.
1652 * pt.c (maybe_process_partial_specialization): Return error_mark_node
1653 for broken specializations, TYPE otherwise. Check for template
1654 template parameters.
1656 2006-08-27 Mark Mitchell <mark@codesourcery.com>
1659 * pt.c (register_specialization): Return error_mark_node for
1660 specialization-after-instantiation.
1661 * decl2.c (mark_used): Mark the main function used when one of its
1664 2006-08-27 Lee Millward <lee.millward@codesourcery.com>
1667 * class.c (check_field_decls): Don't issue error about
1668 local classes containing static data members.
1670 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
1673 * parser.c (struct cp_token): Add input_file_stack_index.
1674 (eof_token): Update.
1675 (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
1676 (cp_lexer_set_source_position_from_token): Restore input file
1679 2006-08-26 Lee Millward <lee.millward@codesourcery.com>
1684 * pt.c (process_template_parm): Store invalid template
1685 parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
1686 (push_inline_template_parms_recursive): Check for template
1687 parameters having a TREE_VALUE of error_mark_node rather than
1688 check the parameter itself.
1689 (mangle_class_name_for_template): Likewise.
1690 (comp_template_parms): When comparing the individual template
1691 parameters, return 1 if either is error_mark_node.
1692 (current_template_args): Robustify.
1693 (redeclare_class_template): Likewise.
1695 2006-08-26 Mark Mitchell <mark@codesourcery.com>
1698 * class.c (resolve_address_of_overloaded_function): Add
1699 access_path parameter. Perform access checks.
1700 (instantiate_type): Adjust call to
1701 resolve_address_of_overloaded_function. Remove unnecessary code.
1702 * tree.c (is_overloaded_fn): Document. Return 2 when there are
1703 acutally multiple functions.
1704 (really_overloaded_fn): Use is_overloaded_fn.
1705 * mangle.c (write_expression): Handle BASELINKs.
1706 * cp-tree.h (really_overloaded_fn): Return bool.
1707 (baselink_for_fns): Declare.
1708 * search.c (lookup_member): Check access for single static
1710 * pt.c (convert_nontype_argument_function): Handle BASELINKs.
1711 (tsubst_copy_and_build): Generate BASELINKs for template-ids.
1712 * semantics.c (finish_call_expr): Use baselink_for_fns.
1713 (baselink_for_fns): New function.
1714 (finish_id_expression): Use it.
1715 * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
1718 * pt.c (tsubst): Issue errors about attempts to create VLAs at
1719 template-instantiation time.
1721 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1724 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
1725 template parameters. Improve error message for template type
1729 * cp-tree.h (grok_op_properties): Return bool instead of void.
1730 * decl.c (grokfndecl): Discard invalid operator declarations.
1731 (copy_fn_p): Revert change for PR 27547.
1732 (grok_op_properties): Return error status (true on success).
1733 * pt.c (tsubst_decl): Discard invalid operator declarations.
1735 2006-08-25 Mark Mitchell <mark@codesourcery.com>
1738 * decl.c (grokdeclarator): Disallow declarations with qualified
1739 names in local scopes.
1741 2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
1744 * decl.c (make_typename_type): Only try and resolve it when
1745 context is not dependent. Refactor.
1746 * decl2.c (check_classfn): Push to class scope before looking for
1749 2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
1752 * g++spec.c (lang_specific_driver): Always check if we need to
1753 swallow a space-separated arg to '-x'.
1754 * lang-specs.h: Don't create ouput files for '-xc++-header'
1757 2006-08-23 Jason Merrill <jason@redhat.com>
1760 * pt.c (push_template_decl_real): A friend template with class
1761 scope isn't primary.
1763 2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
1766 * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
1767 Move -fno-rtti check to be more specific.
1769 2006-08-22 Jason Merrill <jason@redhat.com>
1772 * call.c (build_over_call): Don't make a copy here if build_call
1775 2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
1778 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
1781 2006-08-22 Simon Martin <simartin@users.sourceforge.net>
1784 * parser.c (cp_parser_postfix_expression): Make sure that the
1785 saved value for parser->type_definition_forbidden_message is
1786 restored before returning to avoid an invalid free().
1788 2006-08-22 Jason Merrill <jason@redhat.com>
1791 * typeck.c (merge_types): If either of the types have the right
1792 attributes, return that one.
1794 * tree.c (cp_build_type_attribute_variant): Make sure we aren't
1795 doing this to class types.
1796 * typeck.c (original_type): Deal with type quals properly.
1798 2006-08-21 Jason Merrill <jason@redhat.com>
1801 * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
1802 just leave the expression as it is.
1803 (finish_stmt_expr): If the statement-expression has class type,
1804 wrap it in a TARGET_EXPR.
1805 * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
1807 * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
1809 2006-08-21 Lee Millward <lee.millward@codesourcery.com>
1812 * decl.c (duplicate_decls): Return early if either
1813 newdecl or olddecl is error_mark_node.
1816 * decl.c (grokdeclarator): Return early after
1817 issuing diagnostic about an incomplete type.
1820 * tree.c (decl_anon_ns_mem_p): Robustify.
1821 * decl2.c (determine_visibility): Likewise.
1823 2006-08-20 Mark Mitchell <mark@codesourcery.com>
1826 * tree.c (cast_valid_in_integral_constant_expression_p): New
1828 * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
1829 * pt.c (tsubst_expr): Add integral_constant_expression_p
1831 (fold_non_dependent_expr): Adjust callers of
1832 tsubst_{expr,copy_and_build}.
1833 (tsubst_friend_function): Likewise.
1834 (tsubst_template_arg): Likewise.
1835 (tsubst_default_argument): Likewise.
1836 (tsubst_decl): Likewise.
1838 (tsubst_omp_clasuses): Likewise.
1839 (regenerate_decl_fromp_template): Likewise.
1840 (instantiate_decl): Likewise.
1841 (tsubst_initializer_list): Likewise.
1842 (tsubst_enum): Likewise.
1843 (tsubst_expr): Use RECUR throughout.
1844 (tsubst_copy_and_build): Change definition of RECUR. Do not allow
1845 invalid casts in integral constant expressions.
1846 * parser.c (cp_parser_postfix_expression): Use
1847 cast_valid_in_integral_constant_expression_p.
1848 (cp_parser_cast_expression): Likewise.
1849 (cp_parser_functional_cast): Likewise.
1852 * pt.c (tsubst_qualified_id): Do not strip references from
1855 2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1858 * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
1860 (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
1861 for valid type-names.
1862 (cp_parser_unqualified_id): Fix error handling for destructors.
1865 * decl.c (xref_tag): Improve error message. Return early on error.
1868 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
1870 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1873 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1875 2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
1878 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
1879 perform_integral_promotions for non integral type.
1881 2006-08-16 Jason Merrill <jason@redhat.com>
1884 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
1885 if arg is a function.
1887 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1890 * init.c (build_new): Return early on invalid placement.
1892 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
1895 * pt.c (process_template_parm): Robustify.
1897 2006-08-14 Steve Ellcey <sje@cup.hp.com>
1901 * operators.def: Remove <?, ?>, <?=, and >?= operators.
1902 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
1903 (cp_parser_warn_min_max): Remove.
1905 2006-08-11 Jason Merrill <jason@redhat.com>
1908 * parser.c (cp_parser_elaborated_type_specifier): Also ignore
1909 attributes applied to a TYPENAME_TYPE.
1911 2006-08-09 Lee Millward <lee.millward@codesourcery.com>
1914 * pt.c (coerce_template_parms): Copy across the
1915 invalid template arguments to the new template inner arguments.
1916 (retrieve_specialization): Robustify.
1919 * pt.c (coerce_template_template_parms): Robustify.
1922 * error.c (dump_template_parms): Robustify.
1925 * pt.c (redeclare_class_template): Robustify.
1928 * pt.c (type_unification_real): Robustify.
1930 2006-08-03 Lee Millward <lee.millward@codesourcery.com>
1933 * decl.c (start_decl): Return error_mark_node if a
1934 diagnostic was issed for an invalid typedef initialization.
1936 2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1939 * parser.c (cp_parser_unqualified_id): Check for invalid scopes
1940 when parsing destructor names.
1943 * decl.c (duplicate_decls): Call check_default_args here.
1944 (start_preparsed_function): Do not call check_default_args.
1945 * name-lookup.c (pushdecl_maybe_friend): Only call
1946 check_default_args if duplicate_decls got bypassed.
1948 2006-08-02 Richard Guenther <rguenther@suse.de>
1952 2006-07-05 Richard Guenther <rguenther@suse.de>
1953 Andrew Pinski <pinskia@gcc.gnu.org>
1956 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1957 top level qualifiers for pointer type comparisons.
1959 2006-08-02 Mark Mitchell <mark@codesourcery.com>
1962 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1964 2006-07-31 Mark Mitchell <mark@codesourcery.com>
1967 * tree.c (stabilize_expr): Tweak documentation. Add assertion.
1968 (stabilize_call): Tweak documentation.
1969 (stabilize_init): Only call stabilize_call for calls.
1971 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1974 * decl2.c (check_classfn): Remove early return.
1975 * search.c (lookup_member): Return NULL with bad type.
1977 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1980 * decl.c (check_initializer): Check for 1 initializer on scalar types.
1982 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1985 * pt.c (tsubst_copy_and_build): Mark used enum types.
1986 * semantics.c (finish_id_expression): Likewise.
1988 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1991 * decl.c (grokdeclarator): Check whether "long" or "short" was
1992 specified for non-integral types.
1994 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1996 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1998 2006-07-28 Lee Millward <lee.millward@codesourcery.com>
2002 * pt.c (process_template_parm) Store invalid template
2003 parameters as error_mark_node in the paramater list.
2004 (push_inline_template_parms_recursive): Handle invalid
2005 template parameters.
2006 (comp_template_parms): Likewise.
2007 (check_default_tmpl_arg): Likewise.
2008 (coerce_template_template_parms): Likewise.
2009 (mangle_class_name_for_template): Likewise.
2010 (tsubst_template_parms): Likewise.
2011 * error.c (dump_template_argument_list): Likewise.
2013 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
2015 * cp-tree.h: Fix a comment typo.
2017 2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2020 * decl.c (grokdeclarator): Return error_mark_node after invalid
2023 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
2026 * decl.c (grokvardecl): Use FROB_CONTEXT.
2027 * pt.c (register_specialization): Likewise.
2029 2006-07-23 Mark Mitchell <mark@codesourcery.com>
2032 * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
2033 * name-lookup.c (unqualified_namespace_lookup): There is no way to
2034 have a hidden name in non-namespace scopes.
2035 * pt.c (tsubst_friend_class): Look for hidden names.
2036 * decl.c (lookup_and_check_tag): Fix typo in comment.
2038 * semantics.c (finish_compound_literal): Fix typo in comment.
2040 2006-07-21 Jason Merrill <jason@redhat.com>
2042 * decl2.c (determine_visibility): Don't propagate visibility from
2044 (constrain_class_visibility): Don't warn in system headers.
2045 Don't warn about pointer fields.
2047 2006-07-20 Mike Stump <mrs@apple.com>
2049 * decl2.c (determine_visibility_from_class): Don't use hidden
2050 visibility for explicit instantiations.
2052 2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2055 * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
2056 valid decls. Cleanup.
2059 * semantics.c (check_template_template_default_arg): Simplify
2062 2006-07-20 Jason Merrill <jason@redhat.com>
2065 * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
2066 const variables with implicit internal linkage.
2067 * tree.c (decl_linkage): Only return lk_external if it's set.
2070 * decl2.c (constrain_visibility): Ignore the anonymous namespace
2071 for extern "C" decls.
2072 (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
2074 * decl2.c (constrain_visibility): Remove specified and reason
2075 parameters. Don't touch decls that already have explicit visibility.
2076 (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
2078 (determine_visibility_from_class): Reverse sense of
2079 DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
2080 (constrain_class_visibility): Only complain about member visibility
2081 if the member type is another class. Don't change visibility of the
2084 2006-07-19 Mark Mitchell <mark@codesourcery.com>
2087 * decl.c (layout_var_decl): Don't call push_local_name here.
2088 (initialize_artificial_var): Assert artificiality.
2089 (cp_finish_decl): Call push_local_name here.
2091 2006-07-18 Mark Mitchell <mark@codesourcery.com>
2094 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
2097 2006-07-18 Mark Mitchell <mark@codesourcery.com>
2100 * semantics.c (check_accessibility_of_qualified_id): Robustify.
2103 * pt.c (tsubst_decl): Handling substitutions into a static data
2104 member from within the scope of the tempalte itself.
2106 2006-07-18 Lee Millward <lee.millward@gmail.com>
2109 * method.c (locate_copy): Check for non_reference
2110 returning error_mark_node.
2113 * decl.c (duplicate_decls): Return error_mark_node
2114 on ambiguous declaration.
2116 2006-07-18 Steve Ellcey <sje@cup.hp.com>
2119 * search.c (adjust_result_of_qualified_name_lookup): Change
2120 assert to part of if statement.
2122 2006-07-17 Steve Ellcey <sje@cup.hp.com>
2125 * decl.c (reshape_init_class): Return error_mark_node on error.
2127 2006-07-17 Steve Ellcey <sje@cup.hp.com>
2130 * decl2.c (check_classfn): Return NULL_TREE on error.
2132 2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2135 * name-lookup.c (pushdecl_maybe_friend): Return early on
2137 * except.c (expand_start_catch_block): Use error_mark_node instead
2138 of NULL_TREE for invalid decls.
2139 * parser.c (cp_parser_exception_declaration): Return error_mark_node
2140 on invalid catch parameter. Simplify.
2142 2006-07-16 Jakub Jelinek <jakub@redhat.com>
2145 * decl2.c (note_vague_linkage_var): Removed.
2146 (finish_static_data_member_decl): Add decl to pending_statics vector
2147 directly. Do it even for non-public decls.
2149 2006-07-15 Lee Millward <lee.millward@gmail.com>
2152 * decl2.c (acceptable_java_type): Robustify. Use
2153 proper Boolean return type instead of return 1.
2154 (check_java_method): Don't issue error about
2155 type not being an acceptable Java parameter if
2156 it's error_mark_node.
2159 * parser.c (cp_parser_elaborated_type_specifier):
2160 Return early if an invalid type was detected.
2162 2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2165 * parser.c (cp_parser_check_decl_spec): New function.
2166 (cp_parser_decl_specifier_seq): Factor out check for repeated
2167 decl-specifiers into cp_parser_check_decl_spec. Use it.
2168 (cp_parser_type_specifier_seq): Use it.
2171 * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
2175 * decl2.c (cplus_decl_attributes): Check for invalid decls.
2177 2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2180 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
2181 * decl2.c (grokfield): Likewise.
2183 2006-07-12 Geoffrey Keating <geoffk@apple.com>
2185 * decl2.c (determine_visibility): Don't change visibility of
2186 function locals because of -fvisibility-inlines-hidden.
2188 2006-07-12 Jason Merrill <jason@redhat.com>
2191 * semantics.c (note_decl_for_pch): Don't premangle templates.
2193 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
2195 * typeck.c (string_conv_p): Remove spurious quotation mark in
2198 2006-07-07 Lee Millward <lee.millward@gmail.com>
2199 Andrew Pinski <pinskia@gmail.com>
2202 * decl.c (define_label): Return error_mark_node on error.
2203 * semantics.c (finish_label_stmt): Don't call
2204 add_stmt for invalid labels.
2206 2006-07-06 Jason Merrill <jason@redhat.com>
2209 * decl2.c (finish_static_data_member_decl): Don't assert
2212 2006-07-05 Jason Merrill <jason@redhat.com>
2216 * class.c (check_field_decls): Check TYPE_PACKED after
2217 stripping array types.
2218 (finish_struct_bits): Don't copy TYPE_SIZE here.
2221 * friend.c (is_friend): Fix DR 45 implementation.
2223 2006-07-05 Richard Guenther <rguenther@suse.de>
2224 Andrew Pinski <pinskia@gcc.gnu.org>
2227 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
2228 top level qualifiers for pointer type comparisons.
2230 2006-07-01 Jason Merrill <jason@redhat.com>
2233 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
2236 2006-06-30 Jason Merrill <jason@redhat.com>
2239 * call.c (build_new_method_call): Force evaluation of the
2240 instance pointer, not the object.
2242 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
2244 * decl2.c: Fix a comment typo.
2246 2006-06-30 Jason Merrill <jason@redhat.com>
2249 * decl2.c (grokfield): Only try to treat the decl as an access
2250 declaration if the scope is a class.
2252 2006-06-29 Jason Merrill <jason@redhat.com>
2259 * decl2.c (determine_visibility): Overhaul.
2260 (determine_visibility_from_class): Likewise.
2261 (min_vis_r, type_visibility, constrain_visibility): New fns.
2262 (constrain_visibility_for_template): Likewise.
2263 (constrain_class_visibility): Likewise.
2264 * decl.c (cp_finish_decl): Call determine_visibility for function
2266 * name-lookup.c (pushtag): Call determine_visibility.
2267 * decl.c (duplicate_decls): Don't copy visibility from template to
2269 * pt.c (check_explicit_specialization): Likewise.
2270 (lookup_template_class, tsubst_decl): Call determine_visibility.
2271 * class.c (finish_struct_1): Call constrain_class_visibility.
2276 * parser.c (cp_parser_explicit_instantiation): Pass the attributes
2278 (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
2279 (cp_parser_enum_specifier): Likewise.
2280 (cp_parser_elaborated_type_specifier): Apply attributes if this
2281 declares only the class.
2282 (cp_parser_class_specifier): Apply leading attributes immediately.
2283 * semantics.c (begin_class_definition): Add attributes parameter,
2284 apply them to the type.
2288 * tree.c (decl_anon_ns_mem_p): New function.
2289 * cp-tree.h: Declare it.
2290 * decl2.c (determine_visibility): Make anonymous namespace
2292 (min_vis_r, constrain_visibility): Likewise.
2293 * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
2295 * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
2297 * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
2298 on anonymous namespaces.
2300 2006-06-28 Jason Merrill <jason@redhat.com>
2303 * pt.c (convert_template_argument): Pass all template arguments
2304 on to coerce_template_template_parms.
2306 2006-06-25 Lee Millward <lee.millward@gmail.com>
2307 Mark Mitchell <mark@codesuorcery.com>
2310 * decl2.c (grokbitfied): Remove check for grokdeclarator
2311 returning NULL_TREE, instead check for error_mark_node
2312 to indicate failure.
2313 * decl.c (grokdeclarator): Adjust block comment.
2315 2006-06-25 Lee Millward <lee.millward@gmail.com>
2318 * mangle.c (mangle_conv_op_name_for_type): Check for
2320 * name-lookup.c (push_class_level_binding): Robustify.
2321 (do_class_using_decl): Return early if name is error_mark_node.
2323 2006-06-23 Steve Ellcey <sje@cup.hp.com>
2326 * name-lookup.c (pushtag): Return if we have error_mark_node.
2328 2006-06-23 Steve Ellcey <sje@cup.hp.com>
2331 * typeck2.c (process_init_constructor_array): Set ce->value on errors.
2333 2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2336 * parser.c (cp_parser_attribute_list): Skip attributes with invalid
2337 arguments. Fix comment.
2340 * init.c (build_new_1): Handle error_mark_nodes returned by
2341 build_java_class_ref.
2342 (build_java_class_ref): Do not abort compilation, but return
2343 error_mark_node. Improve error message. Fix indentation.
2345 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
2348 * decl.c (start_decl): Check that dllimports are not initialized.
2350 2006-06-22 Lee Millward <lee.millward@gmail.com>
2353 * typeck2.c (build_m_component_ref): Use error_operand_p.
2356 * decl.c (grokdeclarator): Return error_mark_node on
2357 invalid uses of the scope resolution operator.
2359 2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2362 * pt.c (determine_specialization): Check for invalid decls.
2365 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
2369 * rtti.c (get_tinfo_decl_dynamic): Robustify.
2371 2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2374 * init.c (push_base_cleanups): Skip members with invalid types.
2375 * typeck.c (build_class_member_access_expr): Robustify.
2377 2006-06-19 Mark Mitchell <mark@codesourcery.com>
2379 * pt.c (instantiate_template): Fix typo in comment.
2381 2006-06-19 Richard Guenther <rguenther@suse.de>
2383 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
2384 power-of-two token vector size.
2386 2006-06-16 Mark Mitchell <mark@codesourcery.com>
2389 * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
2393 * call.c (standard_conversion): Strip cv-qualifiers from bitfield
2397 * decl.c (have_extern_spec): Remove.
2398 (start_decl): Do not check have_extern_spec.
2399 (start_function): Likewise.
2400 * cp-tree.h (have_extern_spec): Remove.
2401 * parser.c (cp_parser_linkage_specification): Don't set
2403 (cp_parser_init_declarator): Likewise.
2404 (cp_parser_parameter_declaration): Do not treat parameters as
2405 within the scope of an unbraced linkage specification.
2407 2006-06-15 Mark Mitchell <mark@codesourcery.com>
2410 * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
2412 * pt.c (unify): Use it.
2415 * call.c (build_conditional_expr): Robustify.
2418 * pt.c (instantiate_template): Set processing_template_decl to
2419 zero while performing substitutions.
2421 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2424 * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
2425 identify destructors.
2426 (cp_parser_nested_name_specifier_opt): Remove invalid
2428 (cp_parser_template_id): Refine heuristic for determining whether
2429 we are entering a scope.
2432 * parser.c (cp_parser_declarator): Robustify.
2435 * pt.c (tsubst_expr): Use finish_omp_atomic.
2436 (value_dependent_expression_p): All CALL_EXPRs are dependent.
2437 * semantics.c (finish_omp_atomic): Rework to use standard
2438 paradigms for handling non-dependent expressions.
2440 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
2442 * typeck.c (build_modify_expr): Tidy diagnostic message.
2444 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2447 * typeck.c (build_modify_expr): Disallow array assignment.
2449 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
2451 * cp-tree.def: Fix typo.
2453 2006-06-13 Mark Mitchell <mark@codesourcery.com>
2456 * decl.c (decls_match): Allow an extern "C" variable declarations
2457 from different namespaces to match.
2458 (duplicate_decls): Disallow redeclaring a variable with a
2459 different linkage specification.
2461 2006-06-13 Jakub Jelinek <jakub@redhat.com>
2464 * cp-tree.h (cxx_int_tree_map): New struct.
2465 (struct language_function): Add extern_decl_map field.
2466 * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
2467 to cp_function_chain->extern_decl_map hash table instead of
2468 copying over DECL_UID.
2469 * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
2471 (cp_genericize_r): Remap DECL_EXTERN local decls using
2472 cp_function_chain->extern_decl_map hash table.
2473 * decl.c (finish_function): Clear extern_decl_map.
2475 2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2478 * semantics.c (finish_offsetof): Handle pseudo-destructors.
2481 * name-lookup.c (lookup_qualified_name): Always return error_mark_node
2485 * decl2.c (finish_anon_union): Return early if build_anon_union_vars
2488 2006-06-12 Roger Sayle <roger@eyesopen.com>
2491 * typeck2.c (build_functional_cast): Use cp_convert to construct
2492 non-aggregate initializers instead of the user-level build_c_cast.
2494 2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2497 * cp-tree.h (finish_offsetof): Add prototype.
2498 * semantics.c (finish_offsetof): New function.
2499 * parser.c (cp_parser_builtin_offsetof): Call it instead of
2501 * pt.c (tsubst_copy_and_build): Likewise.
2503 2006-06-06 Mark Mitchell <mark@codesourcery.com>
2506 * call.c (standard_conversion): Require that the derived type be
2507 complete when performing a derived-to-base conversion.
2509 2006-06-04 Mark Mitchell <mark@codesourcery.com>
2512 * decl.c (cp_finish_decl): Process initializers for static data
2513 members with non-dependent initializers, even in templates.
2516 * decl.c (maybe_deduce_size_from_array_init): If the declaration
2517 is erroneous, give it an erroneous type.
2518 (layout_var_decl): If the type is erroneous, give up.
2519 (check_initializer): Likewise.
2522 * cp-tree.h (TYPE_OBJ_P): New macro.
2523 (TYPE_PTROB_P): Use it.
2524 (TYPE_REF_OBJ_P): Likewise.
2525 * semantics.c (finish_compound_literal): Do not permit compound
2526 literals of non-object types.
2529 * typeck.c (original_type): Robustify.
2531 2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2534 * init.c (constant_value_1): Return decl instead of error_mark_node
2535 for invalid initializers.
2537 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
2540 * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
2541 on operand of the COND_EXPR for the null pointer check.
2543 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
2546 * typeck.c (build_unary_op): Mark the function as being used.
2548 2006-06-01 Alexandre Oliva <aoliva@redhat.com>
2551 * parser.c (cp_parser_initial_pragma): Read one more token for
2552 caller after reading PCH file in.
2554 2006-05-31 Mark Mitchell <mark@codesourcery.com>
2557 * call.c (perform_implicit_conversion): Do not actually perform
2558 conversions in templates.
2561 * call.c (resolve_args): Check for invalid uses of bound
2562 non-static member functions.
2563 * init.c (build_offset_ref): Return error_mark_node for errors.
2566 * decl.c (reshape_init): Robustify.
2567 (reshape_init_array_1): Likewise.
2569 2006-05-30 Mark Mitchell <mark@codesourcery.com>
2572 * parser.c (cp_parser_decl_specifier_seq): Issue errors about
2573 "friend" specifiers that do not appear in class scopes.
2576 * class.c (check_bitfield_decl): Ensure that all bitfields have
2579 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
2581 * pt.c (convert_nontype_argument): Fix a typo in an error
2584 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
2586 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
2587 spelling conventions.
2589 2006-05-24 Mark Mitchell <mark@codesourcery.com>
2592 * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
2593 error_mark_node to indicate an initialization is OK.
2594 (start_decl): Likewise. Adjust call to start_decl_1.
2595 (start_decl_1): Add initialized parameter. Simplify.
2596 * except.c (initialize_handler_parm): Adjust call to
2598 (expand_start_catch_block): Let cp_finish_decl initialize catch
2600 * cp-tree.h (start_decl_1): Adjust prototype.
2601 * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
2602 (instantiate_decl): Let cp_finish_decl handle initialization.
2603 * semantics.c (finish_compound_literal): Create a temporary
2604 variable for the literal.
2605 * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
2607 * decl2.c (finish_static_data_member_decl): Don't set
2609 (grokfield): Do not try to initialize functions.
2611 2006-05-23 Mark Mitchell <mark@codesourcery.com>
2614 * pt.c (determine_specialization): Disallow partial
2615 specializations of templates.
2617 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2620 * typeck.c (build_modify_expr): Test arguments for error_operand_p.
2622 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
2624 2006-05-21 Mark Mitchell <mark@codesourcery.com>
2627 * cp-tree.h (cp_save_expr): New function.
2628 * init.c (build_new): Correct logic for zero-element array
2629 warning. Use cp_save_expr.
2630 * tree.c (cp_save_expr): New function.
2632 2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2635 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
2638 2006-05-19 Mike Stump <mrs@apple.com>
2640 * typeck.c (default_conversion): Remove static.
2642 2006-05-19 Mark Mitchell <mark@codesourcery.com>
2645 * cp-tree.h (begin_function_try_block): Change prototype.
2646 (finish_function_handler_sequence): Likewise.
2647 * parser.c (cp_parser_function_try_block): Adjust calls.
2648 * pt.c (tsubst_expr): Adjust calls.
2649 * semantics.c (begin_function_try_block): Create an artificial
2651 (finish_function_handler_sequence): Close it.
2653 2006-05-18 Mark Mitchell <mark@codesourcery.com>
2657 * typeck.c (decay_conversion): Convert bitfields to their declared
2658 types here. Improve documentation. Avoid use of cp_convert.
2659 (default_conversion): Make it static. Perform integral promotions
2660 before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
2662 * init.c (build_init): Remove.
2663 (expand_default_init): Do not call rvalue.
2664 * call.c (null_ptr_cst_p): Robustify.
2665 (build_conditional_expr): Tidy.
2666 * except.c (build_throw): Do not perform lvalue-to-rvalue
2667 conversion on operand before initializing temporary.
2668 * tree.c (convert.h): Include it.
2669 (convert_bitfield_to_declared_type): Use convert_to_integer, not
2671 (rvalue): Don't convert bitfields to their declared type here.
2672 * cp-tree.h (build_init): Remove.
2673 (default_conversion): Likewise.
2674 * typeck2.c (build_m_component_ref): Do not perform
2675 lvalue-to-rvalue, function-to-pointer, or array-to-pointer
2676 conversions here. Correct error message.
2678 2006-05-17 Mark Mitchell <mark@codesourcery.com>
2681 * decl2.c (check_member_template): Remove checks for virtual
2683 * parser.c (cp_parser_function_specifier_opt): Complain about
2685 (cp_parser_pure_specifier): Likewise.
2688 * parser.c (cp_parser_set_storage_class): Check for
2689 invalid uses of storage classes on unbraced linkage
2691 (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
2692 to cp_parser_set_storage_class.
2694 2006-05-17 Jakub Jelinek <jakub@redhat.com>
2697 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
2701 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
2702 on combined parallel workshare constructs.
2703 * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
2705 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2708 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
2710 2006-05-15 Mark Mitchell <mark@codesourcery.com>
2713 * cp-tree.h (perform_access_checks): New function.
2714 * semantics.c (perform_access_checks): New function.
2715 (perform_deferred_access_checks): Use it.
2716 * parser.c (cp_parser_simple_declaration): Adjust call to
2717 cp_parser_init_declarator.
2718 (cp_parser_type_parameter): Do not defer checks in default
2720 (cp_parser_explicit_specialization): Adjust call to
2721 cp_parser_single_declaration.
2722 (cp_parser_init_declarator): Perform template-parameter access
2724 (cp_parser_parameter_declaration): Do not defer checks for
2725 template parameter default arguments.
2726 (cp_parser_template_declaration_after_export): Gather access
2727 checks for template parameters, and pass them to
2728 cp_parser_single_declaration.
2729 (cp_parser_template_parameter_access_checks): New function.
2730 (cp_parser_single_declaration): Add checks parameter.
2733 * call.c (convert_like_real): Convert bitfields to their declared
2734 types when forming an rvalue.
2735 * tree.c (convert_bitfield_to_declared_type): New function.
2737 * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
2739 2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2742 * pt.c (any_dependent_template_arguments_p): Return early on invalid
2746 * search.c (adjust_result_of_qualified_name_lookup): Skip on
2747 invalid context_class.
2750 * pt.c (do_decl_instantiation): Return early on invalid decl.
2753 * pt.c (push_template_decl_real): Return error_mark_node instead
2757 * pt.c (tsubst_friend_class): Return early on invalid friend
2760 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2762 * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
2763 (cp/decl2.o): Likewise.
2764 (cp/typeck.o): Likewise.
2765 (cp/cvt.o): Likewise.
2766 (cp/parser.o): Likewise.
2767 (cp/call.o): Replace target.h with $(TARGET_H).
2769 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
2771 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2772 COMPONENT_REF alone.
2774 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2777 * decl.c (copy_fn_p): Return early on non-member functions.
2779 2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2782 * decl2.c (build_memfn_type): Skip invalid functions and class types.
2784 2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2787 * pt.c (convert_nontype_argument): Return early on invalid arguments.
2789 * pt.c (process_template_parm): Remove superfluous temporary.
2792 * pt.c (process_template_parm): Handle erroneous non-type parameters.
2795 * typeck.c (convert_for_initialization): Skip erroneous types.
2798 * typeck.c (convert_arguments): Return early on args with
2801 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
2804 * typeck.c (build_static_cast_1): Save casted types in used types
2806 (build_reinterpret_cast_1): Same.
2807 * rtti.c (build_dynamic_cast_1): Same.
2809 2006-05-04 Jakub Jelinek <jakub@redhat.com>
2812 * parser.c (cp_parser_omp_for_loop): Only call
2813 cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
2816 2006-05-02 Mark Mitchell <mark@codesourcery.com>
2819 * decl.c (grokdeclarator): Robustify checks for defining members
2820 of incomplete types.
2823 * class.c (add_method): Call grok_special_member_properties.
2824 * decl.c (grokdeclarator): Don't call it here.
2825 (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
2826 assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
2828 (start_method): Don't call grok_special_member_properties.
2829 * method.c (implicitly_declare_fn): Likewise.
2830 * pt.c (instantiate_class_template): Likewise.
2831 * decl2.c (grokfield): Likewise.
2833 2006-05-02 Jakub Jelinek <jakub@redhat.com>
2836 * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
2837 * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
2838 * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
2840 2006-04-30 Mark Mitchell <mark@codesourcery.com>
2843 * pt.c (tsubst_default_argument): Increment function_depth around
2844 call to tsubst_expr.
2845 * parser.c (cp_parser_parameter_declaration): Likewise.
2846 * decl2.c (mark_used): Tidy.
2848 2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2851 * decl.c (grok_op_properties): Skip operators with invalid args
2852 when checking for class-type or enum-type args.
2854 2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2857 * decl.c (copy_fn_p): Skip functions with invalid first arg.
2859 2006-04-27 Mark Mitchell <mark@codesourcery.com>
2862 * tree.c (rvalue): Convert bitfields to their declared types.
2865 * typeck2.c (cxx_incomplete_type_diagnostic): Handle
2868 2006-04-24 Mark Mitchell <mark@codesourcery.com>
2871 * typeck.c (decay_conversion): Don't adjust bitfield types.
2872 (perform_integral_promotions): Treat bitfield enums as enums, not
2873 as short integer types.
2874 * tree.c (rvalue): Convert bitfields to their correct types.
2876 2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2879 * class.c (layout_class_type): Skip fields with invalid types.
2881 2006-04-23 Mark Mitchell <mark@codesourcery.com>
2884 * cp-tree.h (build_this_parm): Declare.
2885 (grok_method_quals): Remove.
2886 (build_memfn_type): Declare.
2887 (build_artificial_parm): Declare.
2888 (do_friend): Remove quals parameter.
2889 * decl.c (build_this_parm): New function.
2890 (grokfndecl): Use it. Do not pass quals to grokclassfn.
2891 (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
2892 unnecessary TYPE_DECLs. Correct qualification of member function
2894 * method.c (implicitly_declare_fn): Use build_this_parm.
2895 * friend.c (do_friend): Remove quals parameter.
2896 * decl2.c (grok_method_quals): Remove.
2897 (build_memfn_type): New function.
2898 (build_artificial_parm): Give it external linkage.
2899 (grokclassfn): Remove quals parameter. Do not build "this"
2903 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
2904 * typeck.c (is_bitfield_expr_with_lowered_type): New function.
2905 (decay_conversion): Convert bitfield expressions to the correct
2907 (build_modify_expr): Remove spurious conversions.
2908 * class.c (layout_class_type): Modify the type of bitfields to
2909 indicate a limited range.
2910 * call.c (standard_conversion): Adjust the type of bitfield
2911 expressions used in an rvalue context.
2912 (build_conditional_expr): Likewise.
2914 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
2916 * decl.c: Fix comment typos.
2918 2006-04-21 Eric Christopher <echristo@apple.com>
2920 * decl.c: Fix typo in function name.
2922 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2925 * parser.c (cp_parser_class_name): Check for invalid typenames.
2929 * pt.c (tsubst_friend_function): Return early if
2930 pushdecl_namespace_level fails.
2933 * typeck.c (convert_arguments): Return error_mark_node instead of
2935 * cp-tree.h (error_mark_list): Remove declaration.
2936 * decl.c (error_mark_list): Remove definition.
2937 (cxx_init_decl_processing): Do not initialize error_mark_list.
2940 * rtti.c (build_dynamic_cast_1): Check for invalid conversions
2941 before calling convert_to_reference.
2942 * cvt.c (convert_to_reference): Assert that reftype is a
2945 2006-04-19 Mark Mitchell <mark@codesourcery.com>
2948 * class.c (currently_open_class): Tidy.
2949 * decl.c (grokdeclarator): If we encounter an erroneous
2950 declarator, assume that we have already issued an error message
2951 and return. Return error_mark_node instead of NULL_TREE in more
2952 places. Issue errors about function definitions that do not have
2953 a function declarator. Check for complete types for all function
2955 * cp-tree.h (cp_error_declarator): Remove.
2956 (currently_open_class): Change return type.
2957 * parser.c (cp_parser_id_expression): Add optional_p parameter.
2958 (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
2959 (cp_parser_id_expression): Likewise.
2960 (cp_parser_unqualified_id): If the name is optional, return
2962 (cp_parser_postfix_dot_deref_expression): Adjust calls.
2963 (cp_parser_type_parameter): Likewise.
2964 (cp_parser_unqualified_id): Likewise.
2965 (cp_parser_direct_declarator): Likewise.
2966 (cp_parser_declarator_id): Add optional_p parameter.
2967 (cp_parser_function_definition_from_specifiers_and_declarator):
2968 Assume that start_function indicates failure only if it has issued
2970 (cp_parser_omp_var_list_no_open): Adjust calls.
2972 2006-04-17 Janis Johnson <janis187@us.ibm.com>
2974 PR c++/26114, c++/26115
2975 * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
2976 * class.c (check_field_decls): Ditto.
2978 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2980 * init.c (build_offset_ref): Remove superfluous temporary.
2982 2006-04-16 Mark Mitchell <mark@codesourcery.com>
2985 * typeck.c (finish_class_member_access_expr): Robustify
2987 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
2989 * Make-lang.in (cp/pt.o): Depend on vecprim.h.
2990 * pt.c: Include vecprim.h.
2991 (inline_parm_levels): Change the type to VEC(int,heap) *.
2992 (inline_parm_levels_used): Remove.
2993 (maybe_begin_member_template_processing,
2994 maybe_end_member_template_processing): Use VEC instead of
2997 * cp/call.c: Fix comment typos.
2999 2006-04-12 Mark Mitchell <mark@codesourcery.com>
3001 * parser.c (cp_parser_init_declarator): Initialize local variables
3004 2006-04-12 Roger Sayle <roger@eyesopen.com>
3006 * parser.c (cp_parser_init_declarator): Initialise
3007 is_parenthesized_init to false to avoid compiler warning.
3009 2006-04-11 Mark Mitchell <mark@codesourcery.com>
3011 * cp-tree.h (build_operator_new_call): Adjust prototype.
3012 (build_new_method_call): Likewise.
3013 (build_op_delete_call): Likewise.
3014 * init.c (build_raw_new_expr): New function.
3015 (build_new_1): Pass information as parameters, rather than
3016 bundling it into a NEW_EXPR.
3017 (build_new): Adjust accordingly.
3018 (build_vec_delete_1): Adjust for changes to build_op_delete_call.
3019 (build_delete): Likewise.
3020 * decl.c (finish_destructor_body): Likewise.
3021 * call.c (build_operator_new_call): Return the allocation function
3023 (build_op_delete_call): Take allocation function as parameter.
3024 (build_special_member_call): Adjust call to build_new_method_call.
3025 (build_new_method_call): Return function called.
3026 * pt.c (tsubst_copy_and_build): Adjust call to
3027 build_new_method_call.
3028 * semantics.c (finish_call_expr): Likewise.
3029 * parser.c (cp_parser_postfix_expression): Likewise.
3030 * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
3031 "incomplete", not "undefined", types.
3034 * decl.c (grokdeclarator): Remove namespace-handling code for
3035 pointers-to-members.
3036 * parser.c (cp_parser_ptr_operator): Check for qualified names
3040 * parser.c (cp_parser_init_declarator): Adjust logic for deciding
3041 whether or not to look for a pure-specifier.
3042 (cp_parser_member_declaration): Likewise.
3044 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
3046 * decl2.c, pt.c, semantics.c: Fix comment typos.
3048 2006-04-06 Roger Sayle <roger@eyesopen.com>
3050 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
3052 2006-04-05 Jason Merrill <jason@redhat.com>
3054 * name-lookup.c (push_namespace_with_attribs): Temporarily disable
3055 default hidden visibility for anonymous namespace.
3057 2006-03-29 Roger Sayle <roger@eyesopen.com>
3060 * init.c (build_vec_delete_1): Convert BASE pointer's type to
3061 the base pointer type to avoid a type mismatch in the EQ_EXPR.
3063 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
3065 * search.c (maybe_suppress_debug_info): If
3066 flag_emit_class_debug_always then don't suppress.
3068 2006-03-22 Jason Merrill <jason@redhat.com>
3070 * name-lookup.c (push_namespace_with_attribs): Only apply hidden
3071 visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
3073 2006-03-21 Jakub Jelinek <jakub@redhat.com>
3076 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
3078 2006-03-21 Jason Merrill <jason@redhat.com>
3081 * parser.c (cp_parser_declaration): Support attributes on
3082 anonymous namespaces.
3083 * name-lookup.c (push_namespace_with_attribs): Anonymous
3084 namespaces default to hidden visibility.
3086 2006-03-20 Jason Merrill <jason@redhat.com>
3088 PR c++/21764, c++/19238
3089 * decl.c (cp_finish_decl): Call determine_visibility later.
3090 (start_preparsed_function): Likewise.
3091 * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
3092 (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
3093 * name-lookup.h (struct cp_binding_level): Add has_visibility
3095 * name-lookup.c: Include c-pragma.h.
3096 (push_namespace_with_attribs): Split out from push_namespace.
3097 Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
3098 (leave_scope): Pop visibility if appropriate.
3099 * decl2.c (determine_visibility_from_class): Split out from...
3100 (determine_visibility): ...here. Handle function scope and
3102 (import_export_decl): Move visibility handling to
3103 determine_visibility_from_class.
3104 * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
3105 attributes on namespace declarations.
3107 2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3110 * decl.c (grokdeclarator): Do not accept long long double.
3111 Reorganize checks for invalid (combinations of) type modifiers.
3112 Quote modifiers in messages.
3114 2006-03-09 Jason Merrill <jason@redhat.com>
3116 PR c++/16387, c++/16389
3117 * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
3118 (cxx_sizeof_or_alignof_expr): Split out from here.
3120 2006-03-09 Diego Novillo <dnovillo@redhat.com>
3122 Merge from gomp-20050608-branch
3124 2006-02-02 Diego Novillo <dnovillo@redhat.com>
3126 * decl.c (pop_labels_1): Use appropriate pointer casting.
3127 (poplevel_named_label_1): Likewise.
3128 (named_label_entry_hash): Likewise.
3129 (named_label_entry_eq): Likewise.
3130 (check_goto): Likewise.
3131 (define_label): Likewise.
3133 2006-01-26 Diego Novillo <dnovillo@redhat.com>
3135 * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
3137 * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
3138 instead of TREE_CODE/TREE_OPERAND.
3139 * semantics.c: Likewise.
3140 * parser.c: Likewise.
3142 2005-11-10 Diego Novillo <dnovillo@redhat.com>
3144 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
3145 target does not support TLS.
3147 2005-11-09 Jakub Jelinek <jakub@redhat.com>
3149 * decl.c (redeclaration_error_message): Don't error about
3150 DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
3153 2005-11-08 Jakub Jelinek <jakub@redhat.com>
3156 * semantics.c (finish_omp_barrier, finish_omp_flush): New
3158 * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
3159 (cp_parser_omp_flush): Call finish_omp_flush.
3160 * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
3164 * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
3166 2005-11-03 Jakub Jelinek <jakub@redhat.com>
3168 * semantics.c (finish_omp_threadprivate): Error on class-scope
3171 2005-11-02 Jakub Jelinek <jakub@redhat.com>
3173 * parser.c (cp_parser_omp_all_clauses): If some clause
3174 type is not allowed, don't remove just one of the
3175 clauses, but all clauses added in that loop round.
3177 * semantics.c (finish_omp_clauses): Fix function
3178 comment. Don't handle non-const or mutable specially,
3179 as const and not mutable is predetermined shared and
3180 that leads to double error. Don't ICE if copyin var is
3184 * parser.c (cp_parser_pragma): Diagnose
3185 PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
3188 * semantics.c (finish_omp_threadprivate): Error if V
3189 is automatic variable or has incomplete type.
3191 2005-11-01 Diego Novillo <dnovillo@redhat.com>
3193 * parser.c (cp_parser_omp_all_clauses): Use
3194 OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
3196 2005-11-01 Diego Novillo <dnovillo@redhat.com>
3198 * parser.c (cp_parser_omp_all_clauses): When emitting an
3199 error message, remove the invalid clause from the list.
3201 2005-10-31 Diego Novillo <dnovillo@redhat.com>
3203 * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
3204 combined parallel+workshare directives.
3206 2005-10-31 Richard Henderson <rth@redhat.com>
3208 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
3209 Use cxx_omp_clause_dtor.
3210 * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
3211 (cxx_omp_clause_dtor): New.
3212 * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
3213 (cxx_omp_clause_default_ctor): Use it.
3214 (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
3216 (cxx_omp_clause_dtor): New.
3217 * semantics.c (finish_omp_clauses): Rewrite cdtor
3218 checking to fill in CP_OMP_CLAUSE_INFO. Don't
3219 specialcase LASTPRIVATE for removal.
3220 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
3221 cxx_omp_clause_assign_op): Move to cp-gimplify.c.
3223 2005-10-28 Jakub Jelinek <jakub@redhat.com>
3225 * semantics.c (finish_omp_threadprivate): If
3226 DECL_RTL_SET_P, call make_decl_rtl again so that
3227 encode_section_info can update SYMBOL_REF's flags.
3229 2005-10-26 Jakub Jelinek <jakub@redhat.com>
3231 * semantics.c (finish_omp_for): Don't segfault if COND
3232 or INCR is NULL. If not calling c_finish_omp_for
3233 right away and one of COND and INCR is NULL, issue
3234 error and don't expand anything.
3237 * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
3238 * semantics.c (finish_omp_for): Likewise. Set
3239 OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
3240 into the current statement list if not processing
3241 template decl or pass it to c_finish_omp_for.
3243 * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
3244 into PRE_BODY statement list. Pass it to finish_omp_for.
3245 * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
3246 OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
3247 finish_omp_for. Put all the statements into sk_omp
3250 2005-10-25 Jakub Jelinek <jakub@redhat.com>
3253 * parser.c (struct cp_parser): Rename in_iteration_statement
3254 field to in_statement.
3255 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
3256 (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
3257 (cp_parser_new, cp_parser_begin_omp_structured_block,
3258 cp_parser_end_omp_structured_block,
3259 cp_parser_omp_for_loop): Adjust for
3260 in_iteration_statement renaming.
3261 (cp_parser_selection_statement): Save
3262 parser->in_iteration, or it temporarily with
3263 IN_SWITCH_STMT for the
3264 cp_parser_implicitly_scoped_statement call.
3265 (cp_parser_iteration_statement): Adjust for
3266 in_iteration_statement renaming. Use
3267 IN_ITERATION_STMT rather than true.
3268 (cp_parser_jump_statement): Adjust for
3269 in_iteration_statement renaming and new values. Don't
3270 error on break in a switch statement within OMP_FOR or
3271 OpenMP structured block.
3274 * parser.c (cp_parser_cache_group): Don't stop if next
3275 token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
3276 well. If current token is CPP_PRAGMA, consume
3277 everything until CPP_PRAGMA_EOL inclusive.
3279 2005-10-24 Jakub Jelinek <jakub@redhat.com>
3282 * semantics.c (finish_omp_for): Handle MODOP_EXPR in
3283 addition to MODIFY_EXPR.
3285 2005-10-23 Richard Henderson <rth@redhat.com>
3287 * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
3289 (begin_bc_block, finish_bc_block): Use it.
3290 (push_context, pop_context): Remove.
3291 (cp_genericize): Don't use them. Assert bc_label is null.
3292 * semantics.c (finish_omp_clauses): Create a fake data
3293 element of TYPE for probing ctors.
3295 2005-10-23 Richard Henderson <rth@redhat.com>
3297 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
3298 (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
3299 (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
3300 (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
3301 * semantics.c (finish_omp_clauses): Look through
3302 arrays when looking up special member calls. Also
3303 remove FIRSTPRIVATE when LASTPRIVATE fails.
3304 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
3305 (cxx_omp_clause_assign_op): New.
3306 * cp-tree.h: Declare them.
3308 2005-10-21 Richard Henderson <rth@redhat.com>
3310 * decl.c (check_previous_goto_1): Return false if error.
3311 (check_switch_goto): Likewise.
3312 (finish_case_label): Don't emit the case label on error.
3313 * parser.c (struct cp_parser): Revert
3314 in_switch_statement_p changes.
3315 (cp_parser_labeled_statement,
3316 cp_parser_selection_statement): Likewise.
3317 (cp_parser_begin_omp_structured_block): Don't save...
3318 (cp_parser_end_omp_structured_block): or restore
3319 in_switch_statement_p.
3321 2005-10-21 Richard Henderson <rth@redhat.com>
3323 * semantics.c (finish_omp_threadprivate): Set
3324 decl_flags.u2sel when necessary.
3326 2005-10-21 Richard Henderson <rth@redhat.com>
3328 * decl.c (poplevel_named_label_1): Restore creation of the
3330 (decl_jump_unsafe): Check for error_mark_node types.
3331 (check_goto): Don't check cdtor_label. Don't use identify_goto.
3332 * semantics.c (finish_return_stmt): Do check_omp_return before
3333 converting to cdtor_label goto.
3335 2005-10-21 Richard Henderson <rth@redhat.com>
3338 * decl.c (check_omp_return): Return false on error.
3339 * cp-tree.h (check_omp_return): Update decl.
3340 * semantics.c (finish_return_stmt): Avoid adding
3343 2005-10-21 Richard Henderson <rth@redhat.com>
3345 * cp-tree.h (struct language_function): Remove
3347 Change x_named_labels to a hashtable.
3348 (check_omp_return): Declare.
3349 * decl.c (struct named_label_use_entry): Rename from
3350 named_label_use_list. Remove label_decl.
3351 (struct named_label_entry): Rename from
3352 named_label_list. Remove old_value and next. Change
3353 in_try_scope and in_catch_scope to bool. Add
3355 (pop_labels_1): New.
3356 (pop_labels): Use it.
3357 (pop_local_label, poplevel_named_label_1): New.
3358 (poplevel): Use them.
3359 (named_label_entry_hash, named_label_entry_eq): New.
3360 (make_label_decl): Create named_labels. Move label
3361 creation bits from lookup_label.
3362 (declare_local_label): Tidy.
3363 (identify_goto): Split out from ...
3364 (check_previous_goto_1): Add exited_omp argument.
3367 (use_label): Merge into...
3368 (check_goto): ... here. Handle omp scopes.
3369 (check_omp_return): New.
3370 (check_previous_gotos): Merge into...
3371 (define_label): ... here.
3372 (save_function_data): Remove x_named_label_uses reference.
3373 (finish_function): Likewise.
3374 * name-lookup.h (sk_omp): New.
3375 * name-lookup.c (begin_scope): Handle it.
3376 * parser.c (cp_parser_omp_for): Don't create extra
3379 (cp_parser_omp_sections): Likewise.
3380 * semantics.c (finish_return_stmt): Call check_omp_return.
3381 (begin_omp_structured_block): Use sk_omp.
3382 (finish_omp_structured_block): Use do_poplevel. Don't build a
3383 MUST_NOT_THROW expression here.
3384 (begin_omp_parallel, finish_omp_parallel): Don't create extra
3385 compound statements.
3387 2005-10-21 Diego Novillo <dnovillo@redhat.com>
3390 * cp/cp-tree.h (struct lang_decl_flags): Add field
3392 (CP_DECL_IS_THREADPRIVATE): Define.
3393 * cp/semantics.c (finish_omp_threadprivate): Set. Do
3394 not error out if CP_DECL_IS_THREADPRIVATE is set
3396 * cp/decl.c (duplicate_decls): Merge
3397 CP_DECL_THREADPRIVATE_P.
3399 2005-10-20 Richard Henderson <rth@redhat.com>
3401 * cp-gimplify.c (cp_gimplify_omp_for): New.
3402 (cp_gimplify_expr): Call it.
3403 * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
3404 * parser.c (struct cp_parser): Rename
3405 in_iteration_statement_p to in_iteration_statement and
3406 change to unsigned char. Similarly with
3407 in_switch_statement. Update all users.
3408 (IN_OMP_BLOCK, IN_OMP_FOR): New.
3409 (cp_parser_labeled_statement): Diagnose case labels
3410 binding closer to an openmp block nested than the
3412 (cp_parser_jump_statement): Diagnose break and
3413 continue labels binding closer to an openmp block than
3414 an iteration or switch.
3415 (cp_parser_omp_for_loop): Mark in_iteration_statement
3417 (cp_parser_begin_omp_structured_block): New.
3418 (cp_parser_end_omp_structured_block): New.
3419 (cp_parser_omp_structured_block): Use them.
3420 (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
3421 (cp_parser_omp_parallel): Likewise.
3423 2005-10-20 Richard Henderson <rth@redhat.com>
3425 * semantics.c (begin_omp_structured_block): New.
3426 (finish_omp_structured_block): New.
3427 (begin_omp_parallel, finish_omp_parallel): Use them.
3428 * parser.c (cp_parser_omp_structured_block): Likewise.
3429 (cp_parser_omp_for): Likewise.
3430 (cp_parser_omp_sections_scope): Likewise.
3431 * cp-tree.h: Declare them.
3433 2005-10-20 Richard Henderson <rth@redhat.com>
3435 * parser.c (cp_parser_omp_master): Return the statement.
3436 (cp_parser_omp_ordered): Likewise.
3437 (cp_parser_omp_construct): Set the locus for them.
3439 2005-10-19 Richard Henderson <rth@redhat.com>
3441 * semantics.c (finish_omp_atomic): Revert to
3442 uses_template_parms.
3444 2005-10-19 Richard Henderson <rth@redhat.com>
3446 * semantics.c (finish_omp_clauses): Avoid
3447 DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
3448 stub asserts guaranteed to fail.
3450 2005-10-19 Richard Henderson <rth@redhat.com>
3452 * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
3453 (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
3454 * parser.c (cp_parser_omp_clause_copyin): Remove.
3455 (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
3456 Call finish_omp_clauses.
3457 (cp_parser_omp_clause_if): Don't do error checking here.
3458 (cp_parser_omp_clause_num_threads): Likewise.
3459 (cp_parser_omp_clause_schedule): Likewise.
3460 (cp_parser_omp_atomic): Use finish_omp_atomic.
3461 (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
3462 Don't decompose assignment statment here. Use
3465 * pt.c (tsubst_omp_clauses): New.
3466 (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
3467 OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
3468 * semantics.c (finish_omp_clauses): New.
3469 (begin_omp_parallel, finish_omp_parallel): Know Less about the
3470 internals of the stmt_list stack.
3471 (finish_omp_for, finish_omp_atomic): New.
3473 2005-10-18 Jakub Jelinek <jakub@redhat.com>
3475 * semantics.c (cxx_omp_predetermined_sharing): New function.
3476 * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
3478 (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
3480 2005-10-18 Richard Henderson <rth@redhat.com>
3482 * parser.c (cp_parser_omp_single): Use make_node and accessors
3485 2005-10-17 Richard Henderson <rth@redhat.com>
3487 * parser.c (cp_parser_omp_for_loop): Handle declarations.
3489 2005-10-12 Richard Henderson <rth@redhat.com>
3491 * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
3492 * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
3493 (finish_omp_threadprivate): Declare.
3494 * parser.c (struct cp_lexer): Add in_pragma.
3495 (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
3497 (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
3498 (cp_parser_skip_to_end_of_statement): Likewise.
3499 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
3500 (cp_parser_skip_to_closing_brace): Likewise.
3501 (cp_parser_skip_to_pragma_eol): Reset in_pragma.
3502 (cp_parser_require_pragma_eol): New.
3503 (cp_parser_statement): Add in_compound argument;
3505 Restart if a non-statement pragma seen outside a
3507 (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
3508 (cp_parser_declaration_seq_opt): Likewise.
3509 (cp_parser_member_specification_opt): Likewise.
3510 (cp_parser_function_definition_after_decl): Likewise.
3511 (cp_parser_skip_until_found): Likewise.
3512 (cp_parser_cache_group): Likewise.
3513 (enum pragma_omp_clause, cp_parser_omp_clause_name,
3514 check_no_duplicate_clause,
3515 cp_parser_omp_var_list_no_open,
3516 cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
3517 cp_parser_omp_clause_default, cp_parser_omp_clause_if,
3518 cp_parser_omp_clause_nowait,
3519 cp_parser_omp_clause_num_threads,
3520 cp_parser_omp_clause_ordered,
3521 cp_parser_omp_clause_reduction,
3522 cp_parser_omp_clause_schedule,
3523 cp_parser_omp_all_clauses,
3524 cp_parser_omp_structured_block, cp_parser_omp_atomic,
3525 cp_parser_omp_barrier, cp_parser_omp_critical,
3526 cp_parser_omp_flush, cp_parser_omp_for_loop,
3527 cp_parser_omp_for, cp_parser_omp_master,
3528 cp_parser_omp_ordered, cp_parser_omp_sections_scope,
3529 cp_parser_omp_sections, cp_parser_omp_parallel,
3530 cp_parser_omp_single, cp_parser_omp_threadprivate,
3531 cp_parser_omp_construct): New.
3532 (cp_parser_pragma): Handle OpenMP pragmas.
3533 * semantics.c (finish_omp_threadprivate): New.
3534 (begin_omp_parallel, finish_omp_parallel): New.
3536 2005-10-11 Richard Henderson <rth@redhat.com>
3538 * parser.c (struct cp_token): Add pragma_kind.
3539 (eof_token): Initialize it.
3540 (cp_lexer_handle_pragma): Remove.
3541 (cp_parser_initial_pragma): New.
3542 (cp_lexer_new_main): Use it.
3543 (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
3544 (cp_lexer_print_token): Don't handle CPP_PRAGMA.
3545 (cp_parser_skip_to_pragma_eol): New.
3546 (cp_parser_error): Use it.
3549 2005-10-09 Richard Henderson <rth@redhat.com>
3551 * lex.c (parse_strconst_pragma): Update for c_lex name change.
3552 (handle_pragma_java_exceptions): Likewise.
3553 * parser.c (cp_lexer_new_main): Likewise.
3555 2005-10-06 Richard Henderson <rth@redhat.com>
3557 * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
3558 (cp_lexer_handle_pragma): Comment out
3559 cpp_handle_deferred_pragma.
3561 2005-10-01 Richard Henderson <rth@redhat.com>
3563 * name-lookup.c (lookup_name): Remove prefer_type argument.
3564 (lookup_name_prefer_type): New function.
3565 * name-lookup.h (lookup_name_prefer_type): Declare it.
3566 * decl.c (lookup_and_check_tag): Use it.
3567 * pt.c (tsubst_friend_class): Likewise. Update for
3569 (lookup_template_class, tsubst_copy_and_build): Likewise.
3571 2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3574 * tree.c (bot_manip): Don't call mark_used.
3576 2006-03-02 Mike Stump <mrs@apple.com>
3578 * decl2.c (import_export_decl): Remove redundant call to
3579 targetm.cxx.key_method_may_be_inline ().
3581 2006-03-02 Richard Sandiford <richard@codesourcery.com>
3583 * decl.c (start_decl): Use have_global_bss_p when deciding
3584 whether to make the decl common.
3586 2006-03-01 Mike Stump <mrs@apple.com>
3589 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
3591 2006-02-24 Geoffrey Keating <geoffk@apple.com>
3593 * except.c (expand_start_catch_block): Handle
3594 flag_use_cxa_get_exception_ptr.
3596 2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3599 * decl.c (grok_op_properties): Check for ellipsis in arguments of
3602 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3604 * Make-lang.in (C++): Remove.
3605 (.PHONY): Remove C++.
3607 2006-02-18 Mark Mitchell <mark@codesourcery.com>
3610 * cp-tree.h (cp_finish_decl): Adjust declaration.
3611 (grokbitfield): Likewise.
3612 (finish_static_data_member_decl): Likewise.
3613 * init.c (constant_value_1): Ensure processing_template_decl when
3614 folding non-dependent initializers for static data members of
3615 dependent types. Return error_mark_node for erroneous
3617 * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
3618 * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
3619 (cp_finish_decl): Add init_const_expr_p parameter. Set
3620 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
3621 (finish_decl): Adjust call to cp_finish_decl.
3622 (compute_array_index_type): Robustify.
3623 (start_method): Use finish_decl, not cp_finish_decl.
3624 * rtti.c (emit_tinfo_decl): Likewise.
3625 * except.c (initialize_handler_parm): Adjust call to
3627 (expand_start_catch_block): Likewise.
3628 * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
3629 * pt.c (instantiate_class_template): Adjust call to
3630 finish_static_data_member_decl.
3631 (tsubst_expr): Use finish_decl, not cp_finish_decl.
3632 (instantiate_decl): Adjust call to cp_finish_decl.
3633 * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
3635 * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
3637 (grokfield): Likewise.
3638 * parser.c (cp_parser_condition): Check for constant initializers.
3639 (cp_parser_init_declarator): Adjust calls to grokfield and
3640 cp_finish_decl. Don't set
3641 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
3642 (cp_parser_member_declaration): Likewise.
3643 (cp_parser_objc_class_ivars): Likewise.
3645 2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3647 * call.c (standard_conversion): Return NULL instead of 0.
3648 (build_user_type_conversion_1): Likewise.
3649 (tourney): Likewise.
3650 * decl.c (redeclaration_error_message): Likewise.
3651 * error.c (language_to_string): Likewise.
3653 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3655 * cp-tree.h (warn_hidden): Remove prototype.
3656 * class.c (warn_hidden): Make static.
3658 * cp-tree.h (build_type_conversion): Remove prototype.
3659 * cvt.c (build_type_conversion): Add prototype, make static.
3661 * cp-tree.h (push_tinst_level): Remove prototype.
3662 (pop_tinst_level): Likewise.
3663 * pt.c (push_tinst_level): Add prototype, make static.
3664 (pop_tinst_level): Likewise.
3666 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3668 * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
3669 * typeck.c (unary_complex_lvalue): Likewise.
3671 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3673 * lex.c (parse_strconst_pragma): Return error_mark_node instead of
3674 "(tree)-1" to indicate failure. Simplify.
3675 (handle_pragma_interface): Test for error_mark_node instead of
3677 (handle_pragma_implementation): Likewise.
3679 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3682 * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
3683 decl-specifiers. Remove extra check for duplicate 'friend'.
3684 * decl.c (grokdeclarator): Remove check for duplicate
3685 decl-specifiers. Set longlong together with long_p.
3687 2006-02-12 Jason Merrill <jason@redhat.com>
3690 * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
3691 TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
3693 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3695 * class.c (debug_class): Remove extern.
3696 (debug_thunks): Likewise.
3698 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
3700 * typeck.c (string_conv_p): Don't test for flag_const_strings.
3702 2006-02-08 Jason Merrill <jason@redhat.com>
3705 * cp-gimplify.c (cp_gimplify_expr): Don't call
3706 cp_gimplify_init_expr for MODIFY_EXPRs.
3707 * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
3709 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3712 * decl.c (grokdeclarator): Set dname also for destructor.
3715 * decl.c (grokdeclarator): Clear storage_class together with staticp.
3717 2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
3719 * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
3720 (cp_build_qualified_type): Propogate renaming.
3721 * call.c (convert_like_real): Likewise.
3722 * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
3723 * decl.c (make_typename_type, grokdeclarator): Likewise.
3724 * pt.c (tsubst_friend_function, instantiate_class_template,
3725 tsubst_default_argument, instantiate_decl,
3726 tsubst_initializer_list, tsubst_enum): Likewise.
3727 * semantics.c (finish_template_type): Likewise.
3728 * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
3730 2006-02-07 Dirk Mueller <dmueller@suse.com>
3732 * typeck.c (build_binary_op): Annotate div-by-zero
3733 warnings to make -Wno-div-by-zero have an effect.
3735 2006-02-07 Mark Mitchell <mark@codesourcery.com>
3738 * pt.c (coerce_template_template_parms): Do not templates with
3739 excess default arguments to match template template parameters
3740 with fewer parameters.
3741 (coerce_template_parms): Add use_default_args parameter; use
3742 default arguments only when true.
3743 (lookup_template_class): Adjust call to coerce_template_parms.
3744 (fn_type_unification): Likewise.
3746 (get_bindings): Likewise.
3747 (dependent_type_p): Add assertions.
3749 2006-02-06 Roger Sayle <roger@eyesopen.com>
3751 * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
3752 * rtti.c (typeinfo_in_lib_p): Likewise.
3753 * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
3754 * name-lookup.c (arg_assoc_type): Likewise.
3756 2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3758 * cp-tree.h (tf_warn_or_error): New substituion flag.
3759 (cp_build_qualified_type): Use it.
3760 * call.c (convert_like_real): Likewise.
3761 * cvt.c (cp_convert_to_pointer): Likewise.
3762 (convert_to_reference): Likewise.
3763 * decl.c (make_typename_type): Likewise.
3764 (grokdeclarator): Likewise.
3765 * pt.c (tsubst_friend_function): Likewise.
3766 (tsubst_friend_class): Likewise.
3767 (instantiate_class_template): Likewise.
3768 (tsubst_default_argument): Likewise.
3769 (instantiate_decl): Likewise.
3770 (tsubst_initializer_list): Likewise.
3771 (tsubst_enum): Likewise.
3772 * semantics.c (finish_template_type): Likewise.
3773 * typeck.c (build_ptrmemfunc): Likewise.
3774 (convert_for_assignment): Likewise.
3776 2006-02-03 Lee Millward <lee.millward@gmail.com>
3778 * typeck.c (string_conv_p): Pass appropiate
3779 OPT_Wxxxx values when calling warning().
3780 (build_array_ref, cxx_mark_addressable): Likewise.
3781 (check_return_expr): Likewise.
3783 * init.c (perform_member_init): Likewise.
3784 (sort_mem_initializers, emit_mem_initializers): Likewise.
3786 * class.c (check_field_decls): Likewise.
3787 (warn_about_ambiguous_bases): Likewise.
3789 * decl.c (pop_label, poplevel): Likewise.
3790 (duplicate_decls, grok_op_properties): Likewise.
3791 (start_preparsed_function, finish_function): Likewise.
3793 * name-lookup.c (pushdecl_maybe_friend): Likewise.
3794 (pushdecl_maybe_friend): Likewise.
3796 * parser.c (cp_parser_warn_min_max): Likewise.
3797 (cp_parser_cast_expression): Likewise.
3799 * method.c (lazily_declare_fn): Likewise.
3800 * cvt.c (convert_to_void): Likewise.
3801 * mangle.c (finish_mangling): Likewise.
3802 * cp-gimplify.c (gimplify_expr_stmt): Likewise.
3804 2006-02-03 Mark Mitchell <mark@codesourcery.com>
3806 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
3807 not IDENTIFIER_OPNAME_P.
3809 2006-01-31 Mark Mitchell <mark@codesourcery.com>
3812 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
3814 * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
3816 (instantiate_class_template): Simplify.
3817 (verify_class_unification): Remove.
3818 (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
3819 permit multiple levels of template arguments.
3820 (more_specialized_class): Simplify.
3821 (get_class_bindings): Pass full arguments to unify. Fold
3822 verify_class_unification into this function. Return full
3824 (most_specialized_class): Adjust for changes to
3825 get_class_bindings. Issue errors here for ambiguity. Return the
3826 fully deduced arguments for the most specialized class, in
3827 addition to the partial specialization.
3829 2006-01-31 Ben Elliston <bje@au.ibm.com>
3831 * mangle.c: Comment fix.
3833 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3835 * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
3836 * repo.c (extract_string, afgets): Use cast when converting from
3839 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3841 * call.c (alloc_conversion): Use cast when converting from void *.
3842 (alloc_conversions): Likewise.
3843 (add_candidate): Likewise.
3844 (print_z_candidates): Likewise.
3845 (add_warning): Likewise.
3846 * pt.c (retrieve_local_specialization): Likewise.
3847 (process_partial_specialization): Likewise.
3848 (mangle_class_name_for_template): Likewise.
3849 (tsubst_template_args): Likewise.
3850 * typeck2.c (pat_calc_hash): Likewise.
3851 (pat_compare): Likewise.
3852 (abstract_virtuals_error): Likewise.
3853 * class.c (method_name_cmp): Likewise.
3854 (resort_method_name_cmp): Likewise.
3855 (get_vfield_name): Likewise.
3856 * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
3857 * lex.c (init_reswords): Likewise.
3858 * rtti.c (create_pseudo_type_info): Likewise.
3859 * search.c (dfs_lookup_base): Likewise.
3860 (dfs_dcast_hint_pre): Likewise.
3861 (dfs_dcast_hint_post): Likewise.
3862 * tree.c (hash_tree_cons): Likewise.
3863 * repo.c (extract_string): Likewise.
3865 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
3866 * g++spec.c (lang_specific_driver): Likewise.
3868 2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3870 * call.c (joust): Pass option code to warning. Use inform for
3872 * class.c (check_bases): Likewise.
3873 (maybe_warn_about_overly_private_class): Likewise.
3874 (check_field_decls): Likewise.
3875 (layout_empty_base): Likewise.
3876 (layout_virtual_bases): Likewise.
3877 (layout_class_type): Likewise.
3879 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3882 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
3884 (start_function): ... here.
3886 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3889 * class.c (resolve_address_of_overloaded_function): Adjust use of
3890 return value from most_specialized_instantiation.
3891 * pt.c (determine_specialization): Avoid multiple calls to
3893 (most_specialized_instantiation): When a tie occurs, set the
3894 current presumed champion to the next template. Return the
3895 TREE_LIST node containing the template, rather than the template
3897 (most_specialized): Remove.
3898 * name-lookup.c (push_overloaded_decl): When duplicate_decls
3899 indicates a failed redeclaration, report that to callers.
3901 2006-01-26 Jason Merrill <jason@redhat.com>
3904 * name-lookup.c (parse_using_directive): Require strong using to
3905 name a nested namespace.
3907 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3910 * cp-tree.h (do_poplevel): Remove prototype.
3911 * semantics.c (do_poplevel): Add prototype. Make static.
3914 * cp-tree.h (default_conversion): Remove prototype.
3915 * typeck.c (default_conversion): Make static.
3917 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3919 * cp-tree.h (get_primary_binfo): Remove prototype.
3920 (push_using_decl): Likewise.
3921 (current_template_args): Likewise.
3922 (more_specialized_class): Likewise.
3923 (mark_class_instantiated): Likewise.
3924 (default_conversion): Likewise.
3925 (pfn_from_ptrmemfunc): Likewise.
3926 * class.c (get_primary_binfo): Add prototype, make static, simplify.
3927 * name-lookup.c (push_using_decl): Make static.
3928 * pt.c (current_template_args): Likewise.
3929 (more_specialized_class): Likewise.
3930 (mark_class_instantiated): Likewise.
3931 * typeck.c (default_conversion): Make static.
3932 (pfn_from_ptrmemfunc): Add prototype, make static.
3934 2006-01-24 Dirk Mueller <dmueller@suse.de>
3936 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3938 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3941 * parser.c (cp_parser_unqualified_id): Check that destructor name
3943 * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
3944 Adjust comment. Return early if possible.
3945 Use same_type_p to compare types.
3946 * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
3948 2006-01-24 Mark Mitchell <mark@codesourcery.com>
3950 * semantics.c: Remove outdated comment.
3952 2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3954 * cp-tree.h (do_poplevel): Remove prototype.
3955 * semantics.c (do_poplevel): Add prototype. Make static.
3957 * cp-tree.h (original_type): Remove prototype.
3958 * typeck.c (original_type): Make static.
3960 * cp-tree.h (declare_global_var): Remove prototype.
3961 * decl.c (declare_global_var): Make static.
3963 * cp-tree.h (implicitly_declare_fn): Remove prototype.
3964 * method.c (implicitly_declare_fn): Make static.
3966 * cp-tree.h (fold_decl_constant_value): Remove prototype.
3967 * pt.c (fold_decl_constant_value): Make static.
3969 * cp-tree.h (build_x_delete): Remove prototype.
3970 * init.c (build_vec_delete_1): Call build_op_delete_call directly
3971 and not via build_x_delete.
3972 (build_x_delete): Remove.
3974 * cp-tree.h (get_vtt_name): Remove prototype.
3975 * class.c (get_vtt_name): Remove.
3976 (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
3978 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3980 * rtti.c (build_dynamic_cast): Fix comment.
3982 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3985 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
3988 2006-01-21 Mark Mitchell <mark@codesourcery.com>
3991 * class.c (build_base_path): Generate a NOP_EXPR instead of a
3992 COMPONENT_REF if the base and derived classes are at the same
3996 * decl.c (begin_destructor_body): Robustify.
3999 * parser.c (cp_parser_direct_declarator): Robustify.
4001 2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4003 * parser.c (cp_lexer_next_token_is_keyword): Simplify.
4005 * parser.c (clear_decl_specs): Remove prototype.
4007 * parser.c (cp_parser_expression_fn): Remove.
4009 * call.c (add_builtin_candidates): Remove superfluous return.
4010 * name-lookup.c (do_toplevel_using_decl): Likewise.
4011 * parser.c (cp_parser_type_specifier_seq): Likewise.
4012 (cp_parser_save_default_args): Likewise.
4014 2006-01-20 Dirk Mueller <dmueller@suse.com>
4017 * semantics.c (finish_if_stmt): Call empty_body_warning.
4018 * parser.c (cp_parser_implicitly_scoped_statement):
4019 Mark empty statement with an empty stmt.
4021 2006-01-19 Mark Mitchell <mark@codesourcery.com>
4024 * name-lookup.c (do_class_using_decl): Don't try to look up base
4025 classes in templates with dependent base types.
4027 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4030 * pt.c (maybe_process_partial_specialization): Return early on
4033 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4036 * decl.c (start_preparsed_function): Check default arguments
4038 * name-lookup.c (pushdecl_maybe_friend): Check default arguments
4039 of all functions and function templates.
4040 * parser.c (cp_parser_late_parsing_default_args): Check default
4042 * decl2.c (check_default_args): Set missing default arguments to
4045 2006-01-18 Mark Mitchell <mark@codesourcery.com>
4048 * cp-tree.h (push_class_stack): New function.
4049 (pop_class_stack): Likewise.
4050 * class.c (class_stack_node): Add hidden field.
4051 (pushclass): Clear it.
4052 (push_class_stack): New function.
4053 (pop_class_stack): Likewise.
4054 (currently_open_class): Ignore hidden classes.
4055 (currently_open_derived_class): Likewise.
4056 * name-lookup.c (push_to_top_level): Call push_class_stack.
4057 (pop_from_top_level): Call pop_class_stack.
4059 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
4061 * tree.c (find_tree_t, find_tree): Remove.
4062 * cp-tree.h: Remove the prototype for find_tree.
4064 2006-01-18 Jakub Jelinek <jakub@redhat.com>
4066 * search.c (lookup_conversions_r): Fix a pasto.
4068 2006-01-17 Eric Christopher <echristo@apple.com>
4070 * call.c (convert_like_real): When issuing conversion
4071 warnings, depend on OPT_Wconversion.
4072 * cvt.c (build_expr_type_conversion): Ditto.
4074 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
4076 * name-lookup.c (lookup_namespace_name): Remove.
4077 * name-lookup.h: Remove the prototype for
4078 lookup_namespace_name.
4080 2006-01-17 Jakub Jelinek <jakub@redhat.com>
4083 * decl.c (compute_array_index_type): After issuing not an integral
4084 constant-expression error, set size to 1 to avoid ICEs later on.
4086 2006-01-16 Ian Lance Taylor <ian@airs.com>
4088 * parser.c: Include "cgraph.h".
4089 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
4092 2006-01-16 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4094 * g++spec.c (lang_specific_spec_functions): Remove.
4096 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
4098 * decl.c (check_initializer): Fix thinko.
4100 2006-01-14 Mark Mitchell <mark@codesourcery.com>
4103 * parser.c (cp_parser_direct_declarator): Use cp_parser_error
4106 2006-01-13 Jason Merrill <jason@redhat.com>
4108 * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
4110 * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
4111 * pt.c (check_explicit_specialization): Likewise.
4113 2006-01-12 Jason Merrill <jason@redhat.com>
4116 * pt.c (check_explicit_specialization): Handle namespace
4118 * name-lookup.c (set_decl_namespace): Likewise.
4120 2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
4123 * class.c (handle_using_decl): Pass correct scope to
4124 cp_emit_debug_info_for_using.
4126 2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
4129 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
4132 2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
4134 * parser.c (cp_parser_primary_expression): Document the grammar
4135 for the built-in offsetof, a GNU extension.
4137 2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
4140 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
4143 2006-01-04 Chris Lattner <sabre@gnu.org>
4145 * typeck2.c: update copyright to 2006
4146 (split_nonconstant_init_1): Set TREE_CONSTANT to true.
4148 2006-01-04 Mark Mitchell <mark@codesourcery.com>
4151 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
4152 checks, even when parsing tentatively.
4154 2006-01-04 Richard Henderson <rth@redhat.com>
4156 Merge from gomp branch.
4157 * lex.c (handle_pragma_java_exceptions): Fix whitespace.
4158 * parser.c (struct cp_token): Add pragma_kind.
4159 (eof_token): Update to match.
4160 (struct cp_lexer): Add in_pragma; rearrange next for better packing.
4161 (cp_parser_initial_pragma): New.
4162 (cp_lexer_new_main): Use it. Don't bother clearing
4163 c_lex_return_raw_strings.
4164 (cp_lexer_get_preprocessor_token): Always initialize keyword
4165 and pragma_kind fields. Handle CPP_PRAGMA.
4166 (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
4168 (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
4169 (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
4170 (cp_parser_skip_to_pragma_eol): New.
4171 (cp_parser_error): Use it.
4172 (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
4173 rearrange with switch statement.
4174 (cp_parser_skip_to_end_of_statement): Likewise.
4175 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
4176 (cp_parser_skip_to_closing_brace): Likewise.
4177 (cp_parser_skip_until_found): Likewise.
4178 (cp_parser_statement): Add in_compound argument; update callers.
4179 Use it to decide how to handle pragma parsing.
4180 (cp_parser_labeled_statement): Add in_compound argument; pass
4181 it on to cp_parser_statement.
4182 (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
4183 (cp_parser_declaration_seq_opt): Likewise.
4184 (cp_parser_parameter_declaration): Likewise.
4185 (cp_parser_member_specification_opt): Likewise.
4186 (cp_parser_function_definition_after_decl): Likewise.
4187 (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
4188 (cp_parser_pragma): New.
4191 2006-01-04 Dirk Mueller <dmueller@suse.com>
4193 * decl.c (finish_constructor_body): create simple
4194 compound stmt instead of a if(1) { } construct.
4196 2006-01-03 Mark Mitchell <mark@codesourcery.com>
4199 * name-lookup.c (push_class_level_binding): When a derived class
4200 provides a type binding, eliminate any type binding from a base
4204 * repo.c (repo_emit_p): Always instantiate static data members
4205 initialized by constant expressions, so that there values are
4208 2006-01-02 Mark Mitchell <mark@codesourcery.com>
4211 * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
4212 conversion operator.
4213 * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
4216 * class.c (add_method): Never associate more than one destructor
4217 with a single class.
4220 * cp-tree.h (do_friend): Adjust prototype.
4221 * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
4222 (grokdeclarator): Likewise. Refine check for invalid
4223 declarations/definitions of member functions outside of their own
4225 * friend.c (do_friend): Make funcdef_flag a bool, not an int.
4228 * parser.c (cp_parser_mem_initializer_list): Check result of
4229 cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
4230 (cp_parser_mem_initializer): Return error_mark_node for failure.
4233 * parser.c (cp_parser_template_parameter_list): Call
4234 begin_template_parm_list and end_template_parm_list here.
4235 (cp_parser_type_parameter): Not here.
4236 (cp_parser_template_declaration_after_export): Or here.
4237 (cp_parser_elaborated_type_specifier): Call
4238 cp_parser_check_template_parameters.
4240 * tree.c (build_target_expr_with_type): Use force_target_expr.
4242 * decl2.c (mark_used): Fix typo in comment.
4244 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4246 * parser.c (cp_parser_using_declaration): Skip name-lookup on
4249 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
4251 * cxx-pretty-print.c (pp_cxx_constant): New. Print
4252 string-literal in parens if input program says so.
4253 (pp_cxx_primary_expression): Hand off constant printing to
4255 (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
4256 (pp_cxx_expression): Use pp_cxx_constant for literals.
4257 * error.c (dump_expr): Use pp_constant for literals.
4259 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
4261 * method.c (make_thunk): Don't set comdat_linkage here.
4262 (use_thunk): Make thunk one only here, if thunk target is
4265 2005-12-26 Mark Mitchell <mark@codesourcery.com>
4268 * decl.c (grokdeclarator): Remove dead code.
4269 * ptree.c (cxx_print_xnode): Handle BASELINK.
4270 * parser.c (make_id_declarator): Add sfk parameter.
4271 (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
4273 (cp_parser_declarator_id): Simplify BASELINKs here.
4274 (cp_parser_member_declaration): Adjust calls to
4277 2005-12-26 Mark Mitchell <mark@codesourcery.com>
4279 PR c++/23171, c++/23172, c++/25417.
4280 * typeck.c (build_unary_op): Create temporary variables for
4281 compound literals whose addresses are taken.
4282 * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
4283 * decl.c (reshape_init_vector): Likewise.
4284 (reshape_init): Give it external linkage.
4285 (check_initializer): Use COMPOUND_LITERAL_P.
4286 (initialize_artificial_var): Allow the initializer to be a
4288 * call.c (make_temporary_var_for_ref_to_temp): Use
4289 create_temporary_var.
4290 * cp-tree.h (COMPOUND_LITERAL_P): New macro.
4291 (rehape_init): Declare.
4292 * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
4293 * semantics.c (finish_compound_literal): Use reshape_init.
4295 2005-12-23 Mark Mitchell <mark@codesourcery.com>
4298 * pt.c (instantiate_template): Handle SFINAE.
4300 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4302 * decl.c (grokdeclarator): Improve diagnostic for friend
4303 declarations of class members.
4305 2005-12-22 Mark Mitchell <mark@codesourcery.com>
4308 * tree.c (really_overloaded_fn): Tweak comment.
4309 * pt.c (tsubst_call_declarator_parms): Remove.
4310 (tsubst_copy): Call mark_used on the member referenced by an
4312 * semantics.c (finish_qualified_id_expr): Simplify.
4313 * decl2.c (mark_used): Accept BASELINKs.
4316 * typeck.c (build_unary_op): Pass DECLs not names to
4318 * init.c (build_offset_ref): Do not do name lookup. Do not call
4320 * call.c (build_call): Simplify and tidy.
4321 * semantics.c (finish_qualified_id_expr): Call mark_used.
4323 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4326 * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
4327 identify a single '0'.
4329 2005-12-20 Mark Mitchell <mark@codesourcery.com>
4332 * decl.c (use_eh_spec_block): New function.
4333 (store_parm_decls): Use it.
4334 (finish_function): Likewise.
4336 2005-12-19 Mark Mitchell <mark@codesourcery.com>
4339 * init.c (expand_member_init): Print messages about baseclasses
4340 using %T rather than %D.
4343 * class.c (add_method): Do not treat templates as identical unless
4344 their return types are the same.
4346 2005-12-12 Mark Mitchell <mark@codesourcery.com>
4349 * tree.c (build_qualified_name): Return error_mark_node for
4352 2005-12-10 Mark Mitchell <mark@codesourcery.com>
4355 * pt.c (tsubst_copy_and_build): Permit dependent types for the
4356 object in a class member access expression.
4358 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
4361 * mangle.c (write_bare_function_type): Mangle return type for
4362 methods of Java classes
4364 2005-12-08 Th�dore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4366 * call.c (build_conditional_expr): Print types in error messages.
4368 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4370 * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
4372 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4374 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
4376 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4378 * Make-lang.in (c++.all.build, c++.install-normal): Remove.
4380 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4382 * Make-lang.in: Remove all dependencies on s-gtype.
4384 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
4387 * decl.c (reshape_init_array_1): Handle max_index of -1.
4389 2005-12-06 Roger Sayle <roger@eyesopen.com>
4391 * typeck.c (build_binary_op): Issue warning if either operand of a
4392 comparison operator is a string literal, except for testing equality
4393 or inequality against NULL.
4395 2005-12-06 Roger Sayle <roger@eyesopen.com>
4398 * decl.c (compute_array_index_type): Check that itype is an
4399 INTEGER_CST node before testing/clearing TREE_OVERFLOW.
4401 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
4403 * ptree.c (cxx_print_decl): Update to check for decl_common
4406 2005-12-02 Mark Mitchell <mark@codesourcery.com>
4409 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
4412 2005-12-02 Richard Guenther <rguenther@suse.de>
4414 * semantics.c (simplify_aggr_init_expr): Use buildN instead
4417 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
4419 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
4421 (cp_parser_template_argument_list): Use XRESIZEVEC instead of
4423 * class.c (pushclass): Likewise.
4425 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
4427 * decl2.c (get_priority_info): Use XNEW, not xmalloc.
4428 * decl.c (push_switch): Likewise.
4429 * lex.c (handle_pragma_implementation): Likewise.
4430 * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
4432 (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
4433 * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
4434 * g++spec.c (lang_specific_driver): Likewise.
4435 * mangle.c (save_partially_mangled_name): Likewise.
4436 * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
4437 (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
4438 (cp_parser_sizeof_operand): Likewise.
4439 * repo.c (open_repo_file, open_repo_file): Likewise.
4441 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
4443 * parser.c (cp_parser_make_typename_type): Call make_typename_type
4444 with tf_none instead of magic value 0.
4445 (cp_parser_explicit_instantiation): Call do_type_instantiation
4446 with tf_error instead of magic value 1.
4447 (cp_parser_elaborated_type_specifier): Call make_typename_type
4448 with tf_error instead of magic value 1.
4449 (cp_parser_class_name): Likewise.
4450 (cp_parser_lookup_name): Likewise.
4452 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
4454 * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
4457 2005-11-30 Jason Merrill <jason@redhat.com>
4460 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
4463 2005-11-30 Ben Elliston <bje@au.ibm.com>
4465 * typeck.c (build_x_unary_op): Correct spelling in error message.
4467 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
4470 * class.c (check_field_decls): Only set DECL_PACKED on a field
4471 when its natural alignment is > BITS_PER_UNIT.
4473 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4476 * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
4478 2005-11-26 Richard Henderson <rth@redhat.com>
4480 * lex.c: Update for pragma_lex rename.
4481 * parser.c: Likewise.
4483 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4486 * decl.c (grokparms): Do not allow typedef-names in a '(void)'
4489 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4491 * typeck2.c (process_init_constructor_union): Remove check for
4492 unnamed union members.
4494 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4496 * name-lookup.c (lookup_name_real): Merge two if's.
4498 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4500 * pt.c (instantiate_class_template): Clean-up.
4502 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4504 * pt.c (template_class_depth_real): Remove. Move functionality to ...
4505 (template_class_depth): ... here, replacing count_specializations
4506 with 0. Adjust comment.
4508 2005-11-24 Richard Guenther <rguenther@suse.de>
4509 Dirk Mueller <dmueller@suse.de>
4512 * typeck.c (build_reinterpret_cast_1): Use
4513 strict_aliasing_warning.
4515 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4518 * pt.c (check_instantiated_args): Reword diagnostic message about
4519 template argument involving local types.
4521 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4524 * typeck.c (build_array_ref): Avoid code duplicate. Use common
4525 C/C++ diagnostic function warn_array_subscript_with_type_char.
4527 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
4530 * error.c (resolve_virtual_fun_from_obj_type_ref): New.
4531 (dump_expr): Use it in <case CALL_EXPR>.
4533 2005-11-21 Richard Henderson <rth@redhat.com>
4535 * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
4537 * name-lookup.c (lookup_name): Remove prefer_type argument.
4538 (lookup_name_prefer_type): New.
4539 * decl.c (lookup_and_check_tag): Use them.
4540 * pt.c (tsubst_friend_class): Likewise.
4541 (lookup_template_class): Likewise.
4542 (tsubst_copy_and_build): Likewise.
4543 * name-lookup.h (lookup_name_prefer_type): New.
4544 (lookup_name): Remove declaration.
4546 2005-11-18 Mark Mitchell <mark@codesourcery.com>
4549 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
4551 * name-lookup.c (set_decl_namespace):
4553 2005-11-18 Mike Stump <mrs@apple.com>
4555 * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
4556 * name-lookup.c (lookup_name_two): Remove.
4557 (lookup_name_one): Add.
4558 * name-lookup.h (lookup_name_two): Remove.
4559 (lookup_name_one): Add.
4561 2005-11-15 Jason Merrill <jason@redhat.com>
4564 * method.c (locate_copy): Also use skip_artificial_parms here.
4565 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
4567 (locate_ctor): Abort if we fail to find a default constructor.
4569 2005-11-15 Mike Stump <mrs@apple.com>
4571 * name-lookup.c (lookup_name_two): Add.
4572 * name-lookup.h: Likewise.
4574 2005-11-15 Mark Mitchell <mark@codesourcery.com>
4577 * typeck.c (check_for_casting_away_constness): Use the diag_fn.
4578 (build_const_cast_1): Call it, for C-style casts.
4580 2005-11-14 Mark Mitchell <mark@codesourcery.com>
4583 * pt.c (check_explicit_specialization): Don't check for C linkage.
4584 (push_template_decl_real): Likewise.
4585 * parser.c (cp_parser_explicit_specialization): Check here.
4586 (cp_parser_template_declaration_after_export): And here.
4588 * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
4591 2005-11-14 Jason Merrill <jason@redhat.com>
4594 * method.c (locate_ctor): Skip all artificial parms, not just
4597 2005-11-14 Mark Mitchell <mark@codesourcery.com>
4599 * parser.c (eof_token): Add initializer for ambiguous_p.
4601 2005-11-13 Mark Mitchell <mark@codesourcery.com>
4604 * decl.c (check_redeclaration_exception_specification): New
4606 (duplicate_decls): Use it.
4607 * error.c (fndecl_to_string): Print the template parameter list.
4610 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
4612 (pp_cxx_original_namespace_definition): Likewise.
4613 * name-lookup.c (ambiguous_decl): Don't issue error messages;
4614 instead return lists of ambiguous candidates.
4615 (select_decl): Handle ambiguous namespace lookups.
4616 * parser.c (cp_token): Add ambiguous_p.
4617 (cp_lexer_get_preprocessor_token): Set it.
4618 (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
4619 when a qualified name uses an invalid scope.
4620 (cp_parser_primary_expression): Print ambiguous candidates.
4621 (cp_parser_type_parameter): Adjust comment to reflect new
4622 parameter name for cp_parser_lookup_name.
4623 (cp_parser_template_argument): Likewise.
4624 (cp_parser_elaborated_type_specifier): Likewise.
4625 (cp_parser_namespace_name): Likewise.
4626 (cp_parser_class_name): Print ambiguous candidates.
4627 (cp_parser_lookup_name): Rename ambiguous_p parameter to
4628 ambiguous_decls. Use it to return a list of ambiguous candiates
4629 when a lookup is ambiguous.
4630 (cp_parser_lookup_name_simple): Adjust comment to reflect new
4631 parameter name for cp_parser_lookup_name.
4633 2005-11-12 Jakub Jelinek <jakub@redhat.com>
4636 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
4637 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
4641 * pt.c (tsubst_copy_asm_operands): New function.
4642 (tsubst_expr) <case ASM_EXPR>: Use it.
4644 2005-11-08 Jakub Jelinek <jakub@redhat.com>
4647 * decl.c (redeclaration_error_message): Issue diagnostics about
4648 olddecl and newdecl disagreement on __thread property.
4649 (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
4651 2005-11-08 Jason Merrill <jason@redhat.com>
4654 * method.c (use_thunk): Use build_cplus_new instead of
4657 2005-11-06 Jason Merrill <jason@redhat.com>
4658 James A. Morrison <phython@gcc.gnu.org>
4661 * decl2.c (cp_finish_file): Fix conditions for undefined warning.
4662 Set TREE_NO_WARNING instead of TREE_PUBLIC.
4663 * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
4664 a warning on a function we didn't instantiate because of excessive
4667 2005-11-06 Mark Mitchell <mark@codesourcery.com>
4669 * class.c (record_subobject_offsets): Don't record offsets past
4670 biggest empty class for non-empty base classes.
4671 (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
4672 keeping track of the size of emptyclasses.
4675 * class.c (sizeof_biggest_empty_class): New variable.
4676 (record_subobject_offsets): Don't record offsets past biggest
4677 empty class for data members. Replace vbases_p parameter with
4678 is_data_member parameter.
4679 (build_base_field): Adjust call.
4680 (layout_class_type): Likewise. Maintain
4681 sizeof_biggest_empty_class.
4683 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
4685 * decl2.c, init.c, typeck.c: Fix comment typos.
4687 2005-11-04 Richard Guenther <rguenther@suse.de>
4690 * init.c (build_vec_init): Build comparison of matching
4693 2005-11-03 Josh Conner <jconner@apple.com>
4696 pt.c (tsubst): Accept zero-length array if tf_error is set
4697 in complain flags. Change error message for negative-
4700 2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
4702 * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
4705 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
4708 * error.c (cp_cpp_error): New function.
4709 * cp-tree.h (cp_cpp_error): Declare.
4710 * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
4711 and error callback after lexing.
4713 2005-11-03 Mark Mitchell <mark@codesourcery.com>
4716 * pt.c (register_specialization): Update inline flags on clones.y
4718 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
4721 * decl.c (declare_local_label): Return 0 for variables
4722 with error_mark_node as their types.
4724 2005-11-02 Mark Mitchell <mark@codesourcery.com>
4727 * call.c (build_conditional_expr): Do bad conversions, if there's
4731 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
4732 message for use of overloaded functions on LHS of "." operator.
4735 * parser.c (cp_parser_postfix_expression): Use
4736 cp_parser_elaborated_type_specifier to handle typename-types in
4738 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
4739 template argument list if the closing ">" is not found.
4742 * pt.c (instantiate_decl): Use cp_finish_decl, not
4743 finish_static_data_member_decl.
4745 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4747 * decl.c (grokfndecl): Remove the setting
4748 of the return type of the function type
4749 of main after erroring about must returning
4752 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4755 * decl.c (grokfndecl): Create a new function type
4756 after erroring out about main not returning int.
4758 2005-10-28 Josh Conner <jconner@apple.com>
4761 * parser.c (cp_parser_member_declaration): Detect and handle
4762 a template specialization.
4764 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4767 * decl.c (start_decl): Check that the decl is an
4768 error_mark_node before getting the type.
4769 Remove the check for the decl's type being an
4772 2005-10-21 Mark Mitchell <mark@codesourcery.com>
4775 * parser.c (cp_parser_init_declarator): Pass attributes to
4778 2005-10-20 Mark Mitchell <mark@codesourcery.com>
4781 * search.c (accessible_p): Check access in the outermost set of
4782 template parameters.
4784 2005-10-20 Richard Guenther <rguenther@suse.de>
4786 * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
4788 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4791 * decl.c (grokdeclarator): Reject unqualified destructors in
4792 friend declarations.
4794 2005-10-18 Mark Mitchell <mark@codesourcery.com>
4797 * pt.c (convert_template_argument): Use canonical type variants in
4798 template specializations.
4800 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
4803 * name-lookup.c (arg_assoc): Template args can be null in a
4807 * class.c (update_vtable_entry_for_fn): Don't process invalid
4808 covariant overriders.
4811 * cp-tree.h (add_method): Add return value.
4812 * class.c (add_method): Return success indicator.
4813 * semantics.c (finish_member_declaration): Don't add an invalid
4814 method to the method list.
4816 2005-10-17 Mark Mitchell <mark@codesourcery.com>
4819 * call.c (build_new_method_call): Do not show VTT parameters to
4822 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4825 * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
4826 only complain about missing statement.
4828 2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
4831 * cp-tree.h (BASELINK_QUALIFIED_P): New.
4832 * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
4833 * typeck.c (finish_class_member_access_expr): Set it.
4836 * decl.c (check_default_argument): Don't check
4837 processing_template_decl or uses_template_parms here.
4838 (grokparms): Only call check_default_argument when not processing
4840 * parser.c (cp_parser_late_parsing_default_arg): Call
4841 check_default_argument when not processing a template decl.
4843 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4846 * decl2.c (mark_used): Use uses_template_parms instead of
4848 * init.c (constant_value_1): Handle uninstantiated templates
4850 * pt.c (instantiate_decl): Add sanity check.
4852 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4855 * typeck.c (check_template_keyword): Fix thinko.
4857 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
4860 * decl.c (pop_switch): Only call c_do_switch_warnings
4861 when not processing templates.
4863 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4866 * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
4867 (check_template_keyword): New function.
4868 (finish_id_expression): Change prototoype.
4869 (finish_qualified_id_expr): Change prototype.
4870 (build_qualified_name): New function.
4871 (finish_class_member_access_expr): Change prototype.
4872 * init.c (build_offset_ref): Use build_qualified_name.
4873 * mangle.c (write_expression): Likewise.
4874 * parser.c (cp_parser_primary_expression): Remove qualifying_class
4875 parameter. Add address_p and template_arg_p. Use
4876 build_qualified_name.
4877 (cp_parser_id_expression): Default *template_p to
4878 template_keyword_p. Check for invalid uses of the template
4880 (cp_parser_postfix_expression): Eliminate special handling for
4881 qualified names. Adjust call to cp_parser_primary_expression.
4882 (cp_parser_postfix_dot_deref_expression): Adjust call to
4883 cp_parser_id_expression and finish_class_member_access_expr.
4884 (cp_parser_template_argument_list): Add comment.
4885 (cp_parser_template_argument): Adjust use of
4886 cp_parser_primary_expression. Remove call to
4887 finish_qualified_id_expr.
4888 (cp_parser_lookup_name): Use build_qualified_name.
4889 * pt.c (tsubst): Use build_qualified_name.
4890 (tsubst_qualified_id): Likewise. Adjust call to
4891 finish_qualified_id_expr.
4892 (tsubst_copy): Use build_qualified_name.
4893 (tsubst_copy_and_build): Adjusts call to finish_id_expression and
4894 finish_class_member_access_expr.
4895 * semantics.c (finish_non_static_data_member): Use
4896 build_qualified_name.
4897 (finish_qualified_id_expr): Add template_p and template_arg_p
4899 (finish_id_expression): Remove qualifiying_class parameter. Add
4900 template_p, done, address_p, and template_arg_p. Use
4901 build_qualified_name. Adjust calls to
4902 finish_class_member_acess_expr.
4903 * tree.c (build_qualified_name): New function.
4904 * typeck.c (check_template_keyword): New function.
4905 (finish_class_member_access_expr): Add template_p argument. Check
4906 for invalid uses of the template keyword.
4908 2005-10-15 Mark Mitchell <mark@codesourcery.com>
4911 * class.c (maybe_warn_about_overly_private_class): Lazy
4912 constructors are public.
4914 2005-10-14 Mark Mitchell <mark@codesourcery.com>
4917 * call.c (convert_like_real): Rely on convert_and_check to issue
4918 warnings about overflow and conversion to unsigned.
4919 * decl.c (finish_enum): Use the location of the enumerators, not
4920 the closing brace of the enumeration, when reporting warnings
4922 (build_enumerator): Use error_mark_node for erroneous values.
4923 * typeck2.c (digest_init): Remove reference to "signature pointer"
4926 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
4929 * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
4930 (maybe_clone_body): Track the first clone.
4932 2005-10-13 Nathan Sidwell <nathan@codesourcery.com>
4935 * class.c (build_base_path): The vtable is always the first thing
4938 2005-10-13 Mark Mitchell <mark@codesourcery.com>
4941 * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
4942 * decl.c (duplicate_decls): Merge it into new declarations.
4943 (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
4944 (cp_finish_decl): Set it, when appropriate.
4947 * call.c (build_new_method_call): Correct pretty-printing of
4949 * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
4953 * decl.c (start_method): Return error_mark_node for errors.
4956 * pt.c (push_template_decl_real): Complain about attempts to
4957 declare template variables.
4960 * pt.c (tsubst_template_parms): Set processing_template_decl while
4961 processing the parameters.
4962 (tsubst_decl): Set processing_template_decl when substituting into
4966 * pt.c (most_specialized_instantiation): Robustify.
4969 * semantics.c (finish_id_expression): Issue errors about uses of
4970 local variables in containing functions even in templates.
4972 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
4976 * class.c (finish_struct_1): Call
4977 targetm.cxx.adjust_class_at_definition.
4980 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
4983 * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
4984 with already looked up member functions. Assert we're not
4985 returning a NON_DEPENDENT_EXPR with unknown type.
4986 * typeck.c (finish_class_member_access_expr): We can get
4987 non-template-id-expr baselinks. If the lookup finds a baselink,
4988 remember it even inside templates.
4991 * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
4992 TYPE_DECL. Use dependent_type_p to check type.
4993 * pt.c (uses_template_parms_p): Use dependent_type_p for a
4995 (type_dependent_expression_p): Assert we've not been given a
4999 * decl.c (check_function_type): Correctly overwrite incomplete
5000 return type with void type.
5001 * typeck.c (check_return_expr): If the function's return type is
5002 void, don't try and convert a return expr.
5004 2005-10-12 David Edelsohn <edelsohn@gnu.org>
5007 * call.c (build_object_call): If BINFO is NULL, bypass
5008 lookup_fnfields and set fns to NULL_TREE.
5010 2005-10-12 Paolo Bonzini <bonzini@gnu.org>
5013 * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
5014 an ADDR_EXPR of a LABEL_DECL as &&.
5016 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
5019 * class.c (walk_subobject_offsets): Don't walk error_mark_node.
5021 2005-10-11 Ian Lance Taylor <ian@airs.com>
5024 * cvt.c (convert_to_void): Don't warn about unused values when
5025 processing a template declaration.
5027 2005-10-11 Mark Mitchell <mark@codesourcery.com>
5030 * call.c (convert_like_real): Use decl_constant_value, not
5031 integral_constant_value.
5032 * init.c (constant_value_1): New function.
5033 (integral_constant_value): Use it.
5034 (decl_constant_value): Likewise.
5035 * typeck.c (decay_conversion): Use decl_constant_value, not
5036 integral_constant_value.
5039 * parser.c (cp_parser_elaborated_type_specifier): Don't treat
5040 class types as templates if the type is not appearing as part of a
5041 type definition or declaration.
5043 2005-10-10 Mark Mitchell <mark@codesourcery.com>
5046 * pt.c (instantiate_decl): Call finish_static_data_member_decl for
5047 static data members.
5049 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5050 Mark Mitchell <mark@codesourcery.com>
5053 * parser.c (cp_parser_template_argument_list): Do not treat
5054 contents of argument list as part of a constant expression.
5056 2005-10-10 Mark Mitchell <mark@codesourcery.com>
5059 * decl.c (grokdeclarator): Do not require template parameter lists
5060 for explicitly specialized class.
5061 * error.c (dump_aggr_type): Do not dump template arguments for
5062 non-primary specializations.
5063 (dump_function_name): Likewise.
5066 * pt.c (instantiate_decl): Instantiate the initializer of
5067 a static data member in the namespace containing the class
5068 containing the static data member.
5070 2005-10-08 James A. Morrison <phython@gcc.gnu.org>
5073 * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
5074 scopes as nondependent.
5076 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5078 * call.c (resolve_args): Remove redundant test.
5080 2005-10-05 Paolo Bonzini <bonzini@gnu.org>
5082 PR tree-optimization/21419
5083 PR tree-optimization/24146
5084 PR tree-optimization/24151
5086 * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
5087 read-only. Set ASM_VOLATILE_P for asms without outputs.
5089 2005-10-05 Nathan Sidwell <nathan@codesourcery.com>
5092 * call.c (joust): Adjust length count to more_specialized_fn.
5093 * pt.c (more_specialized_fn): Cope with non-static member vs
5096 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
5099 * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
5100 instead of change_decl_assembler_name.
5102 2005-10-03 Alexandre Oliva <aoliva@redhat.com>
5104 * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
5106 2005-10-03 Mark Mitchell <mark@codesourcery.com>
5109 * repo.c: Include flags.h.
5110 (finish_repo): Add -frandom-seed to the arguments.
5112 2005-10-02 Mark Mitchell <mark@codesourcery.com>
5115 * parser.c (cp_parser_template_argument): Don't turn "T::f" into
5117 * pt.c (convert_nontype_argument): Remove ??? comment.
5120 * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
5121 when class rvalues are lvalues.
5123 2005-09-28 Mark Mitchell <mark@codesourcery.com>
5126 * decl.c (grokdeclarator): Always pedwarn about overqualified
5129 2005-09-27 Mark Mitchell <mark@codesourcery.com>
5132 * name-lookup.c (maybe_process_template_type_declaration): Don't
5133 treat forward declarations of classes as templates just because
5134 we're processing_template_decl.
5135 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
5138 2005-09-26 Jason Merrill <jason@redhat.com>
5141 * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
5142 * name-lookup.c (pushdecl_maybe_friend): Check it.
5143 * decl.c (begin_function_body): Do nothing if it's false.
5144 (finish_function_body): Ditto.
5145 (outer_curly_brace_block): New fn.
5146 (finish_function): Use it.
5148 2005-09-26 Richard Guenther <rguenther@suse.de>
5151 * decl2.c (do_static_destruction): Remove.
5152 (finish_static_initialization_or_destruction): Likewise.
5153 (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
5154 (NEEDS_GUARD_P): Likewise.
5155 (do_static_initialization): Rename to
5156 do_static_initialization_or_destruction. Process all
5157 initializers/destructors and handle common conditionalizing.
5158 (start_static_initialization_or_destruction): Rename to
5159 one_static_initialization_or_destruction. Handle only
5160 decl-specific conditionalizing.
5161 (cp_finish_file): Call do_static_initialization_or_destruction.
5163 2005-09-22 Jakub Jelinek <jakub@redhat.com>
5166 * class.c (find_final_overrider): Move diagnostic about no unique final
5168 (update_vtable_entry_for_fn): ... here.
5170 2005-09-21 Mark Mitchell <mark@codesourcery.com>
5173 * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
5175 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5178 * call.c (resolve_args): Return error_mark_node on arguments
5179 whose TREE_TYPE is error_mark_node.
5181 2005-09-20 Jakub Jelinek <jakub@redhat.com>
5184 * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
5185 get_tinfo_ptr calls.
5187 2005-09-16 Mark Mitchell <mark@codesourcery.com>
5190 * parser.c (cp_parser_enclosed_template_argument_list): Make sure
5191 skip_evaluation is false when processing template arguments.
5194 * pt.c (check_instantiated_args): Treat uses of anonymous types as
5195 causing type-deduction failure.
5197 2005-09-15 Jason Merrill <jason@redhat.com>
5200 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
5203 2005-09-15 Mark Mitchell <mark@codesourcery.com>
5206 * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
5207 processing template arguments.
5209 * pt.c (check_explicit_instantiation_namespace): Fix typo.
5212 * decl.c (check_class_member_definition_namespace): New function.
5213 (grokfndecl): Use it.
5214 (grokvardecl): Likewise.
5215 (grokdecl): Improve documentation.
5216 * pt.c (check_explicit_instantiation_namespace): New function.
5217 (register_specialization): Call check_specialization_namespace
5218 when replacing an implicitly instantiated function.
5219 (check_explicit_specialization): Ensure that DECL_CONTEXT is set
5220 correctly for namespace-scope specializations.
5221 (do_decl_instantiation): Use
5222 check_explicit_instantiation_namespace.
5223 (do_type_instantiation): Likewise.
5225 2005-09-15 Nathan Sidwell <nathan@codesourcery.com>
5228 * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
5230 2005-09-13 Bastian Blank <waldi@debian.org>
5233 * mangle.c (find_substitution): Do not use special substitutions
5234 for identifiers not in std::.
5236 2005-09-13 Mark Mitchell <mark@codesourcery.com>
5239 * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
5242 2005-09-13 Mark Mitchell <mark@codesourcery.com>
5245 * pt.c (tsubst_default_argument): Do treat default argument
5246 expressions as occurring in the context of the function called.
5248 2005-09-12 Mark Mitchell <mark@codesourcery.com>
5251 * parser.c (cp_parser_primary_expression): Recognize the closing
5252 ">" of a template-argument-list after a floating-point literal as
5253 the end of a cast expression.
5255 2005-09-12 Mark Mitchell <mark@codesourcery.com>
5258 * cvt.c (perform_qualification_conversions): Don't create
5259 unnecessary NOP_EXPRs.
5260 * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
5262 2005-09-12 Ian Lance Taylor <ian@airs.com>
5265 * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
5266 bitfield. Make dummy bitfield one bit smaller.
5267 (DECL_HIDDEN_FRIEND_P): Define.
5268 (pushdecl_maybe_friend): Declare.
5269 (pushdecl_top_level_maybe_friend): Declare.
5270 * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
5271 Change prototype and all callers. Add assertion that a
5272 DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
5273 DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
5275 * name-lookup.c (supplement_binding): Don't ignore a
5276 DECL_HIDDEN_FRIEND_P.
5277 (pushdecl_maybe_friend): Break out contents of pushdecl. Add
5278 is_friend parameter. Set DECL_ANTICIPATED and
5279 DECL_HIDDEN_FRIEND_P for a friend function.
5280 (pushdecl): Just call pushdecl_maybe_friend.
5281 (pushdecl_with_scope): Add is_friend parameter. Change prototype
5283 (pushdecl_namespace_level): Likewise.
5284 (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
5285 well as DECL_ANTICIPATED when checking for a builtin.
5286 (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
5287 DECL_ANTICIPATED when checking for a builtin.
5288 (do_nonmember_using_decl): Likewise.
5289 (pushdecl_top_level_1): Add is_friend parameter. Change all
5291 (pushdecl_top_level_maybe_friend): New function.
5292 (remove_hidden_names): New function.
5293 (struct arg_lookup): Add args field.
5294 (friend_of_associated_class_p): New static function.
5295 (arg_assoc_namespace): Ignore hidden functions which are not
5296 friends of an associated class of some argument.
5297 (lookup_arg_dependent): Remove hidden functions from list passed
5298 in. Initialize k.args.
5299 * name-lookup.h (remove_hidden_names): Declare.
5300 * friend.c (do_friend): Call pushdecl_maybe_friend instead of
5302 * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
5303 an assertion, with a check for DECL_HIDDEN_FRIEND_P.
5304 (build_new_function_call): Add koenig_p parameter. Change
5305 prototype and callers.
5306 * pt.c (register_specialization): Add is_friend parameter. Change
5308 (push_template_decl_real): Change is_friend parameter to bool.
5309 Change prototype and all callers.
5310 (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
5311 instead of pushdecl_top_level.
5313 2005-09-11 Richard Henderson <rth@redhat.com>
5315 * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
5316 * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
5318 2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
5320 * parser.c (cp_parser_translation_unit): Simplify. The while-block
5321 was actually executed at most once.
5323 2005-09-09 Richard Henderson <rth@redhat.com>
5326 * cp-tree.def (ALIAS_DECL): Remove.
5327 * cp-lang.c (cp_init_ts): Remove support for it.
5328 * error.c (dump_decl): Likewise.
5329 * name-lookup.c (pushdecl): Likewise.
5330 * semantics.c (finish_id_expression): Likewise.
5331 * decl2.c (build_anon_union_vars): Use a VAR_DECL with
5332 DECL_VALUE_EXPR instead.
5334 2005-09-09 Mark Mitchell <mark@codesourcery.com>
5337 * decl.c (start_preparsed_function): Do not pay attention to
5338 #pragma interface for implicitly-defined methods.
5339 * decl2.c (cp_finish_file): Do not complain about uses of inline
5340 functions that have bodies, even if we decided not to emit the
5341 body in this translation unit.
5342 * semantics.c (note_decl_for_pch): Do not mess with linkage.
5343 (expand_or_defer_fn): Make inline, non-template functions COMDAT
5346 2005-09-08 Richard Henderson <rth@redhat.com>
5349 * decl.c (wrapup_globals_for_namespace): Call
5350 emit_debug_global_declarations.
5351 * decl2.c (cp_finish_file): Likewise.
5353 2005-09-08 Mark Mitchell <mark@codesourcery.com>
5356 * decl2.c (mark_used): Instantiate static data members initialized
5357 by constants, even in a template.
5359 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
5362 * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
5365 2005-09-07 Richard Guenther <rguenther@suse.de>
5367 * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
5368 for EMPTY_CLASS_EXPR.
5370 2005-09-06 Jakub Jelinek <jakub@redhat.com>
5373 * typeck.c (check_return_expr): Add no_warning argument. Set
5374 *no_warning to true if "return-statement with no value, in function
5375 returning" warning has been issued.
5376 * cp-tree.h (check_return_expr): Adjust prototype.
5377 * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
5378 check_return_expr set *no_warning to true.
5380 2005-09-06 Mark Mitchell <mark@codesourcery.com>
5382 * cp-tree.h (rvalue): New function.
5383 * call.c (build_conditional_expr): Use it.
5384 * init.c (build_new_1): Likewise.
5385 * rtti.c (build_dynamic_cast_1): Likewise.
5386 * tree.c (rvalue): New function.
5387 * typeck.c (build_unary_op): Use it.
5388 (build_static_cast_1): Likewise.
5391 * init.c (build_new_1): Make sure the entire array type is
5392 complete, not just its element types.
5394 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5396 * decl.c (check_elaborated_type_specifier): Remove redundant check.
5398 2005-09-06 Jakub Jelinek <jakub@redhat.com>
5401 * typeck.c (ignore_overflows): New helper function.
5402 (build_static_cast_1): Use it.
5404 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
5406 * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
5407 Follow spelling conventions.
5409 2005-09-05 Mark Mitchell <mark@codesourcery.com>
5412 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
5415 2005-09-05 Mark Mitchell <mark@codesourcery.com>
5418 * semantics.c (finish_stmt_expr_expr): Add an explicit
5419 initialization to the last statement in the statement-expression.
5420 * (finish_stmt_expr): Adjust accordingly.
5422 2005-09-03 Mark Mitchell <mark@codesourcery.com>
5425 * decl2.c (mark_used): Always instantiate static data members
5426 initialized by constant expressions.
5427 * pt.c (instantiate_decl): Instantiate the initializers for static
5428 data members initialized by constant expressions.
5431 * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
5432 finishing processing for a template function in a local class.
5434 2005-09-02 Mark Mitchell <mark@codesourcery.com>
5435 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
5436 around functions in local classes.
5438 2005-09-02 Mark Mitchell <mark@codesourcery.com>
5441 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
5442 around functions in local classes.
5444 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
5447 * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
5448 init, call generate_ctor_or_dtor_function.
5450 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5453 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
5454 lookup_name_real on final parse.
5456 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5459 * semantics.c (qualified_name_lookup_error): Do not complain again
5462 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5465 * parser.c (cp_parser_namespace_name): Move diagnostic for
5466 invalid namespace-name to here from ...
5467 * name-lookup.c (do_namespace_alias): ... here and ...
5468 (do_using_directive): ... here. Remove dead code.
5470 2005-08-28 Mark Mitchell <mark@codesourcery.com>
5473 * cp-tree.h (saved_scope): Add skip_evaluation.
5474 * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
5475 DECL_INITIAL, to determine whether or not a static data member was
5476 initialized in the class-specifier.
5477 (cp_finish_decl): Add comment.
5478 * init.c (integral_constant_value): Subtitute into the
5479 initializers for static data members in templates.
5480 * name-lookup.c (push_to_top_level): Save skip_evaluation.
5481 (pop_from_top_level): Restore it.
5482 * pt.c (instantiate_class_template): Do not substitute into the
5483 intializers of static data members when instantiating a class.
5484 (regenerate_decl_from_template): Simplify.
5485 (instantiate_decl): Tidy. Substitute into the initializer for a
5486 static data member even when the definition of the data member is
5489 2005-08-26 Mark Mitchell <mark@codesourcery.com>
5492 * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
5493 (type_dependent_expression_p): Allow BASELINKs whose associated
5494 functions are simply a FUNCTION_DECL.
5497 * cp-tree.h (build_vec_init): Adjust prototype.
5498 * init.c (perform_member_init): Adjust call to build_vec_init.
5499 (build_aggr_init): Likewise.
5500 (build_new_1): Do not call build_default_init for array types.
5501 (build_vec_init): Add explicit_default_init_p parameter. Perform
5502 default initialization of vector elements when set.
5503 * typeck.c (build_modify_expr): Adjust call to build_vec_init.
5505 2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
5508 * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
5511 2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
5514 * parser.c (cp_lexer_peek_nth_token): Relax assert.
5516 2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
5519 * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
5521 2005-08-22 James E Wilson <wilson@specifix.com>
5523 PR tree-optimization/23426
5524 * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
5527 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5530 * pt.c (push_template_decl_real): Return error_mark_node if the
5531 number of template parameters does not match previous definition.
5533 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5536 * decl.c (require_complete_types_for_parms): Mark incomplete types
5539 2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5541 * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
5542 Fix typo in leading comment.
5544 2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5546 * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
5548 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
5550 * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
5551 * call.c (add_template_candidate_real): Pass down 'flags' to
5552 fn_type_unification.
5553 (can_convert_arg): New 'flags' argument. Pass it to call to
5554 implicit_conversion instead of LOOKUP_NORMAL.
5555 (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
5556 * class.c (resolve_address_of_overloaded_function): Ditto.
5557 (resolve_address_of_overloaded_function): Ditto.
5558 * decl.c (reshape_init, check_default_argument): Ditto.
5559 * typeck.c (build_ptrmemfunc): Ditto.
5560 * pt.c (type_unification_real): Add 'flags' argument.
5561 (fn_type_unification): Pass 'flags' to type_unification_real.
5562 (type_unification_real): Pass new 'flags' argument to call to
5565 2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
5566 Nathan Sidwell <nathan@codesourcery.com>
5570 * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
5573 2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
5576 Revert my 2005-07-08 patch
5577 * pt.c (type_unification_real): Remove is_method_argument and
5579 (fn_type_unification, unify): Adjust type_unification_real calls.
5581 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5584 * decl2.c (grokfield): Check that method is not static before
5587 2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
5590 * name-lookup.c (pushtag): Process the template type before
5591 altering the identifier lookup fields. Remove unreachable code
5592 creating an empty stub decl.
5594 2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5597 * decl.c (grokdeclarator): Reset storage_class after error.
5599 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5602 * init.c (build_new_1): Check for empty candidate list.
5604 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5607 * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
5608 before calling build_exception_variant.
5610 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5613 * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
5614 if substitution of template args did not succeed.
5616 2005-08-06 Michael Matz <matz@suse.de>
5618 * method.c (use_thunk): Call init_insn_lengths.
5620 2005-08-05 James A. Morrison <phython@gcc.gnu.org>
5623 * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
5624 sorrycount or errorcount are nonzero.
5626 2005-08-05 Mark Mitchell <mark@codesourcery.com>
5628 * name-lookup.c (pushtag): Remove accidental commit from:
5629 2004-12-21 Mark Mitchell <mark@codesourcery.com>
5631 * decl.c (grokdeclarator): Return error_mark_node, not
5632 void_type_node, to indicate errors.
5633 * parser.c (cp_parser_template_parameter_list): Robustify.
5634 (cp_parser_template_parameter): Likewise.
5636 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
5638 * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
5641 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
5643 * method.c: Fix a comment typo.
5645 2005-07-28 Mark Mitchell <mark@codesourcery.com>
5648 * call.c (add_builtin_candidate): Adjust for changes in
5649 representation of pointer-to-member types.
5651 2005-07-28 Mike Stump <mrs@apple.com>
5653 * pt.c (check_explicit_specialization): Add visibility logic.
5654 (lookup_template_class): Likewise.
5655 (instantiate_class_template): Likewise.
5657 2005-07-27 Devang Patel <dpatel@apple.com>
5659 * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
5661 2005-07-25 Ian Lance Taylor <ian@airs.com>
5663 * ptree.c (cxx_print_identifier): Print a leading space if the
5666 2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5668 * call.c (convert_for_arg_passing): Check function pointers when
5669 -Wmissing-format-attribute is activated.
5670 * typeck.c (convert_for_assignment): Likewise.
5672 2005-07-22 Manfred Hollstein <mh@suse.com>
5674 * parser.c (cp_parser_declaration): Fix unitialised warnings.
5676 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
5678 * class.c (build_base_path): Fix typo.
5680 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
5683 * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
5685 2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5687 * call.c: Fix comment typo(s).
5688 * cxx-pretty-print.h: Likewise.
5689 * name-lookup.c: Likewise.
5690 * parser.c: Likewise.
5692 2005-07-20 Douglas Gregor <doug.gregor@gmail.com>
5695 * semantics.c (perform_koenig_lookup): For dependent calls, just
5696 return the set of functions we've found so far. Later, it will be
5697 augmented by those found through argument-dependent lookup.
5698 * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
5699 the optimization that skips namespaces where the functions were
5702 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
5704 Make CONSTRUCTOR use VEC to store initializers.
5705 * call.c (convert_default_arg): Update call to digest_init.
5706 * class.c (dump_class_hierarchy, dump_array): Update to cope with
5707 VEC in CONSTRUCTOR_ELTS.
5708 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
5709 (finish_compound_literal, digest_init): Update declaration.
5710 * decl.c (struct reshape_iter): New data type.
5711 (reshape_init_array): Rename to...
5712 (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
5713 (reshape_init): Rewrite from scratch. Split parts into...
5714 (reshape_init_array, reshape_init_vector, reshape_init_class,
5715 reshape_init_r): New functions.
5716 (check_initializer): Update call to reshape_init. Remove obsolete
5718 (initialize_artificial_var, cp_complete_array_type): Update to cope
5719 with VEC in CONSTRUCTOR_ELTS.
5720 * decl2.c (grokfield): Update calls to digest_init.
5721 (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
5722 * error.c (dump_expr_init_vec): New function.
5723 (dump_expr): Use dump_expr_init_vec.
5724 * init.c (build_zero_init, build_vec_init): Update to cope with VEC
5725 in CONSTRUCTOR_ELTS.
5726 (expand_default_init): Update call to digest_init.
5727 * parser.c (cp_parser_postfix_expression): Use a VEC for the
5729 (cp_parser_initializer_list): Build a VEC of initializers.
5730 * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
5731 in CONSTRUCTOR_ELTS.
5732 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
5733 ptm_initializer, class_initializer, get_pseudo_ti_init): Use
5734 build_constructor_from_list instead of build_constructor.
5735 * semantics.c (finish_compound_literal): Update call to digest_init.
5736 * tree.c (stabilize_init): Update to cope with VEC in
5738 * typeck.c (build_ptrmemfunc1): Likewise.
5739 * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
5741 (store_init_value): Use build_constructor_from_list and update call
5743 (digest_init): Rewrite.
5744 (process_init_constructor): Rewrite from scratch. Split into...
5745 (process_init_constructor_array, picflag_from_initializer,
5746 process_init_constructor_record, process_init_constructor_union):
5748 (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
5750 (build_functional_cast): Use build_constructor_from_list instead of
5753 2005-07-18 Mark Mitchell <mark@codesourcery.com>
5756 * cp-tree.h (instantiate_decl): Change prototype.
5757 * decl2.c (mark_used): Adjust accordingly.
5758 * pt.c (do_decl_instantiation): Likewise.
5759 (instantiate_class_member): Likewise.
5760 (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
5761 Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
5762 that has no definition available.
5763 (instantiate_pending_templates): Adjust call to instantiate_decl.
5765 2005-07-17 Mark Mitchell <mark@codesourcery.com>
5768 * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
5769 * decl.c (duplicate_decls): Re-register template specializations
5770 for functions that have DECL_TEMLPLATE_INFO, even if they do not
5771 have DECL_TEMPLATE_INSTANTIATION set.
5773 2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5775 * call.c (diagnostic_fn_t): New.
5776 (build_temp, convert_like_real): Use diagnostic_fn_t.
5778 2005-07-15 Mark Mitchell <mark@codesourcery.com>
5781 * repo.c (repo_emit_p): Robustify.
5783 2005-07-14 Daniel Berlin <dberlin@dberlin.org>
5786 * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
5788 2005-07-15 Mark Mitchell <mark@codesourcery.com>
5791 * call.c (implicit_conversion): Add c_cast_p parameter.
5792 (standard_conversion): Likewise. Allow conversions between
5793 differently-qualified pointer types when performing a C-style
5795 (add_function_candidate): Adjust callee.
5796 (build_builtin_candidate): Likewise.
5797 (build_user_type_conversion_1): Likewise.
5798 (conditional_conversion): Likewise.
5799 (can_convert_arg): Likewise.
5800 (can_convert_arg_bad): Likewise.
5801 (perform_implicit_conversion): Likewise.
5802 * cp-tree.h (comp_ptr_ttypes_const): Declare.
5803 * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
5806 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5807 Nathan Sidwell <nathan@codesourcery.com>
5810 * pt.c (tsubst_template_parms): Check for invalid non-type
5813 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
5815 * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
5816 decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
5817 (cp_init_ts): Call init_shadowed_var_for_decl.
5818 Remove include of gt-cp-cp-lang.h.
5819 * cp-objcp-common.c (shadowed_var_for_decl,
5820 decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
5822 (init_shadowed_var_for_decl): New function to initialize
5823 shadowed_var_for_decl.
5824 Include gt-cp-cp-objcp-common.h.
5825 * Make-lang.in (gt-cp-lang.h): Remove.
5826 (gt-cp-cp-objcp-common.h): Add.
5827 (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
5828 (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
5829 * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
5830 * cp-tree (init_shadowed_var_for_decl): Add prototype.
5832 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
5834 * Make-lang.in: Add gt-cp-lang.h.
5836 * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
5838 * config-lang.in: Add cp-lang.c to gtfiles.
5839 * cp-lang.c: Include hashtab.h.
5840 (cp_init_ts): New function.
5841 (LANG_HOOK_INIT_TS): Use macro.
5842 (decl_shadowed_for_var_lookup): New function.
5843 (decl_shadowed_for_var_insert): Ditto.
5844 * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
5845 (NON_THUNK_FUNCTION_CHECK): Ditto.
5846 (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
5847 (DECL_INIT_PRIORITY): Ditto.
5848 (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
5849 (DECL_SHADOWED_FOR_VAR): Use hashtable.
5850 (SET_DECL_SHADOWED_FOR_VAR): Ditto.
5851 * decl.c (duplicate_decls): Update for new/updated structures.
5852 (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
5853 * decl2.c (start_static_initialization_or_destruction): Deal with
5855 * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
5857 * tree.c (handle_init_priority_attribute): Handle priority.
5859 2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
5862 * pt.c (type_unification_real): Add is_method argument. Use it
5863 for this pointer unification.
5864 (fn_type_unification): Adjust type_unification_real call.
5867 2005-07-07 Nathan Sidwell <nathan@codesourcery.com>
5869 * pt.c (type_unification_real): Remove allow_incomplete argument.
5870 Remove unreachable code.
5871 (fn_type_unification): Adjust call to type_unification_real.
5874 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
5876 * Makefile.in (class.o, decl2.o): Adjust dependencies.
5877 * class.c: Include tree-dump.h.
5878 * decl2.c: Include tree-dump.h.
5880 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
5882 * dump.c: Use dump_string_field.
5884 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
5886 * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
5887 minimum GCC version for format checking to 4.1.
5889 2005-07-02 Kazu Hirata <kazu@codesourcery.com>
5891 * Make-lang.in (cc1plus-checksum.c): Use
5892 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
5894 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
5896 * name-lookup.c, parser.c: Use %q, %< and %> to quote in
5899 2005-07-02 Zack Weinberg <zack@codesourcery.com>
5900 Joseph S. Myers <joseph@codesourcery.com>
5902 * error.c (location_of): Add comment.
5903 (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
5904 * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
5905 * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
5906 name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
5907 typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
5908 or cp_pedwarn_at. Mark up some diagnostic strings with N_.
5910 2005-06-30 Daniel Berlin <dberlin@dberlin.org>
5912 * decl.c (require_complete_types_for_parms): Call relayout_decl
5913 instead of layout_decl.
5915 2005-06-30 Zack Weinberg <zack@codesourcery.com>
5916 Jakub Jelinek <jakub@redhat.com>
5918 * cp-lang.c: No need to include cxx-pretty-print.h.
5919 * error.c (cp_printer): Update signature. No need to process
5921 (print_instantiation_partial_context): Output last newline
5922 with pp_base_newline.
5923 * Make-lang.in: Update dependencies.
5925 2005-06-30 Steven Bosscher <stevenb@suse.de>
5927 * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
5928 DECL_THREAD_LOCAL_P.
5929 (cp_finish_decl): Likewise.
5930 (grokvardecl): Set the default DECL_TLS_MODEL here.
5932 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
5934 * cvt.c (ocp_convert): Use invalid_conversion hook.
5935 * typeck.c (build_binary_op): Use invalid_binary_op hook.
5936 (build_unary_op): Use invalid_unary_op hook.
5938 2005-06-28 Paul Brook <paul@codesourcery.com>
5940 * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
5941 * except.c: Include target.h.
5942 (init_exception_processing): Initialize unwind_resume_libfunc.
5943 * doc/tm.texi: Document TARGET_ASM_TTYPE
5945 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5947 * call.c (build_over_call): Pass in named argument list to
5948 `check_function_arguments'.
5949 * typeck.c (build_function_call): Likewise.
5951 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5953 * cp-tree.h (lang_check_failed): Add noreturn attribute.
5955 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
5957 * all files: Update FSF address in copyright headers.
5959 2005-06-23 Jason Merrill <jason@redhat.com>
5962 * semantics.c (simplify_aggr_init_expr): Use
5963 CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
5965 2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5967 * pt.c (register_specialization): Remove superfluous assertion.
5969 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5971 * call.c (convert_like_real): Add format attribute.
5972 * typeck.c (check_for_casting_away_constness,
5973 build_static_cast_1): Likewise.
5974 * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
5977 2005-06-17 Geoffrey Keating <geoffk@apple.com>
5980 * pt.c (type_unification_real): Apply template type deduction even
5981 to procedure parameters that are not dependent on a template
5984 2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
5986 * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
5988 (create_pseudo_type_info): First parameter is an int.
5990 2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
5993 * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
5996 * Make-lang.in: Reformat some long lines.
5997 (gt-cp-rtti.h): New target.
5998 (cp/rtti.o): Add dependency.
5999 * config-lang.in (gtfiles): Add cp/rtti.c.
6000 * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
6001 CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
6002 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
6003 CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
6004 CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
6005 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
6006 ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
6007 class_desc_type_node, si_class_desc_type_node,
6008 vmi_class_desc_type_node, ptm_desc_type_node,
6009 base_desc_type_node): Remove.
6010 * decl.c: Adjust documentation of global trees.
6011 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
6012 TINFO_REAL_NAME): Remove.
6013 (struct tinfo_s): New.
6014 (enum tinfo_kind): New.
6016 (get_tinfo_decl): Adjust use of tinfo descriptor.
6017 (tinfo_base_init, generic_initializer, ptr_initializer,
6018 ptm_initializer, class_initializer): Likewise.
6019 (get_pseudo_ti_init): Take descriptor index. Adjust.
6020 (create_pseudo_type_info): Likewise.
6021 (get_pseudo_ti_desc): Return descriptor index. Adjust.
6022 (create_tinfo_types): Adjust use of create_pseudo_type_info.
6023 (emit_tinfo_decl): Adjust use of tinfo descriptor.
6025 2005-06-14 Roger Sayle <roger@eyesopen.com>
6027 * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
6029 2005-06-13 Geoffrey Keating <geoffk@apple.com>
6031 * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
6032 (rule for installing g++.1 manpage): Does depend on installdirs.
6034 2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
6037 * decl.c (cp_finish_decl): Clear runtime runtime initialization if
6038 in-class decl's initializer is bad.
6041 * parser.c (struct cp_parser): Document that scope could be
6043 (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
6045 (cp_parser_nested_name_specifier): Return NULL_TREE on error.
6046 (cp_parser_postfix_expression): Deal with null or error_mark
6048 (cp_parser_elaborated_type_specifier): Adjust
6049 cp_parser_nested_name_specifier call.
6051 * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
6053 2005-06-12 Roger Sayle <roger@eyesopen.com>
6056 * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
6057 Treat CONVERT_EXPR identically to NOP_EXPR.
6059 2005-06-10 Aldy Hernandez <aldyh@redhat.com>
6062 * cvt.c (build_expr_type_conversion): Same.
6063 * typeck.c (build_binary_op): Handle vectors.
6064 (common_type): Same.
6065 (type_after_usual_arithmetic_conversions): Same.
6067 2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
6070 * cp-tree.def (USING_DECL): Update documentation.
6071 * cp-tree.h (DECL_DEPENDENT_P): New.
6072 (USING_DECL_DECLS, USING_DECL_SCOPE): New.
6073 * class.c (handle_using_decl): Move most of the processing to ...
6074 * name-lookup.c (do_class_using_decl): ... here. Make stricter.
6075 (push_using_decl): Use USING_DECL_SCOPE.
6076 (cp_emit_debug_info_for_using): Make extern.
6077 * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
6078 * name-lookup.h (cp_emit_debug_info_for_using): Declare.
6079 * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
6081 (tsubst_expr): Use USING_DECL_SCOPE.
6082 * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
6083 * semantics.c (finish_member_declaration): Likewise.
6085 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6088 * pt.c (tsubst): Reject pointer-to-member of type void.
6091 * parser.c (cp_parser_label_declaration): Deal with invalid/missing
6094 2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
6096 * cp-tree.def (DEFAULT_ARG): Adjust documentation.
6097 * cp-tree.h (DEFARG_INSTANTIATIONS): New.
6098 (struct tree_default_arg): Add instantiations member.
6099 * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
6101 * pt.c (tsubst_arg_types): Likewise.
6103 * parser.c (cp_parser_late_parsing_default_args): Fix overeager
6104 assert in previous patch.
6106 2005-06-06 Jakub Jelinek <jakub@redhat.com>
6108 * error.c (locate_error): Use gmsgid instead of msgid for argument
6110 (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
6112 2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
6115 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
6116 * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
6117 argument to any early instantiations.
6118 * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
6121 * cp-tree.h (add_method): Add using_decl parameter.
6122 * class.c (add_method): Add using_decl parameter. Adjust error
6124 (handle_using_decl): Pass the using decl to add_method.
6125 (clone_function_decl): Adjust add_member calls.
6126 * decl2.c (check_classfn): Likewise.
6127 * method.c (lazily_declare_fn): Likewise.
6128 * semantics.c (finish_member_declaration): Likewise.
6130 * method.c (synthesize_method): Use inform, not warning.
6132 2005-06-06 Hans-Peter Nilsson <hp@axis.se>
6134 * config-lang.in (target_libs): Remove target-gperf.
6136 2005-06-05 Mark Mitchell <mark@codesourcery.com>
6139 * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
6140 * parser.c (cp_parser_postfix_expression): Allow non-constant
6141 expressions as arguments to __builtin_constant_p.
6142 * tree.c (builtin_valid_in_constant_expr_p): Use
6143 DECL_IS_BUILTIN_CONSTANT_P.
6145 2005-06-03 Mark Mitchell <mark@codesourcery.com>
6148 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
6149 the pointed-to type for a pointer-to-member.
6152 * cp-tree.h (grok_op_properties): Remove friendp parameter.
6153 * decl.c (grokfndecl): Adjust call.
6154 (grok_op_properties): Determine the class of which the function is
6155 a member by looking at its DECL_CONTEXT, not current_class_type.
6156 * pt.c (tsubst_decl): Adjust call to grok_op_properties.
6158 2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
6160 * method.c (synthesize_method): Add addtional arg to warning call.
6163 * Make-lang.in (method.o): Add diagnostic.h
6164 * decl.c (start_preparsed_function): Use decl's location for file
6166 * decl2.c (cp_finish_file): Set input_location before synthesizing
6168 (mark_used): When deferring a synthesized function, save current
6169 location. Do not set function's location when actually
6171 * method.c: #include diagnostic.h.
6172 (synthesize_method): Set the functions source location. Show
6173 needed location if errors are emitted.
6175 * decl.c (start_decl): Simplify specialization handling. Remove
6176 unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
6177 * mangle.c (discriminator_for_local_entity): Use VEC_index.
6180 * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
6183 * name-lookup.c (pushtag): Push local class even in a template.
6185 2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
6188 * init.c (integral_constant_value): Check the type of the
6189 initializer, not the decl.
6191 2005-05-30 Mark Mitchell <mark@codesourcery.com>
6194 * name-lookup.c (do_nonmember_using_decl): Ignore builtin
6195 functions, even when the used name is not a function.
6197 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
6199 * operators.def, optimize.c: Update copyright.
6201 2005-05-28 Mark Mitchell <mark@codesourcery.com>
6204 * call.c (standard_conversion): Permit conversions to complex
6205 types if conversion to the corresponding scalar type would be
6209 * method.c (implicitly_declare_fn): Clear processing_template_decl
6210 when generating implicit declaration.
6212 2005-05-27 Mark Mitchell <mark@codesourcery.com>
6215 * typeck.c (get_member_function_from_ptrfunc): Do not attempt
6216 conversions to base classes of incomplete types.
6218 2005-05-27 Ian Lance Taylor <ian@airs.com>
6220 * semantics.c (add_stmt): Add C++ frontend specific version.
6221 * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
6222 (stmts_are_full_exprs_p): Declare.
6224 2005-05-27 Roger Sayle <roger@eyesopen.com>
6225 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6227 * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
6228 * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
6230 (cp_parser_unary_expression): Likewise.
6231 * typeck.c (build_unary_op): Likewise.
6232 * call.c (add_builtin_candidate, build_new_op): Likewise.
6233 * error.c (dump_expr): Likewise.
6234 * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
6235 * decl.c (ambi_op_p, grok_op_properties): Likewise.
6236 * dump.c (dump_op): Likewise.
6237 * lex.c (init_operators): Likewise.
6238 * operators.def ("+"): Likewise.
6239 * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
6240 conversion, if the result and argument types differ.
6241 * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
6242 like a NOP_EXPR when !processing_template_decl.
6244 * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
6245 (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
6247 2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
6250 * typeck.c (get_delta_difference): Cope with incomplete but equal
6251 classes. Reorder if.
6254 * parser.c (cp_parser_late_parsing_for_member): Disable access
6255 checking for template functions.
6257 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6260 * pt.c (redeclare_class_template): Change error message according
6261 to coding conventions.
6263 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6265 * call.c (build_op_delete_call): Fix quoting in error message.
6267 2005-05-25 Richard Henderson <rth@redhat.com>
6270 * cp-tree.h (make_alias_for): Declare.
6271 * decl2.c (build_java_method_aliases): New.
6272 (cp_finish_file): Call it.
6273 * method.c (make_alias_for): Split out from ...
6274 (make_alias_for_thunk): ... here.
6276 2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6279 * semantics.c (finish_id_expression): Fix quoting in error message.
6281 2005-05-25 DJ Delorie <dj@redhat.com>
6283 * decl.c (duplicate_decls): Move warning control from if() to
6285 * name-lookup.c (parse_using_directive): Likewise.
6286 * parser.c (cp_parser_elaborated_type_specifier): Likewise.
6287 (cp_parser_init_declarator): Likewise.
6288 * tree.c (handle_com_interface_attribute): Likewise.
6290 2005-05-24 Ziemowit Laski <zlaski@apple.com>
6292 * class.c (layout_class_type): Do not issue C++ ABI warnings
6294 * decl.c (objc_mark_locals_volatile): Streamline by calling
6295 objc_volatilize_decl().
6296 * parser.c (cp_parser_objc_message_expression): Allow simple
6297 type specifiers (instead of merely type names) as message
6299 * pt.c (template_args_equal): Do not call objc_comptypes().
6300 * typeck.c (composite_pointer_type): If both pointers are
6301 ObjC-esque, arbitrarily choose the first; do not call
6303 (comptypes): Do not call objc_comptypes().
6304 (convert_for_assignment): Call objc_compare_types().
6305 (comp_ptr_ttypes_real): Call objc_type_quals_match() before
6306 concluding that types do not match.
6308 2005-05-24 Andrew Pinski <pinskia@physics.uc.edu>
6311 * optimize.c (update_cloned_parm): Copy the TYPE also from the
6314 2005-05-19 Jakub Jelinek <jakub@redhat.com>
6317 * decl.c (grokdeclarator): Fix "storage class specified for"
6320 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
6322 * parser.c: Fix comment typos.
6324 2005-05-18 Geoffrey Keating <geoffk@apple.com>
6326 * Make-lang.in (cc1plus-dummy): New.
6327 (cc1plus-checksum.c): New.
6328 (cc1plus-checksum.o): New.
6329 (cc1plus): Add cc1plus-checksum.o.
6331 2005-05-17 H.J. Lu <hongjiu.lu@intel.com>
6334 * decl2.c (determine_visibility): Don't set visibility to
6335 hidden if it has been set explicitly by user.
6337 2005-05-17 Ziemowit Laski <zlaski@apple.com>
6338 Mike Stump <mrs@apple.com>
6340 Yet more Objective-C++...
6342 * cp-objcp-common.h (cxx_get_alias_set): Move from
6344 (cxx_warn_unused_global_decl): Likewise.
6345 (cp_expr_size): Likewise.
6346 (cp_tree_size): Likewise.
6347 (cp_var_mod_type_p): Likewise.
6348 (cxx_initialize_diagnostics): Likewise.
6349 (cxx_types_compatible_p): Likewise.
6350 * cp-tree.h: to here.
6352 * lex.c (D_OBJC): Add.
6353 (init_reswords): Add.
6354 * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
6355 * parser.c: Add c-common.h include.
6356 * pt.c: Add c-common.h and cp-objcp-common.h includes.
6357 (template_args_equal): Use objc_comptypes as well.
6358 (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
6359 * semantics.c (do_poplevel): Remove static.
6361 * decl.c (objc_mark_locals_volatile): Don't change decls that are
6363 * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
6364 Objective C++ early enough.
6365 * lex.c (struct resword reswords): Add Objective-C++ support.
6366 * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
6367 (cp_parser_objc_message_receiver): Add.
6368 (cp_parser_objc_message_args): Likewise.
6369 (cp_parser_objc_message_expression): Likewise.
6370 (cp_parser_objc_encode_expression): Likewise.
6371 (cp_parser_objc_defs_expression): Likewise.
6372 (cp_parser_objc_protocol_expression): Likewise.
6373 (cp_parser_objc_selector_expression): Likewise.
6374 (cp_parser_objc_expression): Likewise.
6375 (cp_parser_objc_visibility_spec): Likewise.
6376 (cp_parser_objc_method_type): Likewise.
6377 (cp_parser_objc_protocol_qualifiers): Likewise.
6378 (cp_parser_objc_typename): Likewise.
6379 (cp_parser_objc_selector_p): Likewise.
6380 (cp_parser_objc_selector): Likewise.
6381 (cp_parser_objc_method_keyword_params): Likewise.
6382 (cp_parser_objc_method_tail_params_opt): Likewise.
6383 (cp_parser_objc_interstitial_code): Likewise.
6384 (cp_parser_objc_method_signature): Likewise.
6385 (cp_parser_objc_method_prototype_list): Likewise.
6386 (cp_parser_objc_method_definition_list): Likewise.
6387 (cp_parser_objc_class_ivars): Likewise.
6388 (cp_parser_objc_identifier_list): Likewise.
6389 (cp_parser_objc_alias_declaration): Likewise.
6390 (cp_parser_objc_class_declaration): Likewise.
6391 (cp_parser_objc_protocol_declaration): Likewise.
6392 (cp_parser_objc_protocol_refs_opt): Likewise.
6393 (cp_parser_objc_superclass_or_category): Likewise.
6394 (cp_parser_objc_class_interface): Likewise.
6395 (cp_parser_objc_class_implementation): Likewise.
6396 (cp_parser_objc_end_implementation): Likewise.
6397 (cp_parser_objc_declaration): Likewise.
6398 (cp_parser_objc_try_catch_finally_statement): Likewise.
6399 (cp_parser_objc_synchronized_statement): Likewise.
6400 (cp_parser_objc_throw_statement): Likewise.
6401 (cp_parser_objc_statement): Likewise.
6402 (cp_parser_primary_expression): Add Objective-C++.
6403 (cp_parser_statement): Likewise.
6404 (cp_parser_declaration): Likewise.
6405 (cp_parser_simple_type_specifier): Likewise.
6406 (cp_parser_type_name): Likewise.
6407 (cp_parser_parameter_declaration_list): Likewise.
6408 (cp_parser_member_declaration) Likewise.
6409 * tree.c: Include debug.h.
6410 * typeck.c (composite_pointer_type): Add Objective-C++ support.
6411 (finish_class_member_access_expr): Likewise.
6412 (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
6413 (build_modify_expr): Allow objc to generate write barriers.
6415 * Make-lang.in (cp/tree.o): Add debug.h.
6416 * tree.c (lvalue_p_1, case CONST_DECL): Add.
6418 2005-05-18 Jan Hubicka <jh@suse.cz>
6420 * method.c: Include tree-pass.h
6421 (use_thunk): Lower body before expanding.
6423 2005-05-17 Jakub Jelinek <jakub@redhat.com>
6426 * decl.c (maybe_deduce_size_from_array_init): Call
6427 cp_apply_type_quals_to_decl after completing array type.
6429 2005-05-16 Richard Henderson <rth@redhat.com>
6431 * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
6432 (build_library_fn): ... here.
6434 2005-05-12 Ian Lance Taylor <ian@airs.com>
6436 * cp-tree.h (cp_stmt_codes): Don't define.
6437 (statement_code_p): Declare.
6438 (STATEMENT_CODE_P): Define.
6439 * lex.c (statement_code_p): Define.
6440 (cxx_init): Use actual codes in stmt_codes initializer, not
6441 cp_stmt_codes macro. Initialize statement_code_p directly, rather
6442 than using INIT_STATEMENT_CODES.
6444 2005-05-09 Mark Mitchell <mark@codesourcery.com>
6446 * typeck.c (build_unary_op): Do not resort to address arithmetic
6447 when taking the address of a COMPONENT_REF.
6449 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
6451 * class.c (vtbl_init_data_s): Change the type of fns to
6453 (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
6454 Use VEC instead of VARRAY.
6456 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
6458 * mangle.c: Remove a reference to the MIPS -mint64 option.
6460 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
6462 * decl.c (wrapup_globals_for_namespace): Use VEC instead of
6464 * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
6465 * name-lookup.h (cp_binding_level): Change the type of
6466 static_decls to VEC(tree,gc)*.
6468 * mangle.c (globals): Change the type of substitutions to
6470 (dump_substitution_candidates, add_substitution,
6471 find_substitution, finish_mangling, init_mangle): Use VEC
6474 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
6476 * decl2.c (spew_debug): Remove.
6478 * decl2.c (ssdf_decls, start_static_storage_duration_function,
6479 generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
6481 * decl2.c (pending_statics, note_vague_linkage_var,
6482 cp_finish_file): Use VEC instead of VARRAY.
6483 (pending_statics_used): Remove.
6485 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
6487 * decl2.c (deferred_fns, note_vague_linkage_fn,
6488 cp_finish_file): Use VEC instead of VARRAY.
6490 2005-05-05 Mark Mitchell <mark@codesourcery.com>
6493 * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
6495 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
6497 * pt.c: Fix a comment typo.
6499 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
6501 * cp-tree.h (language_function): Change the type of
6502 x_local_names to VEC.
6503 * decl.c (push_local_name): Adjust uses of local_names.
6505 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
6507 * friend.c, lex.c, mangle.c, repo.c: Update copyright.
6509 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
6511 * class.c (local_classes, init_class_processing): Use VEC
6513 * cp-tree.h (local_classes): Likewise.
6514 * mangle.c (discriminator_for_local_entity): Likewise.
6515 * name-lookup.c (pushtag): Likewise.
6517 * class.c (current_lang_depth, push_lang_context,
6518 pop_lang_context): Use VEC instead of VARRAY.
6519 * cp-tree.h (saved_scope): Use VEC for lang_base instead of
6521 * name-lookup.c (push_to_top_level): Use VEC instead of
6524 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
6526 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
6527 for BUILT_IN_MD built-ins.
6529 2005-05-02 Michael Matz <matz@suse.de>
6532 * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
6534 (null_node): Remove.
6535 * lex.c (cxx_init): Move null_node initialisation to C common frontend.
6537 2005-04-25 Ian Lance Taylor <ian@airs.com>
6539 * cp-tree.def: Add EXPR_STMT.
6540 * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
6541 (EXPR_STMT_EXPR): Define.
6542 * cp-gimplify.c: Include "flags.h".
6543 (gimplify_expr_stmt): New static function.
6544 (cp_gimplify_expr): Handle EXPR_STMT.
6545 * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
6546 rather than pp_expression.
6547 (pp_cxx_statement): Handle EXPR_STMT.
6548 * dump.c (cp_dump_tree): Handle EXPR_STMT.
6549 * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
6552 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
6555 * rtti.c (ifnonnull): Cast the zero comparison operand
6556 to the correct type.
6558 2005-04-24 Jakub Jelinek <jakub@redhat.com>
6561 * class.c: Include cgraph.h.
6562 (cp_fold_obj_type_ref): Set node->local.vtable_method.
6563 * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
6565 2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
6567 * mangle.c (write_builtin_type): Handle integer types which are
6568 not one of the shared integer type nodes and emit a "vendor
6569 extended builtin type" with an encoding in the form of "u5int96".
6571 2005-04-24 Ian Lance Taylor <ian@airs.com>
6573 * cp-tree.def (USING_STMT): Change class to tcc_statement.
6574 (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
6575 (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
6576 (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
6578 2005-04-23 DJ Delorie <dj@redhat.com>
6580 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
6581 init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
6582 repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
6585 2005-04-22 Per Bothner <per@bothner.com>
6587 * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
6588 input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
6590 2005-04-22 Alexandre Oliva <aoliva@redhat.com>
6593 * name-lookup.c (push_overloaded_decl): Do not overload with
6594 non-duplicate anticipated built-in.
6596 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
6598 * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
6599 VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
6601 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
6603 * cp-tree.h: Adjust for new VEC API.
6604 Define VEC(tree_pair_s,gc).
6605 (struct save_scope): Adjust.
6606 (struct lang_type_class): Adjust.
6607 (unemitted_tinfo_decls): Adjust.
6608 * class.c (add_method, resort_type_method_vec,
6609 finish_struct_methods, struct find_final_overrider_data,
6610 dfs_find_final_overrider_pre, find_final_overrider,
6611 get_vcall_index, warn_hidden, walk_subobject_offsets,
6612 check_methods, fixup_inline_methods, end_of_class,
6613 warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
6614 add_vcall_offset): Adjust.
6615 * decl.c (xref_basetypes, finish_method): Adjust.
6616 * decl2.c (check_classfn): Adjust.
6617 * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
6618 * method.c (do_build_copy_constructor): Adjust.
6619 * name-lookup.c (new_class_binding, store_binding,
6620 store_bindings, store_class_bindings): Adjust.
6621 * name-lookup.h: Define VEC(cxx_saved_binding,gc),
6622 VEC(cp_class_binding,gc).
6623 (struct cp_binding_level): Adjust.
6624 * parser.c: Define VEC(cp_token_position,heap).
6625 (struct cp_lexer): Adjust.
6626 (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
6627 cp_lexer_save_tokens): Adjust.
6628 * pt.c (retrieve_specialization,
6629 check_explicit_specialization): Adjust.
6630 * rtti.c (unemitted_tinfo_decls): Adjust.
6631 (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
6632 get_pseudo_ti_desc): Adjust.
6633 * search.c (dfs_access_in_type, lookup_conversion_operator,
6634 lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
6635 dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
6636 * semantics.c: Define VEC(deferred_access,gc).
6637 (push_deferring_access_checks): Adjust.
6638 * typeck2.c (abstract_virtuals_error): Adjust.
6640 2005-04-20 Ian Lance Taylor <ian@airs.com>
6642 * cp-tree.def: Add STMT_EXPR.
6643 * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
6644 (STMT_EXPR_STMT): Define.
6645 * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
6647 (pp_cxx_expression): Likewise.
6648 (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
6649 * dump.c (cp_dump_tree): Handle STMT_EXPR.
6651 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
6653 * decl.c (expand_static_init): Call build2 and build3 instead
6656 * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
6658 2005-04-17 Ian Lance Taylor <ian@airs.com>
6660 * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
6661 * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
6663 (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
6664 (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
6666 * typeck.c (cxx_sizeof_or_alignof_type): Update call to
6667 c_sizeof_or_alignof_type for change in parameter type.
6669 2005-04-16 Mark Mitchell <mark@codesourcery.com>
6672 * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
6673 which sizeof/alignof is dependent, rather than just whether we are
6674 processing_template_decl.
6676 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
6678 * cp-tree.h (LOOKUP_GLOBAL): Remove.
6679 (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
6680 LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
6681 LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
6684 2005-04-15 Richard Henderson <rth@redhat.com>
6687 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
6689 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
6691 * cp-tree.h (lang_type_class): Remove redefined. Move
6692 java_interface into where redefined was. Increment the width
6694 (TYPE_REDEFINED): Remove.
6696 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
6698 * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
6699 CLASSTYPE_TEMPLATE_LEVEL): Remove.
6701 2005-04-11 Mark Mitchell <mark@codesourcery.com>
6703 * decl2.c (determine_visibility): Don't use export_class_data.
6704 (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
6705 TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
6707 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
6709 * cp-tree.h (cxx_alignof): Remove.
6711 * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
6713 * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
6714 CONV_STATIC_CAST): Remove.
6716 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
6718 * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
6720 * cp-tree.h (cp_deprecated): Remove.
6722 2005-04-08 Ian Lance Taylor <ian@airs.com>
6724 * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
6725 CONTINUE_STMT, SWITCH_STMT.
6726 * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
6727 BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
6728 (WHILE_COND, WHILE_BODY): Define.
6729 (DO_COND, DO_BODY): Define.
6730 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
6731 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
6732 * cp-gimplify.c (enum bc_t): Define.
6733 (struct cp_gimplify_ctx, ctxp): Define.
6734 (push_context, pop_context): New static functions.
6735 (begin_bc_block, finish_bc_block): New static functions.
6736 (build_bc_goto): New static function.
6737 (gimplify_cp_loop, gimplify_for_stmt): New static functions.
6738 (gimplify_while_stmt, gimplify_do_stmt): Likewise.
6739 (gimplify_switch_stmt): Likewise.
6740 (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
6741 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
6742 (cp_genericize): Call push_context and pop_context.
6743 * semantics.c (finish_break_stmt): Just call build_stmt
6744 (BREAK_STMT) rather than build_break_stmt.
6745 (finish_continue_stmt): Corresponding change.
6746 * decl.c (pop_switch): Update call to c_do_switch_warnings for new
6748 * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
6749 WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
6750 * dump.c (cp_dump_tree): Likewise.
6752 2005-04-08 Mark Mitchell <mark@codesourcery.com>
6755 * parser.c (cp_parser_type_specifier_seq): Add is_condition
6757 (cp_parser_new_type_id): Pass it.
6758 (cp_parser_condition): Likewise.
6759 (cp_parser_conversion_type_id): Likewise.
6760 (cp_parser_type_id): Likewise.
6761 (cp_parser_type_specifier_seq): In a condition, do not allow
6762 invalid type-specifier combinations.
6763 (cp_parser_exception_declaration): Adjust call to
6764 cp_parser_type_specifier_seq.
6766 * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
6767 * cp-tree.h (struct tinst_level): Add in_system_header_p.
6768 (TINST_IN_SYSTEM_HEADER_P): New macro.
6769 (make_tinst_level): Remove.
6770 * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
6771 the instantiated class.
6772 (push_tinst_level): Do not use make_tinst_level. Set
6773 TINST_IN_SYSTEM_HEADER_P.
6774 (pop_tinst_level): Likewise.
6775 (instantiate_class_template): Set in_system_header.
6776 (instantiate_pending_templates): Likewise.
6777 * tree.c (make_tinst_level): Remove.
6779 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
6781 * decl.c (start_decl): Apply pending #pragma weak regardless of
6784 2005-04-06 Mark Mitchell <mark@codesourcery.com>
6787 * pt.c (regenerate_decl_from_template): Copy attributes for
6788 parameters from the pattern to the instantiation.
6790 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6793 * cp-tree.def (OFFSET_REF): Correct comments.
6794 * init.c (build_offset_ref): Remove misleading comment.
6795 * typeck.c (build_unary_op): Handle pointer-to-member creation
6796 here, rather than ...
6797 (unary_complex_lvalue): ... here.
6799 2005-04-06 Jason Merrill <jason@redhat.com>
6802 * tree.c (stabilize_init): Don't bother trying to stabilize
6803 something with no side-effects.
6805 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6808 * decl.c (grokdeclarator): Correct attribute handling.
6810 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6813 * decl2.c (import_export_decl): Use non-COMDAT external linkage
6814 for virtual tables, typeinfo, etc. that will be emitted in only
6815 one translation unit on systems without weak symbols.
6817 2005-04-04 Mark Mitchell <mark@codesourcery.com>
6820 * parser.c (cp_parser_template_name): Fix thinko.
6822 2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
6825 * method.c (use_thunk): Protect covariant pointer return
6826 adjustments from NULL pointers.
6828 2005-04-04 Jan Hubicka <jh@suse.cz>
6830 * decl2.c (finish_objects): Revert my previous patch.
6831 (cp_finish_file): Likewise.
6833 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
6835 * pt.c: Fix comment typos.
6837 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
6840 * pt.c (more_specialized_fn): Member functions are unordered wrt
6841 non-members. Conversion operators are unordered wrt other
6844 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
6846 * call.c (add_template_candidates_real): Remove length parameter
6847 from fn_type_unification call.
6848 * class.c (resolve_address_of_overloaded_function): Likewise
6849 * cp-tree.h (fn_type_unification): Remove length parameter.
6850 * pt.c (get_bindings_overload): Remove.
6851 (get_bindings_real): Rename to ...
6852 (get_bindings): ... here. Remove length and strict
6853 parameters. Change return type flag to boolean. Remove original
6854 forwarding function.
6855 (determine_specialization): Adjust get_bindings call.
6856 (fn_type_unification): Remove length parameter. Adjust.
6857 (type_unification_real): Remove length parameter. Adjust.
6858 (resolve_overloaded_unification): Adjust get_bindings call.
6859 (try_one_overload): Simplify confusing cascaded if control flow.
6860 (unify): Remove length paramter from type_unification_real call.
6861 (most_specialized_instantiation): Adjust get_bindings calls.
6862 (most_specialized): Likewise.
6864 2005-03-31 Nathan Sidwell <nathan@codesourcery.com>
6866 PR c++/19203, implement DR 214
6867 * call.c (joust): Use more_specialized_fn.
6868 * cp-tree.h (DEDUCE_ORDER): Remove.
6869 (more_specialized): Replace with ...
6870 (more_specialized_fn): ... this.
6871 * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
6873 (type_unification_real): Remove DEDUCE_ORDER case.
6874 (more_specialized): Replace with ...
6875 (more_specialized_fn): ... this. Implement DR 214.
6876 (most_specialized_instantiation): Use get_bindings_real directly.
6878 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
6881 * call.c (build_new_op): Remove check for -Wsynth.
6883 2005-03-31 Jan Hubicka <jh@suse.cz>
6885 * decl2.c (finish_objects): Mark ctor as needed.
6886 (cp_finish_file): Output variables only in nonunit-at-a-time.
6888 2005-03-29 Richard Henderson <rth@redhat.com>
6891 * decl.c (cp_complete_array_type): Rename from complete_array_type.
6892 Use the new complete_array_type in c-common.c. Update all callers.
6893 * cp-tree.h (cp_complete_array_type): Update to match.
6895 2005-03-24 Geoffrey Keating <geoffk@apple.com>
6897 * typeck.c (build_static_cast_1): Allow scalar_cast between
6898 any integral, floating, or enumeration type.
6900 2005-03-24 Steven Bosscher <stevenb@suse.de>
6902 * typeck.c (comptypes): First determine if the types are compatible
6903 from a target-independent point of view. Check target attributes
6906 * class.c (build_base_path):
6907 (build_vbase_offset_vtbl_entries):
6908 (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
6909 * error.c (dump_expr): Likewise.
6910 * init.c (build_zero_init, expand_cleanup_for_base,
6911 build_vec_delete_1): Likewise.
6912 * mangle.c (write_integer_cst): Likewise.
6913 * method.c (thunk_adjust): Likewise.
6914 * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
6915 * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
6916 * typeck.c (build_ptrmemfunc_access_expr,
6917 (get_member_function_from_ptrfunc): Likewise.
6919 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
6921 * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
6923 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
6925 * cp-tree.h (perform_integral_promotions): Remove.
6926 (default_conversion): Add.
6928 2005-03-22 Mark Mitchell <mark@codesourcery.com>
6930 * parser.c (cp_parser_warn_min_max): New function.
6931 (cp_parser_binary_expression): Use it.
6932 (cp_parser_assignment_operator_opt): Likewise.
6933 (cp_parser_operator): Likewise.
6935 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6938 * decl.c (start_preparsed_function): Robustify.
6940 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6943 * parser.c (cp_parser_class_head): Return NULL_TREE when
6944 encountering a redefinition.
6946 2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
6950 * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
6953 2005-03-21 Paolo Carlini <pcarlini@suse.de>
6957 * init.c (emit_mem_initializers): Don't crash on undefined
6960 2005-03-21 Paolo Carlini <pcarlini@suse.de>
6963 * semantics.c (finish_stmt_expr_expr): Return immediately
6964 if error_operand_p (expr).
6966 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
6968 * cp-tree.h (lvalue_or_else, lvalue_p): New.
6969 * typeck.c (lvalue_or_else): New. Call lvalue_error.
6971 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6974 * decl.c (decls_match): Compare context of VAR_DECL.
6976 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6979 * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
6980 Check the return value of cp_parser_nested_name_specifier.
6982 2005-03-18 Dale Johannesen <dalej@apple.com>
6984 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
6986 2005-03-18 Paolo Carlini <pcarlini@suse.de>
6989 * parser.c (cp_parser_diagnose_invalid_type_name):
6990 Check TYPE_BINFO (current_class_type) before attempting
6991 to emit inform messages.
6993 2005-03-17 Paolo Carlini <pcarlini@suse.de>
6996 * cp-tree.h (grok_op_properties): Change return type to void.
6997 * decl.c (grok_op_properties): Return early - don't check the
6998 arity - in case of a static member or an operator that cannot
6999 be non-member; tidy a bit.
7001 2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
7004 * pt.c (contains_dependent_cast_p): Remove.
7005 (fold_non_dependent_expr): Don't use it.
7006 (value_dependent_expression_p): Use a switch statement.
7007 reference_exprs can be dependent.
7009 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7013 * name-lookup.c (pushtag): Skip template parameter scope when
7014 scope is ts_global. Don't push tag into template parameter
7016 * pt.c (instantiate_class_template): Reorder friend class
7017 template substitution to handle non-dependent friend class
7018 that hasn't been previously declared.
7020 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7022 Friend class name lookup 5/n
7024 * cp-tree.h (pushtag): Adjust declaration.
7025 * decl.c (lookup_and_check_tag): Call lookup_type_scope if
7027 (xref_tag): Adjust call to pushtag. Make hidden class visible.
7028 (start_enum): Adjust call to pushtag.
7029 * name-lookup.c (ambiguous_decl): Ignore hidden names.
7030 (qualify_lookup): Change return type to bool.
7031 (hidden_name_p): New function.
7032 (lookup_namespace_name, unqualified_namespace_lookup,
7033 lookup_name_real): Use it.
7034 (lookup_type_scope): Update comments.
7035 (maybe_process_template_type_declaration): Change parameter name
7036 from globalize to is_friend.
7037 (pushtag): Change globalize parameter of type int to tag_scope.
7038 Hide name if introduced by friend declaration.
7039 * name-lookup.h (hidden_name_p): Add declaration.
7040 * parser.c (cp_parser_lookup_name): Don't deal with hidden name
7042 * pt.c (push_template_decl_real): Make hidden class template
7044 (lookup_template_class, instantiate_class_template): Adjust call
7046 * semantics.c (begin_class_definition): Likewise.
7047 * rtti.c (init_rtti_processing, build_dynamic_cast_1,
7048 tinfo_base_init, emit_support_tinfos): Use ts_current instead of
7051 2005-03-13 Mark Mitchell <mark@codesourcery.com>
7054 * pt.c (determine_specialization): Reject non-specializations.
7056 2005-03-11 Per Bothner <per@bothner.com>
7058 * cp-tree.h (struct cp_declarator): New id_loc field.
7059 * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
7060 location using c_lex_with_flags, instead of input_location.
7061 (cp_parser_direct_declarator): Set declarator's id_loc from
7064 2005-03-10 Jakub Jelinek <jakub@redhat.com>
7066 PR c++/18384, c++/18327
7067 * decl.c (reshape_init_array): Use UHWI type for max_index_cst
7068 and index. Convert max_index to size_type_node if it isn't
7069 host_integerp (, 1).
7071 2005-03-09 Mark Mitchell <mark@codesourcery.com>
7074 * pt.c (tsubst_decl): Apply array-to-pointer and
7075 function-to-pointer conversions to function arguments.
7076 (regenerate_decl_from_template): Likewise.
7078 2005-03-09 Paolo Carlini <pcarlini@suse.de>
7081 * decl.c (complete_array_type): In pedantic mode, return
7082 3 for an empty initializer list as the initializer for an
7083 array of unknown bound (8.5.1/4).
7084 (maybe_deduce_size_from_array_init): Fix final test to use
7087 2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
7090 * pt.c (contains_dependent_cast_p): New.
7091 (fold_non_dependent_expr): Call it.
7093 2005-03-08 Mark Mitchell <mark@codesourcery.com>
7096 * cp-tree.h (target_type): Remove.
7097 * decl.c (layout_var_decl): Remove #if 0'd code.
7098 (cp_finish_decl): Remove dead code.
7099 * init.c (build_vec_init): When determining whether or not the
7100 element type has an asignment operator, look through all array
7102 * typeck.c (target_type): Remove.
7104 2005-03-07 Mark Mitchell <mark@codesourcery.com>
7106 * class.c (finish_struct_1): Do not warn about non-virtual
7107 destructors in Java classes.
7109 2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7112 * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
7113 * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
7115 * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
7116 Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
7117 (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
7120 2005-03-02 Alexandre Oliva <aoliva@redhat.com>
7122 * name-lookup.c (push_overloaded_decl): Don't error if the new
7123 decl matches the old one.
7124 * decl.c (redeclaration_error_message): Likewise.
7126 2005-03-01 Per Bothner <per@bothner.com>
7128 * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
7129 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
7131 2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
7134 * class.c (update_vtable_entry_for_fn): Don't crash on invalid
7137 * cp-tree.g (THUNK_TARGET): Expand comment.
7138 * method.c (use_thunk): Make sure we also use the target, if that
7141 2005-02-27 Jakub Jelinek <jakub@redhat.com>
7144 * decl.c (cxx_comdat_group): Put thunks for
7145 TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
7146 comdat group as the thunk target.
7148 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7150 * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
7151 parser.c: Fix comment typo(s).
7153 2005-02-24 Jakub Jelinek <jakub@redhat.com>
7156 * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
7157 initializes a char/wchar_t array.
7159 2005-02-23 Mark Mitchell <mark@codesourcery.com>
7162 * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
7163 with internal linkage.
7165 2005-02-23 Alexandre Oliva <aoliva@redhat.com>
7167 * decl.c (grokvardecl): Don't exempt anonymous types from having
7168 linkage for variables that have linkage other than "C".
7170 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
7172 * cp-objcp-common.h, error.c: Update copyright.
7174 2005-02-22 Mark Mitchell <mark@codesourcery.com>
7177 * decl.c (start_decl_1): Don't clear TREE_READONLY.
7178 (cp_finish_decl): Likewise.
7179 (complete_vars): Call cp_apply_type_quals_to_decl.
7180 * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
7181 cases where that's not valid.
7184 * init.c (integral_constant_value): Iterate if the value of a decl
7185 is itself a constant.
7188 * parser.c (cp_parser_class_head): Check for redefintions here.
7189 * semantics.c (begin_class_definition): Not here.
7192 * decl2.c (build_anon_union_vars): Add type parameter.
7193 (finish_anon_union): Pass it.
7196 * error.c (dump_expr): Do not print the body of a BIND_EXPR.
7197 Handle STATEMENT_LIST.
7200 * parser.c (cp_parser_direct_declarator): Always complain about
7201 non-constant array bounds when in a function scope.
7202 * semantics.c (finish_id_expression): Do not mark dependent names
7205 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
7209 * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
7210 * decl.c (grokdeclarator): Pedwarn about qualifying a function
7212 Add qualifiers when declaring a typedef of a function type.
7213 Member function pointers pick up the qualifiers of the typedef
7214 used to declare them.
7215 Don't complain about creating cv-qualified function types.
7216 Complain about qualified function typedefs that are used to
7217 declare non-static member functions or free functions.
7218 Use cp_apply_type_quals_to_decl.
7219 (start_preparsed_function): Use cp_apply_type_quals_to_decl.
7220 (grokclassfn): Use cp_apply_type_quals_to_decl.
7221 * error.c (dump_type_suffix): Print qualifiers for function
7223 * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
7224 (tsubst): When substituting a function type into a member
7225 pointer type, pass along the qualifiers.
7226 (unify): Unify member pointers to member function pointers.
7227 * tree.c (cp_build_qualified_type_real): Function types may be
7228 qualified. This includes restrict qualifiers.
7229 * typeck.c (cp_apply_type_quals_to_decl): New function to replace
7230 use of c_apply_type_quals_to_decl. Drops qualifiers that are being
7231 added to function types.
7233 2005-02-20 Zack Weinberg <zack@codesourcery.com>
7236 * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
7237 c_common_to_target_charset. Delete bogus comment.
7239 2005-02-18 Richard Henderson <rth@redhat.com>
7242 * except.c (do_get_exception_ptr): New.
7243 (expand_start_catch_block): Use it.
7245 2005-02-19 Jakub Jelinek <jakub@redhat.com>
7247 * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
7248 if type is not error_mark_node.
7250 2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
7253 * decl2.c (grokfield): Do not apply attributes to template parameters
7254 as they are ignored by tsubst anyway.
7256 2005-02-18 Jakub Jelinek <jakub@redhat.com>
7259 * decl.c (start_decl_1): Clear TREE_READONLY flag if
7260 its type has TYPE_NEEDS_CONSTRUCTING.
7261 (complete_vars): Likewise.
7263 2005-02-17 Alexandre Oliva <aoliva@redhat.com>
7266 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
7267 template along with TYPE_SIZE.
7270 * semantics.c (perform_deferred_access_checks): Use
7271 get_deferred_access_checks to get the top of the stack.
7273 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
7276 * class.c (add_implicitly_declared_members, check_field_decl)
7277 (check_field_decls, check_bases): Remove arguments, tests and
7278 assignments of cant_have_default_ctor-related variables.
7280 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
7282 * decl2.c (mark_used): Set the source location of the used decl to
7283 the current input location here...
7284 * method.c (synthesize_method): ... not here. Set input_location
7285 from the decl instead.
7287 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
7290 * parser.c (cp_parser_late_parsing_for_member): Use
7291 current_function_decl as scope to push to and from.
7294 * pt.c (check_explicit_specialization): Make sure namespace
7295 binding lookup found an overloaded function.
7296 (lookup_template_function): Just assert FNS is an overloaded
7300 * decl.c (grokdeclarator): Check for error mark node in ptrmem
7303 2005-02-14 Alexandre Oliva <aoliva@redhat.com>
7306 * decl.c (redeclaration_error_message): Report redefinition of
7307 pure virtual function.
7309 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
7312 * class.c (build_simple_base_path): Build the component_ref
7314 (update_vtable_entry_for_fn): Walk the covariant's binfo chain
7315 rather than using lookup_base.
7316 * search.c (dfs_walk_once): Add non-recursive assert check.
7317 * typeck.c (build_class_member_access_expr): It is possible for
7318 the member type to be both const and volatile.
7320 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7324 * pt.c (maybe_check_template_type): Remove.
7325 * cp-tree.h (maybe_check_template_type): Remove prototype.
7326 * name-lookup.c (maybe_process_template_type_declaration): Don't
7327 use maybe_check_template_type.
7329 2005-02-11 Richard Henderson <rth@redhat.com>
7332 * pt.c (get_mostly_instantiated_function_type): Save and restore
7333 flag_access_control instead of push/pop_access_scope.
7335 2005-02-10 Mark Mitchell <mark@codesourcery.com>
7338 * decl.c (reshape_init): Issue warnings about missing braces.
7340 2005-02-11 Kazu Hirata <kazu@cs.umass.edu>
7342 * cp-tree.def, except.c, ptree.c: Update copyright.
7344 2005-02-09 Mark Mitchell <mark@codesourcery.com>
7347 * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
7348 attempting name lookup.
7350 * parser.c (cp_parser_unqualified_id): Initialize type_decl.
7353 * call.c (initialize_reference): Robustify.
7356 * decl.c (grokdeclarator): Check for invalid use of destructor
7360 * parser.c (cp_parser_unqualified_id): Avoid creating destructor
7361 names with invalid types.
7364 * parser.c (cp_parser_direct_declarator): Allow type-dependent
7365 expressions as array bounds.
7368 * parser.c (cp_parser_attributes_list): Allow empty lists.
7370 2005-02-08 Mark Mitchell <mark@codesourcery.com>
7373 * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
7374 (check_bases): Give warnings about a base class with a
7375 non-virtual destructor, even if it is implicit.
7376 (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
7377 (maybe_warn_about_overly_private_class): Don't use
7378 TYPE_HAS_DESTRUCTOR.
7379 (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
7380 (check_for_override): Give it external linkage.
7381 (add_implicitly_declared_members): Generate destructors lazily.
7382 (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
7383 TYPE_HAS_DESTRUCTOR.
7384 (check_bases_and_members): Call check_methods before
7386 (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
7387 TYPE_HAS_DESTRUCTOR.
7388 (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
7389 * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
7390 * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
7391 (lang_type_class): Add lazy_destructor.
7392 (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
7393 (CLASSTYPE_DESTRUCTORS): Robustify.
7394 (TYPE_HAS_DESTRUCTOR): Remove.
7395 (check_for_override): Declare.
7396 (build_vbase_delete): Remove.
7397 * cvt.c (convert_to_void): Issue errors about pseudo-destructor
7399 * decl.c (cxx_maybe_build_cleanup): Remove dead code.
7400 * except.c (dtor_nothrow): Lazily create destructors if necessary.
7401 (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
7402 * init.c (build_delete): Lazily create destructors, if necessary.
7403 (build_vbase_delete): Remove.
7404 * method.c (locate_dtor): Simplify.
7405 (implicitly_declare_fn): Add support for destructors.
7406 * parser.c (cp_parser_lookup_name): Lazily create destructors, if
7408 * pt.c (check_explicit_specialization): Don't use
7409 TYPE_HAS_DESTRUCTOR.
7410 (instantiate_class_template): Likewise.
7411 * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
7412 * rtti.c (emit_support_tinfos): Robustify.
7413 * search.c (lookup_fnfields_1): Lazily create destructors.
7414 * typeck.c (build_class_member_access_expr): Remove
7415 PSEUDO_DTOR_EXPR handling.
7416 (lookup_destructor): Likewise.
7418 2005-02-08 Kazu Hirata <kazu@cs.umass.edu>
7420 * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
7423 2005-02-07 Mark Mitchell <mark@codesourcery.com>
7425 * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
7426 on boolean variables.
7427 (cp_lexer_stop_debugging): Likewise.
7429 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
7432 * parser.c (cp_parser_pure_specifier): Emit a specific error
7433 message with an invalid pure specifier.
7434 * decl2.c (grok_function_init): Remove.
7435 (grokfield): An initializer for a method is a always a pure
7438 2005-02-02 Matt Austern <austern@apple.com>
7441 * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
7442 * parser.c (cp_parser_postfix_expression): Accept function call in
7443 constant expression if builtin_valid_in_constant_expr_p is true
7445 * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
7446 * semantics.c (finish_id_expression): Accept function call in constant
7447 expression if builtin_valid_in_constant_expr_p is true for that
7449 * tree.c (builtin_valid_in_constant_expr_p): New.
7451 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7454 * pt.c (check_instantiated_args): Improve error message.
7455 Fix logic when to print its second part.
7457 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7459 * cp-tree.h (complete_type_or_else): Remove macro.
7460 (complete_type_or_diagnostic): Rename to complete_type_or_else
7461 and remove last argument.
7462 * typeck.c (complete_type_or_diagnostic): Rename to
7463 complete_type_or_else and remove last argument.
7465 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7467 * cp-tree.h (commonparms): Remove prototype.
7468 (convert_arguments): Likewise.
7469 (PFN_FROM_PTRMEMFUNC): Remove.
7470 * typeck.c (commonparms): Make static.
7471 (convert_arguments): Add prototype. Make static.
7472 (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
7474 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7476 * parser.c (cp_parser_primary_expression): Don't complain about
7477 floating-point literals in integral constant expressions when
7480 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
7482 * parser.c (cp_parser_template_id): Revert comment patch too.
7487 * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
7488 Issue an error when creating the template id.
7489 * pt.c (fn_type_unification): Return early if the explicit
7490 template arg list is an error_mark_node.
7492 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7494 * decl.c (build_enumerator): Do not issue duplicate error messages
7495 about invalid enumeration constants.
7496 * parser.c (cp_parser_non_integral_constant_expression): Always
7497 set parser->non_integral_constant_expression_p.
7498 (cp_parser_primary_expression): Add cast_p parameter. Issue
7499 errors about invalid uses of floating-point literals in
7501 (cp_parser_postfix_expression): Add cast_p parameter.
7502 (cp_parser_open_square_expression): Pass it.
7503 (cp_parser_parenthesized_expression_list): Add cast_p parameter.
7504 (cp_parser_unary_expression): Likewise.
7505 (cp_parser_new_placement): Pass it.
7506 (cp_parser_direct_new_declarator): Likewise.
7507 (cp_parser_new_initializer): Likewise.
7508 (cp_parser_cast_expression): Add cast_p parameter.
7509 (cp_parser_binary_expression): Likewise.
7510 (cp_parser_question_colon_clause): Likewise.
7511 (cp_parser_assignment_expression): Likewise.
7512 (cp_parser_expression): Likewise.
7513 (cp_parser_constant_expression): If an integral constant
7514 expression is invalid, return error_mark_node.
7515 (cp_parser_expression_statement): Pass cast_p.
7516 (cp_parser_condition): Likewise.
7517 (cp_parser_iteration_statement): Likewise.
7518 (cp_parser_jump_statement): Likewise.
7519 (cp_parser_mem_initializer): Likewise.
7520 (cp_parser_template_argument): Likewise.
7521 (cp_parser_parameter_declaration): Likewise.
7522 (cp_parser_initializer): Likewise.
7523 (cp_parser_throw_expression): Likewise.
7524 (cp_parser_attribute_list): Likewise.
7525 (cp_parser_simple_cast_expression): Likewise.
7526 (cp_parser_functional_cast): Likewise.
7527 (cp_parser_late_parsing_default_args): Likewise.
7528 (cp_parser_sizeof_operand): Save/restore
7529 non_integral_constant_expression_p.
7531 2005-01-31 Mike Stump <mrs@apple.com>
7533 * parser.c (cp_lexer_new_main): Get the first token, first, before
7536 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7538 * decl.c (start_decl): Add missing parentheses.
7540 2005-01-30 Mark Mitchell <mark@codesourcery.com>
7543 * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
7544 * decl.c (duplicate_decls): Do not discard
7545 DECL_IMPLICIT_INSTANTIATION when merging declarations.
7546 (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
7547 variables that do not have DECL_USE_TEMPLATE.
7550 * decl.c (grokdeclarator): Refactor code so that qualified names
7551 are never allowed as the declarator in a typedef.
7554 * name-lookup.c (do_nonmember_using_decl): Avoid overloading
7555 builtin declarations.
7558 * call.c (convert_like_real): Inline call to
7559 dubious_conversion_warnings here.
7560 * cp-tree.h (dubious_conversion_warnings): Remove.
7561 * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
7562 setting TREE_NEGATED_INT.
7563 * typeck.c (dubious_conversion_warnings): Remove.
7566 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
7569 2005-01-28 Mark Mitchell <mark@codesourcery.com>
7572 * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
7576 * pt.c (redeclare_class_template): Robustify.
7578 2005-01-27 Steven Bosscher <stevenb@suse.de>
7580 * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
7581 instead of SWITCH_EXPR ones.
7582 * pt.c (tsubst_expr): Likewise.
7583 * semantics.c (begin_switch_stmt, finish_switch_cond,
7584 finish_switch_stmt): Likewise.
7586 2005-01-26 J"orn Rennecke <joern.rennecke@st.com>
7589 * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
7591 2005-01-25 Andrew Pinski <pinskia@physics.uc.edu>
7593 * class.c (abort_fndecl_addr): New variable.
7594 (build_vtbl_initializer): If we have a pure virtual function
7595 share the abort function's address.
7596 Include gt-cp-class.h at the end.
7597 * config-lang.in (gtfiles): Add cp/class.c.
7599 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7601 * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
7602 (pp_cxx_function_definition): Make static.
7603 * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
7604 (pp_cxx_function_definition): Likewise.
7606 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7608 * name-lookup.c (print_binding_level): Make static.
7609 (constructor_name_full): Make static inline.
7610 (current_decl_namespace): Make static.
7611 * name-lookup.h (constructor_name_full): Remove prototype.
7612 (print_binding_level): Likewise.
7613 (current_decl_namespace): Likewise.
7615 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7617 * decl.h (debug_bindings_indentation): Remove.
7619 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
7621 * typeck.c: Fix a comment typo.
7623 2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
7626 * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
7628 (tsubst): Use fold_decl_constant_value in place of a bare call to
7629 integral_constant_value.
7631 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
7633 * typeck.c (more_qualified_p): Remove.
7634 * cp-tree.h: Remove the corresponding prototype.
7636 2005-01-19 Matt Austern <austern@apple.com>
7638 * typeck.c (comptypes): Handle return code from objc_comptypes
7641 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
7643 * cp-tree.h, name-lookup.h: Remove unused prototypes.
7645 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7648 * semantics.c (finish_id_expression): Disable access checking for
7649 already lookuped FIELD_DECL.
7651 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
7653 * decl.c (delete_block): Remove.
7654 * cp-tree.h: Remove the corresponding prototype.
7656 * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
7657 walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
7659 * cp-tree.h: Remove the corresponding prototypes.
7661 * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
7662 cp_update_decl_after_saving, name_p): Remove.
7663 * cp-tree.h: Remove the corresponding prototypes.
7665 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
7668 * semantics.c (finish_asm_stmt): Strip nops off
7669 input memory operands.
7671 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
7673 * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
7674 typeck2.c: Update copyright.
7676 2005-01-16 Kazu Hirata <kazu@cs.umass.edu>
7678 * class.c (get_enclosing_class): Remove.
7679 * cp-tree.h: Remove the corresponding prototypes.
7681 * cvt.c (convert_lvalue): Remove.
7682 * cp-tree.h: Remove the corresponding prototype.
7684 * pt.c (tinst_for_decl): Remove.
7685 * cp-tree.h: Remove the corresponding prototypes.
7687 * tree.c (hash_chainon): Remove.
7688 * cp-tree.h: Remove the corresponding prototypes.
7690 2005-01-15 Jakub Jelinek <jakub@redhat.com>
7693 * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
7694 of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
7696 2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7698 * Make-lang.in (cp-warn): Don't append $(WERROR).
7700 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
7702 * cp-tree.h: Fix a comment typo.
7704 2005-01-07 Nathan Sidwell <nathan@codesourcery.com>
7707 * pt.c (tsubst_qualified_id): Call convert_from_reference.
7709 2005-01-06 Mark Mitchell <mark@codesourcery.com>
7712 * class.c (add_implicitly_declared_members): Remove dead code.
7713 * decl.c (grokfndecl): Add sfk parameter. Use it do set
7715 (grokdeclarator): Adjust calls to grokfndecl.
7716 * method.c (implicitly_declare_fn): Improve documentation.
7717 * parser.c (cp_parser_direct_declarator): Do not consider a
7718 function to be a constructor if the containing class was
7719 originally anonymous.
7721 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7724 * search.c (lookup_field_1): Handle using declaration in
7725 class template partial specialization.
7727 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7730 * pt.c (push_access_scope): Handle friend defined in class.
7731 (pop_access_scope): Likewise.
7733 2005-01-06 Nathan Sidwell <nathan@codesourcery.com>
7736 * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
7737 (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
7738 array-new handling code. Use build_x_binary_op.
7740 2005-01-05 Nathan Sidwell <nathan@codesourcery.com>
7743 * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
7744 * name-lookup.h (push_scope): Return pushed scope, not flag.
7745 * name-lookup.c (push_scope): Return scope that should be popped,
7747 * decl.c (start_decl): Adjust.
7748 (grokfndecl): Adjust scope push and pop.
7749 * decl2.c (check_classfn): Likewise.
7750 * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
7751 cp_parser_init_declarator, cp_parser_direct_declarator,
7752 cp_parser_class_specifier, cp_parser_class_head,
7753 cp_parser_lookup_name,
7754 cp_parser_constructor_declarator_p): Likewise.
7755 * pt.c (instantiate_class_template,
7756 resolve_typename_type): Likewise.
7758 2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7761 * parser.c (cp_parser_unqualified_id): Do not issue error message
7762 for typedef-name as destructor declarator when performing an
7763 uncommitted tentative parse.
7765 2005-01-01 Steven Bosscher <stevenb@suse.de>
7768 * decl.c (finish_function): Fix comment. Annotate the compiler
7769 generated return with the current file name and line 0.