1 2007-02-26 Mark Mitchell <mark@codesourcery.com>
3 * semantics.c (expand_or_defer_fn): Call c_record_cdtor_fn.
4 * decl2.c (cp_write_gloabl_declarations): Call c_build_cdtor_fns.
6 2007-02-25 Mark Mitchell <mark@codesourcery.com>
8 * cp-tree.h (static_ctors): Remove.
9 * cp-tree.h (static_dtors): Likewise.
10 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Adjust for
11 refactoring of tree_map hierarchy.
12 (decl_shadowed_for_var_insert): Likewise.
13 * semantics.c (expand_body): Use c_expand_body.
14 (expand_or_defer_fn): Don't update static_ctors or static_dtors.
15 * decl2.c (static_ctors): Remove.
16 (static_dtors): Likewise.
17 (generate_ctor_or_dtor_function): Pass NULL_TREE to
18 objc_generate_static_init_call. Do not call static_[cd]tors.
19 (generate_ctor_and_dtor_functions_for_priority): Do not check for
21 (cp_write_global_declarations): Likewise.
23 2007-02-23 Richard Guenther <rguenther@suse.de>
25 * class.c (note_name_declared_in_class): Make declaration
26 changes meaning a pedwarn.
28 2007-02-22 Michael Matz <matz@suse.de>
31 * cp-tree.h (TFF_UNQUALIFIED_NAME): New formatting flag.
32 * error.c (dump_aggr_type, dump_simple_decl, dump_decl,
33 dump_function_decl): Guard emitting outer scopes by new flag.
34 * cp-lang.c (cxx_dwarf_name): New function.
35 (LANG_HOOKS_DWARF_NAME): Define to cxx_dwarf_name.
36 * pt.c (classtype_mangled_name, mangle_class_name_for_template):
38 (push_template_decl_real, lookup_template_class): Remove calls
41 2007-02-19 Mark Mitchell <mark@codesourcery.com>
43 * call.c (build_new_method_call): Ensure that explicit calls of
44 destructors have type "void".
46 2007-02-19 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
48 * typeck.c (build_binary_op): Replace -Wstring-literal-comparison
49 and -Walways-true with -Waddress.
50 * cvt.c (convert_to_void): Replace unconditional warning with
53 2007-02-18 Kazu Hirata <kazu@codesourcery.com>
55 * decl.c, tree.c: Fix comment typos.
57 2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
60 * semantics.c (finish_stmt_expr_expr): Set TREE_TYPE of the
61 statement expression if we had an error mark node.
63 2007-02-15 Sandra Loosemore <sandra@codesourcery.com>
64 Brooks Moses <brooks.moses@codesourcery.com>
65 Lee Millward <lee.millward@codesourcery.com>
67 * cp-tree.def (AGGR_INIT_EXPR): Adjust documentation.
68 Change class to tcc_vl_exp.
70 * call.c (build_call): Use build_call_list instead
72 (build_over_call): Likewise.
73 (build_new_method_call): Use build_min_non_dep_call_list
74 instead of build_min_non_dep.
76 * error.c (dump_call_expr_args): New function.
77 (dump_aggr_init_expr_args): New function.
78 (dump_expr) <AGGR_INIT_EXPR, CALL_EXPR, INDIRECT_REF>: Use them.
79 Update to use new CALL_EXPR and AGGR_INIT_EXPR accessor macros.
81 * cvt.c (convert_to_void): Use build_call_array instead
82 of build3; use new AGGR_INIT_EXPR accessor macros.
84 * mangle.c (write_expression): Use TREE_OPERAND_LENGTH
85 instead of TREE_CODE_LENGTH.
87 * dump.c (cp_dump_tree) <AGGR_INIT_EXPR>: Update to use new
88 AGGR_INIT_EXPR accessor macros.
90 * cp-gimplify.c (cp_gimplify_init_expr): Use
91 AGGR_INIT_EXPR_SLOT to set the slot operand.
93 * cp-tree.h (AGGR_INIT_EXPR_FN): New macro.
94 (AGGR_INIT_EXPR_SLOT): New macro.
95 (AGGR_INIT_EXPR_ARG): New macro.
96 (aggr_init_expr_nargs): New macro.
97 (AGGR_INIT_EXPR_ARGP): New macro.
98 (aggr_init_expr_arg_iterator): New.
99 (init_aggr_init_expr_arg_iterator): New.
100 (next_aggr_init_expr_arg): New.
101 (first_aggr_init_expr_arg): New.
102 (more_aggr_init_expr_args_p): New.
103 (FOR_EACH_AGGR_INIT_EXPR_ARG): New.
104 (stabilize_aggr_init): New declaration.
105 (build_min_non_dep_call_list): Likewise.
107 * tree.c (process_aggr_init_operands): New function.
108 (build_aggr_init_array) New function.
109 (build_cplus_new): Update to use new CALL_EXPR and
110 AGGR_INIT_EXPR accessor macros. Replace use of build3 with
111 build_aggr_init_array.
112 (build_min_non_dep_call_list) New function.
113 (build_min_nt): Assert input code parameter is not a variable
114 length expression class.
115 (build_min, build_min_non_dep): Likewise.
116 (cp_tree_equal) <CALL_EXPR>: Iterate through the arguments
117 to check for equality instead of recursing. Handle tcc_vl_exp
119 (stabilize_call): Update to only handle CALL_EXPRs, not
120 AGGR_INIT_EXPRs; use new CALL_EXPR accessor macros.
121 (stabilize_aggr_init): New function.
122 (stabilize_init): Use it.
124 * cxx-pretty-print.c (pp_cxx_postfix_expression)
125 <AGGR_INIT_EXPR, CALL_EXPR>: Update to use new CALL_EXPR and
126 AGGR_INIT_EXPR accessor macros and argument iterators.
128 * pt.c (tsubst_copy) <CALL_EXPR>: Replace build_nt with
129 build_vl_exp. Iterate through the operands, recursively
131 (tsubst_copy_and_build) <CALL_EXPR>: Update to use new
132 CALL_EXPR accessor macros.
133 (value_dependent_expression_p) <default>: Handle tcc_vl_exp
134 tree code classes. Use TREE_OPERAND_LENGTH instead of
137 * semantics.c (finish_call_expr): Use build_nt_call_list
139 (simplify_aggr_init_expr): Update to use new AGGR_INIT_EXPR
140 accessor macros. Use build_call_array to construct the
141 CALL_EXPR node instead of build3
143 * decl2.c (build_offset_ref_call_from_tree): Use
144 build_nt_call_list and build_min_non_dep_call_list instead
145 of build_min_nt and build_min_non_dep.
147 * parser.c (cp_parser_postfix_expression) <CPP_OPEN_PAREN>:
148 Use build_nt_call_list instead of build_min_nt.
150 2007-02-15 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
153 * call.c (build_conditional_expr): Improve error message.
155 2007-02-13 Dirk Mueller <dmueller@suse.de>
157 * friend.c (do_friend): Annotate warning about friend
158 declarations in templates with OPT_Wnon_template_friend.
159 Convert informal message from warning() to inform().
161 2007-02-12 Simon Martin <simartin@users.sourceforge.net>
162 Mark Mitchell <mark@codesourcery.com>
165 * pt.c (do_decl_instantiation): Detect type mismatches in explicit
166 instantiations for variables.
168 2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
171 * cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings.
172 Check warn_unused_value just once.
174 2007-02-11 Mark Mitchell <mark@codesourcery.com>
177 * pt.c (determine_specialization): Use skip_artificial_parms_for.
178 (fn_type_unificiation): Likewise.
179 (get_bindings): Likewise.
181 o2007-02-06 Mark Mitchell <mark@codesourcery.com>
184 * decl.c (finish_function): Use DECL_REPLACEABLE.
185 * tree.c (cp_cannot_inline_tree_fn): Likewise.
187 2007-02-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
189 * parser.c (cp_parser_primary_expression): Reformat overly long lines.
191 2007-02-10 Richard Henderson <rth@redhat.com>, Jakub Jelinek <jakub@redhat.com>
193 * decl.c (grokvardecl): Don't error if !have_tls.
194 (grokdeclarator): Likewise.
195 * parser.c (cp_parser_omp_threadprivate): Likewise.
197 2007-02-07 Jakub Jelinek <jakub@redhat.com>
200 * cp-gimplify.c (cp_genericize_r): Don't dereference invisiref
201 parameters and result decls in omp clauses.
202 (cxx_omp_privatize_by_reference): Pass also invisiref PARM_DECLs
205 2007-02-05 Dirk Mueller <dmueller@suse.de>
208 * parser.c (cp_parser_class_specifier): Always initialize bases.
210 2007-02-05 Paolo Bonzini <bonzini@gnu.org>
212 * cp-tree.h (OMP_ATOMIC_CODE): Delete.
213 (OMP_ATOMIC_DEPENDENT_P): Rewrite.
214 * pt.c (tsubst_expr): Adjust for new format of dependent OMP_ATOMIC
216 * semantics.c (finish_omp_atomic): Store a whole expression node
217 in operand 1, and integer_zero_node in operand 0, for dependent
218 OMP_ATOMIC. Rewrite to make flow easier to understand.
220 2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
222 * decl.c (grokdeclarator): Use OPT_Wreturn_type instead of 0.
224 2007-02-04 Kazu Hirata <kazu@codesourcery.com>
226 * class.c, cp-tree.h, decl.c, decl2.c, g++spec.c, init.c,
227 parser.c, pt.c, tree.c, typeck.c: Follow spelling conventions.
229 2007-02-03 Douglas Gregor <doug.gregor@gmail.com>
231 * parser.c (cp_lexer_get_preprocessor_token): Attach the C++0x
232 keyword warning to -Wc++0x-compat.
234 2007-02-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
236 * decl.c (grokdeclarator): Update documentation.
238 2007-02-02 Jakub Jelinek <jakub@redhat.com>
241 * decl.c (grokdeclarator): If __thread is used together with
242 a storage class other than extern and static, clear thread_p
243 after issuing diagnostics and fall through to checking the
246 2007-01-30 Roger Sayle <roger@eyesopen.com>
248 * error.c (dump_type_suffix): Avoid use of cp_build_binary_op when
249 calculating the size of an array (to avoid recursive errors).
251 2007-01-30 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
254 * typeck.c (build_binary_op): Fix logic for warning. Move warning
256 * call.c (convert_like_real): Don't warn when converting to
259 2007-01-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
261 * decl.c (pop_label): Replace warning with call to
262 warn_for_unused_label.
264 2007-01-28 Andrew Pinski <pinskia@gmail.com>
267 * semantics.c (finish_pseudo_destructor_expr): Check the
268 destrutor name by calling check_dtor_name.
270 2007-01-24 Douglas Gregor <dgregor@osl.iu.edu>
272 * lex.c (D_CPP0X): Rename.
274 (reswords): D_CPP0X -> D_CXX0X.
275 (init_reswords): Ditto.
276 * parser.c (cp_lexer_get_preprocessor_token): Warn about the use
277 of C++0x keywords as identifiers.
279 2007-01-23 Simon Martin <simartin@users.sourceforge.net>
282 * decl.c (duplicate_decls): Don't reset DECL_INVALID_OVERRIDER_P for
285 2007-01-23 Ian Lance Taylor <iant@google.com>
287 * typeck.c (convert_for_assignment): Only warn about a = b = c
288 when converting to bool.
290 2007-01-23 Roger Sayle <roger@eyesopen.com>
292 * call.c (null_ptr_cst_p): Replace use of TREE_CONSTANT_OVERFLOW with
294 * typeck.c (ignore_overflows): Remove the remaining uses of
295 TREE_CONSTANT_OVERFLOW.
297 2007-01-20 Jan Hubicka <jh@suse.cz>
299 * decl2.c (start_objects, start_static_storage_duration_function):
300 Do not make the functions uninlinable.
302 2007-01-17 Ian Lance Taylor <iant@google.com>
304 * class.c (add_method): Call VEC_reserve_exact rather than passing
305 a negative size to VEC_reserve.
307 2007-01-11 Simon Martin <simartin@users.sourceforge.net>
310 * tree.c (cp_tree_equal): Properly handle MODOP_EXPR trees.
312 2007-01-10 Mark Mitchell <mark@codesourcery.com>
315 * decl.c (make_typename_type): If the qualified name is not a
316 type, issue an error.
317 * parser.c (cp_parser_elaborated_type_specifier): Fix comment
320 2007-01-08 Geoffrey Keating <geoffk@apple.com>
322 * rtti.c: Include target.h.
323 (emit_support_tinfos): If ! targetm.cxx.library_rtti_comdat (),
324 don't emit typeinfo for fundamental types as weak.
325 * Make-lang.in (cp/rtti.o): Update and correct dependencies.
327 2007-01-08 Richard Guenther <rguenther@suse.de>
329 * cvt.c (cp_convert_to_pointer): Use build_int_cst_type.
331 2007-01-08 Mark Shinwell <shinwell@codesourcery.com>
333 * call.c (standard_conversion): Pass flag to
334 vector_types_convertible_p to disallow emission of note.
335 * typeck.c (convert_for_assignment): Pass flag to
336 vector_types_convertible_p to allow emission of note.
337 (ptr_reasonably_similar): Pass flag to vector_types_convertible_p
338 to disallow emission of note.
340 2007-01-07 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
343 * typeck.c (build_binary_op): Call overflow_warning if
344 TREE_OVERFLOW_P is true for the result and not for any of the
347 2007-01-06 Lee Millward <lee.millward@codesourcery.com>
350 * class.c (add_method): Don't wait until template
351 instantiation time to complain about duplicate methods.
353 2007-01-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
356 * semantics.c (finish_unary_op_expr): Warn only if result
357 overflowed and operands did not.
359 2007-01-05 Ian Lance Taylor <iant@google.com>
361 * typeck.c (build_binary_op): Warn about comparing a non-weak
364 2007-01-05 Douglas Gregor <doug.gregor@gmail.com>
366 * pt.c (tsubst): Propagate the need for structural equality checks
367 when reducing the level of template parameters.
369 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
371 * pt.c: Fix a comment typo.
373 2006-01-02 Ian Lance Taylor <iant@google.com>
375 * semantics.c (maybe_convert_cond): Optionally warn when using an
376 assignment as a condition.
377 * typeck.c (convert_for_assignment): Optionally warn about
378 assigning the result of an assignment to a bool.
380 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
382 * pt.c (canonical_template_parms): Correct typo in comment.
384 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
386 * typeck.c (structural_comptypes): Renamed from "comptypes".
387 (comptypes): Use canonical type information to perform fast type
388 comparison. When VERIFY_CANONICAL_TYPES, verify that the
389 canonical type comparison returns the same results as we would see
390 from the current, structural check. Support COMPARE_STRUCTURAL
391 when we need structural checks.
392 * decl.c (typename_compare): Fix comment.
393 (build_typename_type): TYPENAME_TYPE nodes require structural
394 equality checks, because they resolve different based on the
396 (make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
397 require structural equality checks (for now).
398 (build_ptrmemfunc_type): Build the canonical pointer to member
400 (compute_array_index_type): Whenever we build a new index type
401 to represent the size of an array in a template, we need to mark
402 this index type as requiring structural equality. This goes for
403 arrays with value-dependent sizes with the current ABI, or all
405 * tree.c (cplus_array_hash): New.
406 (struct cplus_array_info): New.
407 (cplus_array_compare): New.
408 (cplus_array_htab): New.
409 (build_cplus_array_type_1): Use a hash table to cache the array
410 types we build. Build the canonical array type for each array
412 (cp_build_qualified_type_real): When building a cv-qualified array
413 type, use the hash table of array types and build canonical array
415 (bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
416 use structural equality (for now).
417 * cp-tree.h (COMPARE_STRUCTURAL): New.
418 * pt.c (canonical_template_parms): New.
419 (canonical_type_parameter): New.
420 (process_template_parm): Find the canonical type parameter.
421 (lookup_template_class): When we have named the primary template
422 type, set the canonical type for our template class to the primary
423 template type. If any of the template arguments need structural
424 equality checks, the template class needs structural equality
426 (tsubst): When reducing the level of a template template
427 parameter, we require structural equality tests for the resulting
428 parameter because its template parameters have not had their types
429 canonicalized. When reducing a template type parameter, find the
430 canonical reduced type parameter.
431 (any_template_arguments_need_structural_equality_p): New.
433 2006-12-31 Simon Martin <simartin@users.sourceforge.net>
436 * parser.c (cp_parser_primary_expression): Return error_mark_node when
437 a statement-expression is found outside of a function body.
439 2006-12-28 Kazu Hirata <kazu@codesourcery.com>
441 * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
444 * decl2.c: Fix a comment typo.
446 2006-12-21 Andrew Pinski <pinskia@gmail.com>
449 * decl.c (cxx_builtin_function): Only copy the decl if adding
450 it to the std namespace.
452 2006-12-21 Andrew Pinski <pinskia@gmail.com>
455 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
457 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
459 * decl.c: Fix a coment typo.
461 2006-12-18 Ian Lance Taylor <iant@google.com>
463 * decl.c (start_preparsed_function): Add support for
464 -Wmissing-declarations.
466 2006-12-16 Simon Martin <simartin@users.sourceforge.net>
469 * cp-tree.h (struct deferred_access_check): New structure to represent a
470 deferred access check. It replaces the previous representation as a tree.
471 (get_deferred_access_checks): Return a vector of struct
472 deferred_access_check instead of a tree list.
473 (perform_access_checks): Take a vector of struct deferred_access_check
474 instead of a tree list.
475 * semantics.c (struct deferred_access): Store the deferred access checks
476 as a vector of struct deferred_access_check instead of a tree list.
477 (push_deferring_access_checks): Handle the change in struct
479 (get_deferred_access_checks): Likewise.
480 (pop_to_parent_deferring_access_checks): Likewise.
481 (perform_or_defer_access_check): Likewise.
482 (perform_access_checks): Take a vector of struct deferred_access_check
483 instead of a tree list.
484 * parser.c (struct tree_check): New structure to store various data
485 associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
486 (struct cp_token): Changed the value field to be a union with a pointer to
487 a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
488 tokens and a tree field for all other tokens.
489 (eof_token): Adjusted due to the change in struct cp_token.
490 (cp_lexer_get_preprocessor_token): Likewise.
491 (cp_lexer_purge_token): Likewise.
492 (cp_lexer_purge_tokens_after): Likewise.
493 (cp_lexer_print_token): Likewise.
494 (cp_parser_error): Likewise.
495 (cp_parser_identifier): Likewise.
496 (cp_parser_string_literal): Likewise.
497 (cp_parser_primary_expression): Likewise.
498 (cp_parser_unqualified_id): Likewise.
499 (cp_parser_parenthesized_expression_list): Likewise.
500 (cp_parser_storage_class_specifier_opt): Likewise.
501 (cp_parser_function_specifier_opt): Likewise.
502 (cp_parser_type_specifier): Likewise.
503 (cp_parser_simple_type_specifier): Likewise.
504 (cp_parser_initializer_list): Likewise.
505 (cp_parser_member_specification_opt): Likewise.
506 (cp_parser_attribute_list): Likewise.
507 (cp_parser_objc_expression): Likewise.
508 (cp_parser_objc_protocol_qualifiers): Likewise.
509 (cp_parser_objc_selector): Likewise.
510 (cp_parser_objc_declaration): Likewise.
511 (cp_parser_objc_statement): Likewise.
512 (cp_parser_omp_clause_name): Likewise.
513 (cp_parser_omp_clause_default): Likewise.
514 (cp_parser_omp_clause_schedule): Likewise.
515 (cp_parser_omp_parallel): Likewise.
516 (cp_parser_initial_pragma): Likewise.
517 (pragma_lex): Likewise.
518 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
519 (cp_parser_nested_name_specifier_opt): Likewise.
520 Use cp_token::u::tree_check_value to save the token's value, the
521 associated deferred checks and its qualifying scope.
522 (cp_parser_template_id): Likewise.
523 (cp_parser_template_declaration_after_export): Adjusted the call to
524 get_deferred_access_checks.
525 (cp_parser_init_declarator): Take the access checks as a vector of struct
526 deferred_access_check instead of a tree list.
527 (cp_parser_single_declaration): Likewise.
528 (cp_parser_perform_template_parameter_access_checks): Likewise.
529 (cp_parser_simple_declaration): Adjusted the call to
530 cp_parser_init_declarator.
531 (cp_parser_explicit_specialization): Adjusted the call to
532 cp_parser_single_declaration.
534 2006-12-13 Ian Lance Taylor <iant@google.com>
538 * parser.c (cp_parser_expression_stack_entry): Add field
540 (cp_parser_binary_expression): Track tree code of left hand side
541 of expression. Use it when calling build_x_binary_op.
542 (cp_parser_selection_statement): Add if_p parameter. Change all
543 callers. Warn about ambiguous else.
544 (cp_parser_statement): Add if_p parameter. Change all callers.
545 (cp_parser_implicitly_scoped_statement): Likewise.
546 * typeck.c (build_x_binary_op): Add parameters arg1_code and
547 arg2_code. Change all callers. Call warn_about_parentheses.
548 * cp-tree.h (build_x_binary_op): Update declaration.
550 2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
552 * decl.c (build_enumerator): Update error message to match C
555 2006-12-11 Jan Hubicka <jh@suse.cz>
557 * decl2.c (var_finalized_p): Update for renamed varpool functions.
559 2006-12-09 Zack Weinberg <zackw@panix.com>
561 * parser.c (yydebug, enum pragma_omp_clause): Delete.
563 2006-12-07 Mark Mitchell <mark@codesourcery.com>
566 * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
567 (explicit_class_specialization_p): Declare.
568 * pt.c (explicit_class_specialization_p): New function.
569 * parser.c (cp_parser_init_declarator): Check correct number of
570 template parameters for in-class function definitions.
571 (cp_parser_check_declrator_template_parameters): Stop looking for
572 template classes when we find an explicit specialization.
574 2006-12-07 Lee Millward <lee.millward@codesourcery.com>
577 * cp_parser_elaborated_type_specifier: Check
578 the return value of check_elaborated_type_specifier.
580 2006-12-06 Mark Mitchell <mark@codesourcery.com>
583 * parser.c (cp_parser_init_declarator): Reject initialization of
586 2006-12-05 Mark Mitchell <mark@codesourcery.com>
589 * decl2.c (check_member_template): Move check for member
590 templates in local classes to ...
591 * parser.c (cp_parser_template_declaration_after_export):
595 * decl.c (check_array_designated_initializer): New function.
596 (maybe_deduce_size_from_array_init): Use it.
597 (reshape_init_array): Likewise.
599 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
601 Merge from gimple-tuples-branch.
603 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
605 * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
606 (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
607 (cxx_omp_clause_copy_ctor): Same.
608 (cxx_omp_clause_assign_op): Same.
610 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
612 * cp-tree.h (union lang_tree_node): Gimple statements do not
614 (TREE_INDIRECT_USING): Look in base.
616 2006-12-04 Jan Hubicka <jh@suse.cz>
618 * cp-objcp-common.c (cp_expr_size): Return NULL in the case
621 2006-12-04 Mark Mitchell <mark@codesourcery.com>
624 * pt.c (tsubst_decl): Disallow variables of function type.
627 * call.c (add_builtin_candidate): Do not permit NULL pointer
628 constants to be compared with template parameters.
630 2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
632 * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
633 Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
635 2006-12-03 Richard Henderson <rth@redhat.com>
636 Andrew Pinski <pinskia@gmail.com>
639 * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
641 2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
644 * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
646 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
648 * name-lookup.c: Follow spelling conventions.
650 2006-12-01 Geoffrey Keating <geoffk@apple.com>
652 * decl.c (poplevel): Check DECL_INITIAL invariant.
653 (duplicate_decls): Preserve DECL_INITIAL when eliminating
654 a new definition in favour of an old declaration.
655 (start_preparsed_function): Define and document value of
656 DECL_INITIAL before and after routine.
657 (finish_function): Check DECL_INITIAL invariant.
659 (cp_parser_function_definition_from_specifiers_and_declarator):
660 Skip duplicate function definitions.
662 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
665 * typeck.c (type_after_usual_arithmetic_conversions):
666 Fix assertion for vector types.
667 (build_binary_op): Use temporary for inner type of vector types.
669 2006-12-01 Ryan Mansfield <rmansfield@qnx.com>
672 * typeck.c (build_binary_op): Fix pointer to member function
673 comparison for ptrmemfunc_vbit_in_delta targets.
675 2006-12-01 Dirk Mueller <dmueller@suse.de>
678 * decl.c (grokdeclarator): Warn for type qualifiers on return
679 type for non-dependent types.
680 * pt.c (tsubst_function_type): Warn for type qualifiers on
681 return type for dependent types.
683 2006-11-30 Geoffrey Keating <geoffk@apple.com>
685 * rtti.c (get_tinfo_decl): Handle return value from
686 pushdecl_top_level_and_finish.
688 2006-11-29 Lee Millward <lee.millward@codesourcery.com>
691 * parser.c (cp_parser_class_head): Move processing
692 of any base classes to...
693 (cp_parser_class_specifier) ...here. Take an extra
694 tree* parameter for any base classes. Only process
695 them if the opening brace was found.
697 2006-11-28 Jakub Jelinek <jakub@redhat.com>
700 * decl.c (grokfndecl): Check main's type after applying
701 attributes, not before.
703 2006-11-27 Mark Mitchell <mark@codesourcery.com>
705 * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
706 entries for a primary construction virtual table.
708 2006-11-26 Mark Mitchell <mark@codesourcery.com>
711 * parser.c (cp_parser): Add in_function_body.
712 (cp_parser_new): Initialize it.
713 (cp_parser_primary_expression): Use parser->in_function_body
714 instead of at_function_scope_p.
715 (cp_parser_asm_definition): Likewise.
716 (cp_parser_direct_declarator): Likewise.
717 (cp_parser_class_specifier): Clear parser->in_function_body.
718 (cp_parser_constructor_declarator_p): Use parser->in_function_body
719 instead of at_function_scope_p.
720 (cp_parser_function_body_after_declarator): Set
721 parser->in_function_body.
723 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
725 * cp-tree.def (STATIC_ASSERT): New.
726 * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
727 * error.c (dump_decl): Handle STATIC_ASSERT.
728 * cp-tree.h (STATIC_ASSERT_CONDITION): New.
729 (STATIC_ASSERT_MESSAGE): New.
730 (STATIC_ASSERT_SOURCE_LOCATION): New.
731 (struct tree_static_assert): New.
732 (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
733 (union lang_tree_node): Add static_assertion.
734 (finish_static_assert): Declare.
735 * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
736 (pp_cxx_declaration): Handle STATIC_ASSERT.
737 * pt.c (instantiate_class_template): Handle
738 STATIC_ASSERT members.
739 (tsubst_expr): Handle STATIC_ASSERT statements.
740 * semantics.c (finish_static_assert): New.
741 * lex.c (D_CPP0X): New.
742 (reswords): Add static_assert keyword.
743 (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
744 * parser.c (cp_parser_block_declaration): Parse static
746 (cp_parser_static_assert): New.
747 (cp_parser_member_declaration): Parse static assertions.
749 2006-11-21 Jakub Jelinek <jakub@redhat.com>
752 * decl.c (cp_finish_decl): Check for value dependent brace enclosed
756 * cp-tree.h (WANT_VECTOR): Define.
757 (WANT_ARITH): Add WANT_VECTOR.
758 * cvt.c (build_expr_type_conversion): Handle vector types.
759 * typeck.c (build_unary_op): Add WANT_VECTOR to
760 build_expr_type_conversion flags.
762 2006-11-20 Simon Martin <simartin@users.sourceforge.net>
765 * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
766 extra argument that represents the declaration to use to print
767 potential error messages.
768 * init.c (build_offset_ref): Adjusted the call to
769 perform_or_defer_access_check.
770 * class.c (alter_access, resolve_address_of_overloaded_function):
772 * decl.c (make_typename_type, make_unbound_class_template): Likewise.
773 * search.c (lookup_member): Likewise.
774 * friend.c (add_friend): Likewise.
775 * parser.c (cp_parser_template_id,
776 cp_parser_pre_parsed_nested_name_specifier): Likewise.
777 * semantics.c (finish_non_static_data_member,
778 check_accessibility_of_qualified_id, finish_id_expression): Likewise.
779 (pop_to_parent_deferring_access_checks, perform_access_checks,
780 perform_or_defer_access_check): Adjusted the call to enforce_access.
781 * call.c (enforce_access): Use the new extra argument to build the
783 (build_op_delete_call): Adjusted the call to
784 perform_or_defer_access_check.
785 (build_over_call): Likewise.
787 2006-11-16 Dirk Mueller <dmueller@suse.de>
789 * name-lookup.c (begin_scope): Use GGC_CNEW instead of
792 2006-11-13 Roger Sayle <roger@eyesopen.com>
794 * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
795 base type info initializer has the correct type.
797 2006-11-13 Mark Mitchell <mark@codesourcery.com>
800 * pt.c (coerce_template_parms): Do not skip_evaluation while
801 substituting template arguments.
803 2006-11-11 Richard Guenther <rguenther@suse.de>
805 * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
806 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
808 2006-11-03 Roger Sayle <roger@eyesopen.com>
810 * call.c (build_op_delete_call): Test user-visible type against
811 size_type_node, instead of against the internal type, sizetype.
812 * class.c (type_requires_array_cookie): Likewise.
813 * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
814 handling of TYPE_IS_SIZETYPE.
815 * typeck.c (type_after_usual_arithmetic_conversions): Remove
816 special case handling of TYPE_IS_SIZETYPE.
817 (comptypes): Likewise.
819 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
821 * decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
822 if targetm.cxx.use_atexit_for cxa_atexit.
823 (start_cleanup_fn): Likewise.
824 (register_dtor_fn): Likewise.
826 2006-09-25 Geoffrey Keating <geoffk@apple.com>
828 * decl2.c (cp_write_global_declarations): Rename from
830 * cp-lang.c (finish_file): Don't call cp_finish_file.
831 * cp-tree.h (cp_write_global_declarations): Rename from
833 * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
834 cp_write_global_declarations.
836 2006-10-31 Geoffrey Keating <geoffk@apple.com>
838 * name-lookup.c (get_anonymous_namespace_name): New.
839 (push_namespace_with_attribs): Use get_anonymous_namespace_name.
840 * decl2.c (start_objects): Update for rename of
841 get_file_function_name_long.
843 2006-10-30 Dirk Mueller <dmueller@suse.de>
846 * decl.c (grokdeclarator): Duplicate diagnostic message
847 for easier translation.
848 * decl.c (grokdeclarator): Fix line-wrapping.
850 2006-10-30 Dirk Mueller <dmueller@suse.de>
853 * decl.c (grokfndecl): Use check_main_parameter_types.
855 2006-10-30 Dirk Mueller <dmueller@suse.de>
858 * decl.c (grokfndecl): Duplicate warning message for
861 2006-10-30 Dirk Mueller <dmueller@suse.de>
863 * typeck.c (build_unary_op): Fix indenting. Use G_().
865 2006-10-29 Dirk Mueller <dmueller@suse.de>
868 * typeck.c (build_unary_op): Duplicate warning message
869 for easier translation.
871 2006-10-29 Dirk Mueller <dmueller@suse.de>
874 * typeck.c (build_array_ref): Warn for char subscriptions
877 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
879 * decl.c: Fix a comment typo.
881 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
884 * typeck.c (build_unary_op): Use same_type_p when comparing to
887 2006-10-29 Dirk Mueller <dmueller@suse.de>
890 * typeck.c (build_binary_op): Duplicate warning message
891 for better translation.
893 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
895 * decl.c (builtin_function_1): Move common code to
896 add_builtin_function.
897 (builtin_function): Rename to cxx_builtin_function.
898 Change the signature.
899 * call.c: Include langhooks.h.
900 (build_java_interface_fn_ref): Replace calls to
901 builtin_function with add_builtin_function.
902 * Make-lang.in (cp/call.o): Depend on langhooks.h.
903 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
904 cxx_builtin_function.
905 * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
906 Change the signature.
908 2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
911 * rtti.c (tinfo_base_init): The type info string is always global.
913 2006-10-20 Lee Millward <lee.millward@codesourcery.com>
914 Mark Mitchell <mark@codesourcery.com>
917 * decl2.c (grokbitfield): Detect invalid non-integral
918 types earlier when possible.
920 2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
923 * typeck2.c (digest_init): Raise error upon attempts to
924 initialize arrays with variables.
926 2006-10-17 Lee Millward <lee.millward@codesourcery.com>
929 * cp-tree.h (xref_basetypes): Return bool instead of void.
930 * decl.c (xref_basetypes): Adjust definition. Return false
931 if the class bases are invalid.
932 * parser.c (cp_parser_class_head): Check the return value
935 2006-10-17 Mark Mitchell <mark@codesourcery.com>
938 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
942 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
944 (cp_parser_constructor_declarator_p): Use it.
945 (cp_parser_check_type_definition): Return a value indicating
946 whether or not the definition is valid.
947 (cp_parser_enum_specifier): Skip invalid enum definitions.
949 2006-10-17 Mark Mitchell <mark@codesourcery.com>
952 * typeck2.c (build_functional_cast): Don't zero-initialize
953 non-PODs; instead, call their constructors.
954 * method.c (synthesize_method): Always build mem-initializers, if
955 we're synthesizing the default constructor.
957 2006-10-17 Mark Mitchell <mark@codesourcery.com>
960 * decl.c (reshape_init_class): Move check for designated
962 * parser.c (cp_parser_initializer_list): ... here.
963 * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
965 2006-10-16 Mark Mitchell <mark@codesourcery.com>
968 * typeck2.c (process_init_constructor_array): Reword comment.
969 * pt.c (tsubst_copy_and_built): Call reshape_init before calling
973 * parser.c (cp_parser_using_declaration): Stop parsing when
974 something goes wrong with an access declaration.
977 * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
978 types when their sizes are required. Refine test for VLAs.
981 * parser.c (cp_parser_template_argument): Don't consider "&var" a
982 possible constant-expression.
983 * pt.c (convert_nontype_argument): Refine handling of arguments of
986 2006-10-13 Mark Mitchell <mark@codesourcery.com>
989 * parser.c (function_declarator_p): New function.
990 (cp_parser_init_declarator): Use it.
991 (cp_parser_member_declaration): Likewise.
993 2006-10-12 Mark Mitchell <mark@codesourcery.com>
996 * rtti.c (get_tinfo_decl): Refuse to create type info objects for
997 variably modified types.
999 2006-10-12 Lee Millward <lee.millward@codesourcery.com>
1002 * decl.c (start_decl): Return error_mark_node if a
1003 function is initialized like a variable.
1004 (check_var_type): If a variable of field is declared void,
1005 set the type to error_mark_node.
1006 (grokdeclarator): Check the return type of check_var_type.
1007 * class.c (finish_struct_1): Robustify.
1009 2006-10-11 Mark Mitchell <mark@codesourcery.com>
1012 * decl.c (check_initializer): Issue errors about trying to
1013 initialize arrays whose elements have variable size.
1015 2006-10-11 Lee Millward <lee.millward@codesourcery.com>
1018 * cp-tree (struct cp_decl_specifier_seq): Rename to
1019 conflicting_specifiers_p
1020 * parser.c (cp_parser_set_storage_class): Set
1021 conflicting_specifiers_p for the input decl specifier
1022 if a typedef specifier is present. Rename uses of
1023 multiple_specifiers_p to conflicting_specifiers_p.
1024 (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
1025 class specifier has already been set for this declaration,
1026 set conflicting_specifiers_p to true on the decl_specs.
1027 * decl.c (grokdeclarator): Rename uses of
1028 multiple_specifiers_p to conflicting_specifiers_p.
1030 2006-10-10 Brooks Moses <bmoses@stanford.edu>
1032 * Make-lang.in: Added "c++.pdf" target support.
1034 2006-10-10 Richard Guenther <rguenther@suse.de>
1036 PR rtl-optimization/29323
1037 * decl.c (finish_function): Set TREE_NOTHROW only for
1038 functions that bind local.
1040 2006-10-09 Richard Henderson <rth@redhat.com>
1042 Revert emutls patch.
1044 2006-10-04 Richard Henderson <rth@redhat.com>
1045 Jakub Jelinek <jakub@redhat.com>
1047 * decl.c (grokvardecl): Don't error if !have_tls.
1048 (grokdeclarator): Likewise.
1049 * parser.c (cp_parser_omp_threadprivate): Likewise.
1051 2006-10-03 Mark Mitchell <mark@codesourcery.com>
1054 * friend.c (do_friend): Improve comments; add assertion.
1055 * parser.c (cp_parser_nested_name_specifier_opt): Resolve
1056 typenames for qualified names used in declarations, even when
1057 caching qualified name lookup.
1060 * decl2.c (grokfield): Don't handle access declarations here.
1061 * parser.c (cp_parser_using_declaration): Handle access
1063 (cp_parser_block_declaration): Adjust calls to
1064 cp_parser_using_declaration.
1065 (cp_parser_member_declaration): Likewise. Use
1066 cp_parser_using_declaration to look for access_declarations.
1068 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1071 * init.c (build_new): Check for invalid init.
1073 2006-10-02 Mark Mitchell <mark@codesourcery.com>
1076 * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
1077 not try to actually evaluate sizeof for a VLA type.
1079 2006-10-01 Mark Mitchell <mark@codesourcery.com>
1082 * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
1083 * semantics.c (baselink_for_fns): Build a baselink, even when
1084 processing a template.
1087 * parser.c (cp_parser_postfix_dot_deref_expression): Use
1088 BASELINK_ACCESS_BINFO as the qualifying scope when calling
1089 adjust_result_of_qualified_name_lookup.
1091 2006-09-25 Lee Millward <lee.millward@codesourcery.com>
1095 * cp-tree.h (redeclare_class_template): Adjust declaration
1096 to return bool instead of void.
1097 * pt.c (redeclare_class_template): Update definition.
1098 Return false on error.
1099 * decl.c (xref_tag): Return error_mark_node if
1100 redeclare_class_template returned false.
1103 * cp-tree.h (begin_specialization): Return bool
1105 * pt.c (check_specialization_scope): Likwise.
1106 Adjust comment. Return false if a specialization
1107 isn't permitted in the current scope.
1108 (begin_specialization): Use the return value of
1109 check_specialization_scope.
1110 * parser.c (cp_parser_explicit_specialization): If
1111 begin_specialization returned false, skip the rest
1112 of the specialization.
1114 2006-09-21 Mark Mitchell <mark@codesourcery.com>
1117 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
1120 2006-09-21 Lee Millward <lee.millward@codesourcery.com>
1123 * decl.c (shadow_tag): Return error_mark_node
1124 if maybe_process_partial_specialization failed.
1127 * decl.c (grokdeclarator): Return error_mark_node on
1128 declaration with two or more data types.
1130 2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
1133 * class.c (check_for_override): Remove dllimport from virtual
1136 2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
1139 * parser.c (cp_parser_labeled_statement): Return nothing. Do
1140 not take in_statement_expr and in_compound as arguments. Rename
1141 to cp_parser_label_for_labeled_statement. Parse only the label,
1143 (cp_parser_statement): Parse the statement of a labeled-statement
1144 from here, using tail recursion.
1146 2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
1149 * init.c (build_zero_init): If we have an error mark node for
1150 the array size, return.
1152 2006-09-10 Mark Mitchell <mark@codesourcery.com>
1155 * cp-objcp-common.c (cxx_staticp): New function.
1156 * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
1157 * cp-tree.h (cxx_staticp): New function.
1159 2006-09-09 Jason Merrill <jason@redhat.com>
1162 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
1164 2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1167 * parser.c (cp_parser_skip_until_found): Rename to
1168 cp_parser_skip_to_end_of_template_parameter_list. Remove last two
1169 parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
1170 Reorganize. Adjust comment.
1171 (cp_parser_template_declaration_after_export): Adjust call.
1172 (cp_parser_enclosed_template_argument_list): Likewise.
1174 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
1177 * init.c (build_new_1): Build a distinct type copy
1178 for the array type that was returned from
1179 build_cplus_array_type.
1181 2006-09-07 Jason Merrill <jason@redhat.com>
1184 * cvt.c (convert_to_void): Enable previous change.
1187 * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
1190 2006-09-07 Simon Martin <simartin@users.sourceforge.net>
1193 * pt.c (fold_non_dependent_expr): Make sure expr is not
1194 dereferenced if it is NULL.
1196 2006-09-06 Zak Kipling <zak@transversal.com>
1199 * decl.c (make_rtl_for_nonlocal_decl),
1200 (start_preparsed_function): Don't use lbasename on
1201 input_filename when calling get_fileinfo.
1202 * semantics.c (begin_class_definition): Likewise.
1203 * lex.c (cxx_make_type): Likewise.
1204 (handle_pragma_interface): Call get_fileinfo on input_filename,
1205 not on the parameter to the directive.
1207 2006-09-06 Mark Mitchell <mark@codesourcery.com>
1210 * pt.c (tsubst): Use fold_non_dependent_expr to fold array
1214 * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
1217 2006-09-06 Jason Merrill <jason@redhat.com>
1220 * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
1221 * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
1222 * tree.c (build_cplus_new): Set it.
1225 * cvt.c (convert_to_void): Replace a subexpression with no side
1226 effects with void_zero_node.
1227 * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
1228 (get_first_fn): Ditto.
1229 * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
1231 2006-09-05 Jason Merrill <jason@redhat.com>
1234 * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
1235 where the name is a type used incorrectly.
1238 * typeck.c (maybe_warn_about_returning_address_of_local): Look
1239 through COMPONENT_REF and ARRAY_REF.
1242 * name-lookup.c (do_class_using_decl): Try to find the base even
1243 if bases_dependent_p.
1244 * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
1247 * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
1249 2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
1251 PR 23287 Revert my 2006-09-01 patch.
1252 * parser.c: Reverted.
1255 2006-09-02 Lee Millward <lee.millward@codesourcery.com>
1261 * parser.c (cp_parser_template_parameter_list): Add
1262 invalid template parameters to the parameter list as
1265 2006-09-02 Jakub Jelinek <jakub@redhat.com>
1268 * except.c (build_throw): Only set current_function_returns_abnormally
1269 if cfun is not NULL.
1272 * repo.c (repo_file): Remove.
1273 (open_repo_file, reopen_repo_file_for_write): Return fopened
1274 FILE * instead of setting global repo_file variable.
1275 (init_repo): Adjust caller.
1276 (finish_repo): Likewise. Return instead of goto out before
1277 reopen_repo_file_for_write has been called.
1279 2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
1282 * semantics.c (finish_call_expr): Add assert.
1283 * name-lookup.c (lookup_arg_dependent): Check we found an overload
1287 * parser.c (cp_parser_id_expression): Add member_p
1288 argument. Update all callers.
1289 (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
1290 the object's scope, if valid.
1291 (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
1293 (cp_parser_postfix_dot_deref_expression): Set object_scope.
1294 * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
1296 2006-08-30 Jason Merrill <jason@redhat.com>
1299 * class.c (check_field_decls): Don't unset TYPE_PACKED until all
1300 the fields have been processed.
1302 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
1305 * call.c (build_x_va_arg): Remove the reference type
1306 from the type before creating the pointer type.
1308 2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
1311 * except.c (expand_start_catch_block): Use correct types for bitwise
1314 2006-08-28 Jason Merrill <jason@redhat.com>
1317 * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
1318 fields can't be packed.
1321 * cvt.c (convert_to_void): Don't automatically load from volatiles
1322 of TREE_ADDRESSABLE type.
1324 2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1327 * cp-tree.h (maybe_process_partial_specialization): Return
1328 tree instead of void.
1329 * parser.c (cp_parser_class_head): Use return value of
1330 maybe_process_partial_specialization.
1331 * pt.c (maybe_process_partial_specialization): Return error_mark_node
1332 for broken specializations, TYPE otherwise. Check for template
1333 template parameters.
1335 2006-08-27 Mark Mitchell <mark@codesourcery.com>
1338 * pt.c (register_specialization): Return error_mark_node for
1339 specialization-after-instantiation.
1340 * decl2.c (mark_used): Mark the main function used when one of its
1343 2006-08-27 Lee Millward <lee.millward@codesourcery.com>
1346 * class.c (check_field_decls): Don't issue error about
1347 local classes containing static data members.
1349 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
1352 * parser.c (struct cp_token): Add input_file_stack_index.
1353 (eof_token): Update.
1354 (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
1355 (cp_lexer_set_source_position_from_token): Restore input file
1358 2006-08-26 Lee Millward <lee.millward@codesourcery.com>
1363 * pt.c (process_template_parm): Store invalid template
1364 parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
1365 (push_inline_template_parms_recursive): Check for template
1366 parameters having a TREE_VALUE of error_mark_node rather than
1367 check the parameter itself.
1368 (mangle_class_name_for_template): Likewise.
1369 (comp_template_parms): When comparing the individual template
1370 parameters, return 1 if either is error_mark_node.
1371 (current_template_args): Robustify.
1372 (redeclare_class_template): Likewise.
1374 2006-08-26 Mark Mitchell <mark@codesourcery.com>
1377 * class.c (resolve_address_of_overloaded_function): Add
1378 access_path parameter. Perform access checks.
1379 (instantiate_type): Adjust call to
1380 resolve_address_of_overloaded_function. Remove unnecessary code.
1381 * tree.c (is_overloaded_fn): Document. Return 2 when there are
1382 acutally multiple functions.
1383 (really_overloaded_fn): Use is_overloaded_fn.
1384 * mangle.c (write_expression): Handle BASELINKs.
1385 * cp-tree.h (really_overloaded_fn): Return bool.
1386 (baselink_for_fns): Declare.
1387 * search.c (lookup_member): Check access for single static
1389 * pt.c (convert_nontype_argument_function): Handle BASELINKs.
1390 (tsubst_copy_and_build): Generate BASELINKs for template-ids.
1391 * semantics.c (finish_call_expr): Use baselink_for_fns.
1392 (baselink_for_fns): New function.
1393 (finish_id_expression): Use it.
1394 * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
1397 * pt.c (tsubst): Issue errors about attempts to create VLAs at
1398 template-instantiation time.
1400 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1403 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
1404 template parameters. Improve error message for template type
1408 * cp-tree.h (grok_op_properties): Return bool instead of void.
1409 * decl.c (grokfndecl): Discard invalid operator declarations.
1410 (copy_fn_p): Revert change for PR 27547.
1411 (grok_op_properties): Return error status (true on success).
1412 * pt.c (tsubst_decl): Discard invalid operator declarations.
1414 2006-08-25 Mark Mitchell <mark@codesourcery.com>
1417 * decl.c (grokdeclarator): Disallow declarations with qualified
1418 names in local scopes.
1420 2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
1423 * decl.c (make_typename_type): Only try and resolve it when
1424 context is not dependent. Refactor.
1425 * decl2.c (check_classfn): Push to class scope before looking for
1428 2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
1431 * g++spec.c (lang_specific_driver): Always check if we need to
1432 swallow a space-separated arg to '-x'.
1433 * lang-specs.h: Don't create ouput files for '-xc++-header'
1436 2006-08-23 Jason Merrill <jason@redhat.com>
1439 * pt.c (push_template_decl_real): A friend template with class
1440 scope isn't primary.
1442 2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
1445 * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
1446 Move -fno-rtti check to be more specific.
1448 2006-08-22 Jason Merrill <jason@redhat.com>
1451 * call.c (build_over_call): Don't make a copy here if build_call
1454 2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
1457 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
1460 2006-08-22 Simon Martin <simartin@users.sourceforge.net>
1463 * parser.c (cp_parser_postfix_expression): Make sure that the
1464 saved value for parser->type_definition_forbidden_message is
1465 restored before returning to avoid an invalid free().
1467 2006-08-22 Jason Merrill <jason@redhat.com>
1470 * typeck.c (merge_types): If either of the types have the right
1471 attributes, return that one.
1473 * tree.c (cp_build_type_attribute_variant): Make sure we aren't
1474 doing this to class types.
1475 * typeck.c (original_type): Deal with type quals properly.
1477 2006-08-21 Jason Merrill <jason@redhat.com>
1480 * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
1481 just leave the expression as it is.
1482 (finish_stmt_expr): If the statement-expression has class type,
1483 wrap it in a TARGET_EXPR.
1484 * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
1486 * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
1488 2006-08-21 Lee Millward <lee.millward@codesourcery.com>
1491 * decl.c (duplicate_decls): Return early if either
1492 newdecl or olddecl is error_mark_node.
1495 * decl.c (grokdeclarator): Return early after
1496 issuing diagnostic about an incomplete type.
1499 * tree.c (decl_anon_ns_mem_p): Robustify.
1500 * decl2.c (determine_visibility): Likewise.
1502 2006-08-20 Mark Mitchell <mark@codesourcery.com>
1505 * tree.c (cast_valid_in_integral_constant_expression_p): New
1507 * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
1508 * pt.c (tsubst_expr): Add integral_constant_expression_p
1510 (fold_non_dependent_expr): Adjust callers of
1511 tsubst_{expr,copy_and_build}.
1512 (tsubst_friend_function): Likewise.
1513 (tsubst_template_arg): Likewise.
1514 (tsubst_default_argument): Likewise.
1515 (tsubst_decl): Likewise.
1517 (tsubst_omp_clasuses): Likewise.
1518 (regenerate_decl_fromp_template): Likewise.
1519 (instantiate_decl): Likewise.
1520 (tsubst_initializer_list): Likewise.
1521 (tsubst_enum): Likewise.
1522 (tsubst_expr): Use RECUR throughout.
1523 (tsubst_copy_and_build): Change definition of RECUR. Do not allow
1524 invalid casts in integral constant expressions.
1525 * parser.c (cp_parser_postfix_expression): Use
1526 cast_valid_in_integral_constant_expression_p.
1527 (cp_parser_cast_expression): Likewise.
1528 (cp_parser_functional_cast): Likewise.
1531 * pt.c (tsubst_qualified_id): Do not strip references from
1534 2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1537 * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
1539 (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
1540 for valid type-names.
1541 (cp_parser_unqualified_id): Fix error handling for destructors.
1544 * decl.c (xref_tag): Improve error message. Return early on error.
1547 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
1549 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1552 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1554 2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
1557 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
1558 perform_integral_promotions for non integral type.
1560 2006-08-16 Jason Merrill <jason@redhat.com>
1563 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
1564 if arg is a function.
1566 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1569 * init.c (build_new): Return early on invalid placement.
1571 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
1574 * pt.c (process_template_parm): Robustify.
1576 2006-08-14 Steve Ellcey <sje@cup.hp.com>
1580 * operators.def: Remove <?, ?>, <?=, and >?= operators.
1581 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
1582 (cp_parser_warn_min_max): Remove.
1584 2006-08-11 Jason Merrill <jason@redhat.com>
1587 * parser.c (cp_parser_elaborated_type_specifier): Also ignore
1588 attributes applied to a TYPENAME_TYPE.
1590 2006-08-09 Lee Millward <lee.millward@codesourcery.com>
1593 * pt.c (coerce_template_parms): Copy across the
1594 invalid template arguments to the new template inner arguments.
1595 (retrieve_specialization): Robustify.
1598 * pt.c (coerce_template_template_parms): Robustify.
1601 * error.c (dump_template_parms): Robustify.
1604 * pt.c (redeclare_class_template): Robustify.
1607 * pt.c (type_unification_real): Robustify.
1609 2006-08-03 Lee Millward <lee.millward@codesourcery.com>
1612 * decl.c (start_decl): Return error_mark_node if a
1613 diagnostic was issed for an invalid typedef initialization.
1615 2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1618 * parser.c (cp_parser_unqualified_id): Check for invalid scopes
1619 when parsing destructor names.
1622 * decl.c (duplicate_decls): Call check_default_args here.
1623 (start_preparsed_function): Do not call check_default_args.
1624 * name-lookup.c (pushdecl_maybe_friend): Only call
1625 check_default_args if duplicate_decls got bypassed.
1627 2006-08-02 Richard Guenther <rguenther@suse.de>
1631 2006-07-05 Richard Guenther <rguenther@suse.de>
1632 Andrew Pinski <pinskia@gcc.gnu.org>
1635 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1636 top level qualifiers for pointer type comparisons.
1638 2006-08-02 Mark Mitchell <mark@codesourcery.com>
1641 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1643 2006-07-31 Mark Mitchell <mark@codesourcery.com>
1646 * tree.c (stabilize_expr): Tweak documentation. Add assertion.
1647 (stabilize_call): Tweak documentation.
1648 (stabilize_init): Only call stabilize_call for calls.
1650 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1653 * decl2.c (check_classfn): Remove early return.
1654 * search.c (lookup_member): Return NULL with bad type.
1656 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1659 * decl.c (check_initializer): Check for 1 initializer on scalar types.
1661 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1664 * pt.c (tsubst_copy_and_build): Mark used enum types.
1665 * semantics.c (finish_id_expression): Likewise.
1667 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1670 * decl.c (grokdeclarator): Check whether "long" or "short" was
1671 specified for non-integral types.
1673 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1675 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1677 2006-07-28 Lee Millward <lee.millward@codesourcery.com>
1681 * pt.c (process_template_parm) Store invalid template
1682 parameters as error_mark_node in the paramater list.
1683 (push_inline_template_parms_recursive): Handle invalid
1684 template parameters.
1685 (comp_template_parms): Likewise.
1686 (check_default_tmpl_arg): Likewise.
1687 (coerce_template_template_parms): Likewise.
1688 (mangle_class_name_for_template): Likewise.
1689 (tsubst_template_parms): Likewise.
1690 * error.c (dump_template_argument_list): Likewise.
1692 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
1694 * cp-tree.h: Fix a comment typo.
1696 2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1699 * decl.c (grokdeclarator): Return error_mark_node after invalid
1702 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
1705 * decl.c (grokvardecl): Use FROB_CONTEXT.
1706 * pt.c (register_specialization): Likewise.
1708 2006-07-23 Mark Mitchell <mark@codesourcery.com>
1711 * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
1712 * name-lookup.c (unqualified_namespace_lookup): There is no way to
1713 have a hidden name in non-namespace scopes.
1714 * pt.c (tsubst_friend_class): Look for hidden names.
1715 * decl.c (lookup_and_check_tag): Fix typo in comment.
1717 * semantics.c (finish_compound_literal): Fix typo in comment.
1719 2006-07-21 Jason Merrill <jason@redhat.com>
1721 * decl2.c (determine_visibility): Don't propagate visibility from
1723 (constrain_class_visibility): Don't warn in system headers.
1724 Don't warn about pointer fields.
1726 2006-07-20 Mike Stump <mrs@apple.com>
1728 * decl2.c (determine_visibility_from_class): Don't use hidden
1729 visibility for explicit instantiations.
1731 2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1734 * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
1735 valid decls. Cleanup.
1738 * semantics.c (check_template_template_default_arg): Simplify
1741 2006-07-20 Jason Merrill <jason@redhat.com>
1744 * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
1745 const variables with implicit internal linkage.
1746 * tree.c (decl_linkage): Only return lk_external if it's set.
1749 * decl2.c (constrain_visibility): Ignore the anonymous namespace
1750 for extern "C" decls.
1751 (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
1753 * decl2.c (constrain_visibility): Remove specified and reason
1754 parameters. Don't touch decls that already have explicit visibility.
1755 (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
1757 (determine_visibility_from_class): Reverse sense of
1758 DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
1759 (constrain_class_visibility): Only complain about member visibility
1760 if the member type is another class. Don't change visibility of the
1763 2006-07-19 Mark Mitchell <mark@codesourcery.com>
1766 * decl.c (layout_var_decl): Don't call push_local_name here.
1767 (initialize_artificial_var): Assert artificiality.
1768 (cp_finish_decl): Call push_local_name here.
1770 2006-07-18 Mark Mitchell <mark@codesourcery.com>
1773 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
1776 2006-07-18 Mark Mitchell <mark@codesourcery.com>
1779 * semantics.c (check_accessibility_of_qualified_id): Robustify.
1782 * pt.c (tsubst_decl): Handling substitutions into a static data
1783 member from within the scope of the tempalte itself.
1785 2006-07-18 Lee Millward <lee.millward@gmail.com>
1788 * method.c (locate_copy): Check for non_reference
1789 returning error_mark_node.
1792 * decl.c (duplicate_decls): Return error_mark_node
1793 on ambiguous declaration.
1795 2006-07-18 Steve Ellcey <sje@cup.hp.com>
1798 * search.c (adjust_result_of_qualified_name_lookup): Change
1799 assert to part of if statement.
1801 2006-07-17 Steve Ellcey <sje@cup.hp.com>
1804 * decl.c (reshape_init_class): Return error_mark_node on error.
1806 2006-07-17 Steve Ellcey <sje@cup.hp.com>
1809 * decl2.c (check_classfn): Return NULL_TREE on error.
1811 2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1814 * name-lookup.c (pushdecl_maybe_friend): Return early on
1816 * except.c (expand_start_catch_block): Use error_mark_node instead
1817 of NULL_TREE for invalid decls.
1818 * parser.c (cp_parser_exception_declaration): Return error_mark_node
1819 on invalid catch parameter. Simplify.
1821 2006-07-16 Jakub Jelinek <jakub@redhat.com>
1824 * decl2.c (note_vague_linkage_var): Removed.
1825 (finish_static_data_member_decl): Add decl to pending_statics vector
1826 directly. Do it even for non-public decls.
1828 2006-07-15 Lee Millward <lee.millward@gmail.com>
1831 * decl2.c (acceptable_java_type): Robustify. Use
1832 proper Boolean return type instead of return 1.
1833 (check_java_method): Don't issue error about
1834 type not being an acceptable Java parameter if
1835 it's error_mark_node.
1838 * parser.c (cp_parser_elaborated_type_specifier):
1839 Return early if an invalid type was detected.
1841 2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1844 * parser.c (cp_parser_check_decl_spec): New function.
1845 (cp_parser_decl_specifier_seq): Factor out check for repeated
1846 decl-specifiers into cp_parser_check_decl_spec. Use it.
1847 (cp_parser_type_specifier_seq): Use it.
1850 * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
1854 * decl2.c (cplus_decl_attributes): Check for invalid decls.
1856 2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1859 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
1860 * decl2.c (grokfield): Likewise.
1862 2006-07-12 Geoffrey Keating <geoffk@apple.com>
1864 * decl2.c (determine_visibility): Don't change visibility of
1865 function locals because of -fvisibility-inlines-hidden.
1867 2006-07-12 Jason Merrill <jason@redhat.com>
1870 * semantics.c (note_decl_for_pch): Don't premangle templates.
1872 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
1874 * typeck.c (string_conv_p): Remove spurious quotation mark in
1877 2006-07-07 Lee Millward <lee.millward@gmail.com>
1878 Andrew Pinski <pinskia@gmail.com>
1881 * decl.c (define_label): Return error_mark_node on error.
1882 * semantics.c (finish_label_stmt): Don't call
1883 add_stmt for invalid labels.
1885 2006-07-06 Jason Merrill <jason@redhat.com>
1888 * decl2.c (finish_static_data_member_decl): Don't assert
1891 2006-07-05 Jason Merrill <jason@redhat.com>
1895 * class.c (check_field_decls): Check TYPE_PACKED after
1896 stripping array types.
1897 (finish_struct_bits): Don't copy TYPE_SIZE here.
1900 * friend.c (is_friend): Fix DR 45 implementation.
1902 2006-07-05 Richard Guenther <rguenther@suse.de>
1903 Andrew Pinski <pinskia@gcc.gnu.org>
1906 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1907 top level qualifiers for pointer type comparisons.
1909 2006-07-01 Jason Merrill <jason@redhat.com>
1912 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
1915 2006-06-30 Jason Merrill <jason@redhat.com>
1918 * call.c (build_new_method_call): Force evaluation of the
1919 instance pointer, not the object.
1921 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
1923 * decl2.c: Fix a comment typo.
1925 2006-06-30 Jason Merrill <jason@redhat.com>
1928 * decl2.c (grokfield): Only try to treat the decl as an access
1929 declaration if the scope is a class.
1931 2006-06-29 Jason Merrill <jason@redhat.com>
1938 * decl2.c (determine_visibility): Overhaul.
1939 (determine_visibility_from_class): Likewise.
1940 (min_vis_r, type_visibility, constrain_visibility): New fns.
1941 (constrain_visibility_for_template): Likewise.
1942 (constrain_class_visibility): Likewise.
1943 * decl.c (cp_finish_decl): Call determine_visibility for function
1945 * name-lookup.c (pushtag): Call determine_visibility.
1946 * decl.c (duplicate_decls): Don't copy visibility from template to
1948 * pt.c (check_explicit_specialization): Likewise.
1949 (lookup_template_class, tsubst_decl): Call determine_visibility.
1950 * class.c (finish_struct_1): Call constrain_class_visibility.
1955 * parser.c (cp_parser_explicit_instantiation): Pass the attributes
1957 (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
1958 (cp_parser_enum_specifier): Likewise.
1959 (cp_parser_elaborated_type_specifier): Apply attributes if this
1960 declares only the class.
1961 (cp_parser_class_specifier): Apply leading attributes immediately.
1962 * semantics.c (begin_class_definition): Add attributes parameter,
1963 apply them to the type.
1967 * tree.c (decl_anon_ns_mem_p): New function.
1968 * cp-tree.h: Declare it.
1969 * decl2.c (determine_visibility): Make anonymous namespace
1971 (min_vis_r, constrain_visibility): Likewise.
1972 * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
1974 * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
1976 * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
1977 on anonymous namespaces.
1979 2006-06-28 Jason Merrill <jason@redhat.com>
1982 * pt.c (convert_template_argument): Pass all template arguments
1983 on to coerce_template_template_parms.
1985 2006-06-25 Lee Millward <lee.millward@gmail.com>
1986 Mark Mitchell <mark@codesuorcery.com>
1989 * decl2.c (grokbitfied): Remove check for grokdeclarator
1990 returning NULL_TREE, instead check for error_mark_node
1991 to indicate failure.
1992 * decl.c (grokdeclarator): Adjust block comment.
1994 2006-06-25 Lee Millward <lee.millward@gmail.com>
1997 * mangle.c (mangle_conv_op_name_for_type): Check for
1999 * name-lookup.c (push_class_level_binding): Robustify.
2000 (do_class_using_decl): Return early if name is error_mark_node.
2002 2006-06-23 Steve Ellcey <sje@cup.hp.com>
2005 * name-lookup.c (pushtag): Return if we have error_mark_node.
2007 2006-06-23 Steve Ellcey <sje@cup.hp.com>
2010 * typeck2.c (process_init_constructor_array): Set ce->value on errors.
2012 2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2015 * parser.c (cp_parser_attribute_list): Skip attributes with invalid
2016 arguments. Fix comment.
2019 * init.c (build_new_1): Handle error_mark_nodes returned by
2020 build_java_class_ref.
2021 (build_java_class_ref): Do not abort compilation, but return
2022 error_mark_node. Improve error message. Fix indentation.
2024 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
2027 * decl.c (start_decl): Check that dllimports are not initialized.
2029 2006-06-22 Lee Millward <lee.millward@gmail.com>
2032 * typeck2.c (build_m_component_ref): Use error_operand_p.
2035 * decl.c (grokdeclarator): Return error_mark_node on
2036 invalid uses of the scope resolution operator.
2038 2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2041 * pt.c (determine_specialization): Check for invalid decls.
2044 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
2048 * rtti.c (get_tinfo_decl_dynamic): Robustify.
2050 2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2053 * init.c (push_base_cleanups): Skip members with invalid types.
2054 * typeck.c (build_class_member_access_expr): Robustify.
2056 2006-06-19 Mark Mitchell <mark@codesourcery.com>
2058 * pt.c (instantiate_template): Fix typo in comment.
2060 2006-06-19 Richard Guenther <rguenther@suse.de>
2062 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
2063 power-of-two token vector size.
2065 2006-06-16 Mark Mitchell <mark@codesourcery.com>
2068 * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
2072 * call.c (standard_conversion): Strip cv-qualifiers from bitfield
2076 * decl.c (have_extern_spec): Remove.
2077 (start_decl): Do not check have_extern_spec.
2078 (start_function): Likewise.
2079 * cp-tree.h (have_extern_spec): Remove.
2080 * parser.c (cp_parser_linkage_specification): Don't set
2082 (cp_parser_init_declarator): Likewise.
2083 (cp_parser_parameter_declaration): Do not treat parameters as
2084 within the scope of an unbraced linkage specification.
2086 2006-06-15 Mark Mitchell <mark@codesourcery.com>
2089 * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
2091 * pt.c (unify): Use it.
2094 * call.c (build_conditional_expr): Robustify.
2097 * pt.c (instantiate_template): Set processing_template_decl to
2098 zero while performing substitutions.
2100 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2103 * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
2104 identify destructors.
2105 (cp_parser_nested_name_specifier_opt): Remove invalid
2107 (cp_parser_template_id): Refine heuristic for determining whether
2108 we are entering a scope.
2111 * parser.c (cp_parser_declarator): Robustify.
2114 * pt.c (tsubst_expr): Use finish_omp_atomic.
2115 (value_dependent_expression_p): All CALL_EXPRs are dependent.
2116 * semantics.c (finish_omp_atomic): Rework to use standard
2117 paradigms for handling non-dependent expressions.
2119 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
2121 * typeck.c (build_modify_expr): Tidy diagnostic message.
2123 2006-06-14 Mark Mitchell <mark@codesourcery.com>
2126 * typeck.c (build_modify_expr): Disallow array assignment.
2128 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
2130 * cp-tree.def: Fix typo.
2132 2006-06-13 Mark Mitchell <mark@codesourcery.com>
2135 * decl.c (decls_match): Allow an extern "C" variable declarations
2136 from different namespaces to match.
2137 (duplicate_decls): Disallow redeclaring a variable with a
2138 different linkage specification.
2140 2006-06-13 Jakub Jelinek <jakub@redhat.com>
2143 * cp-tree.h (cxx_int_tree_map): New struct.
2144 (struct language_function): Add extern_decl_map field.
2145 * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
2146 to cp_function_chain->extern_decl_map hash table instead of
2147 copying over DECL_UID.
2148 * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
2150 (cp_genericize_r): Remap DECL_EXTERN local decls using
2151 cp_function_chain->extern_decl_map hash table.
2152 * decl.c (finish_function): Clear extern_decl_map.
2154 2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2157 * semantics.c (finish_offsetof): Handle pseudo-destructors.
2160 * name-lookup.c (lookup_qualified_name): Always return error_mark_node
2164 * decl2.c (finish_anon_union): Return early if build_anon_union_vars
2167 2006-06-12 Roger Sayle <roger@eyesopen.com>
2170 * typeck2.c (build_functional_cast): Use cp_convert to construct
2171 non-aggregate initializers instead of the user-level build_c_cast.
2173 2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2176 * cp-tree.h (finish_offsetof): Add prototype.
2177 * semantics.c (finish_offsetof): New function.
2178 * parser.c (cp_parser_builtin_offsetof): Call it instead of
2180 * pt.c (tsubst_copy_and_build): Likewise.
2182 2006-06-06 Mark Mitchell <mark@codesourcery.com>
2185 * call.c (standard_conversion): Require that the derived type be
2186 complete when performing a derived-to-base conversion.
2188 2006-06-04 Mark Mitchell <mark@codesourcery.com>
2191 * decl.c (cp_finish_decl): Process initializers for static data
2192 members with non-dependent initializers, even in templates.
2195 * decl.c (maybe_deduce_size_from_array_init): If the declaration
2196 is erroneous, give it an erroneous type.
2197 (layout_var_decl): If the type is erroneous, give up.
2198 (check_initializer): Likewise.
2201 * cp-tree.h (TYPE_OBJ_P): New macro.
2202 (TYPE_PTROB_P): Use it.
2203 (TYPE_REF_OBJ_P): Likewise.
2204 * semantics.c (finish_compound_literal): Do not permit compound
2205 literals of non-object types.
2208 * typeck.c (original_type): Robustify.
2210 2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2213 * init.c (constant_value_1): Return decl instead of error_mark_node
2214 for invalid initializers.
2216 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
2219 * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
2220 on operand of the COND_EXPR for the null pointer check.
2222 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
2225 * typeck.c (build_unary_op): Mark the function as being used.
2227 2006-06-01 Alexandre Oliva <aoliva@redhat.com>
2230 * parser.c (cp_parser_initial_pragma): Read one more token for
2231 caller after reading PCH file in.
2233 2006-05-31 Mark Mitchell <mark@codesourcery.com>
2236 * call.c (perform_implicit_conversion): Do not actually perform
2237 conversions in templates.
2240 * call.c (resolve_args): Check for invalid uses of bound
2241 non-static member functions.
2242 * init.c (build_offset_ref): Return error_mark_node for errors.
2245 * decl.c (reshape_init): Robustify.
2246 (reshape_init_array_1): Likewise.
2248 2006-05-30 Mark Mitchell <mark@codesourcery.com>
2251 * parser.c (cp_parser_decl_specifier_seq): Issue errors about
2252 "friend" specifiers that do not appear in class scopes.
2255 * class.c (check_bitfield_decl): Ensure that all bitfields have
2258 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
2260 * pt.c (convert_nontype_argument): Fix a typo in an error
2263 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
2265 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
2266 spelling conventions.
2268 2006-05-24 Mark Mitchell <mark@codesourcery.com>
2271 * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
2272 error_mark_node to indicate an initialization is OK.
2273 (start_decl): Likewise. Adjust call to start_decl_1.
2274 (start_decl_1): Add initialized parameter. Simplify.
2275 * except.c (initialize_handler_parm): Adjust call to
2277 (expand_start_catch_block): Let cp_finish_decl initialize catch
2279 * cp-tree.h (start_decl_1): Adjust prototype.
2280 * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
2281 (instantiate_decl): Let cp_finish_decl handle initialization.
2282 * semantics.c (finish_compound_literal): Create a temporary
2283 variable for the literal.
2284 * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
2286 * decl2.c (finish_static_data_member_decl): Don't set
2288 (grokfield): Do not try to initialize functions.
2290 2006-05-23 Mark Mitchell <mark@codesourcery.com>
2293 * pt.c (determine_specialization): Disallow partial
2294 specializations of templates.
2296 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2299 * typeck.c (build_modify_expr): Test arguments for error_operand_p.
2301 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
2303 2006-05-21 Mark Mitchell <mark@codesourcery.com>
2306 * cp-tree.h (cp_save_expr): New function.
2307 * init.c (build_new): Correct logic for zero-element array
2308 warning. Use cp_save_expr.
2309 * tree.c (cp_save_expr): New function.
2311 2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2314 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
2317 2006-05-19 Mike Stump <mrs@apple.com>
2319 * typeck.c (default_conversion): Remove static.
2321 2006-05-19 Mark Mitchell <mark@codesourcery.com>
2324 * cp-tree.h (begin_function_try_block): Change prototype.
2325 (finish_function_handler_sequence): Likewise.
2326 * parser.c (cp_parser_function_try_block): Adjust calls.
2327 * pt.c (tsubst_expr): Adjust calls.
2328 * semantics.c (begin_function_try_block): Create an artificial
2330 (finish_function_handler_sequence): Close it.
2332 2006-05-18 Mark Mitchell <mark@codesourcery.com>
2336 * typeck.c (decay_conversion): Convert bitfields to their declared
2337 types here. Improve documentation. Avoid use of cp_convert.
2338 (default_conversion): Make it static. Perform integral promotions
2339 before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
2341 * init.c (build_init): Remove.
2342 (expand_default_init): Do not call rvalue.
2343 * call.c (null_ptr_cst_p): Robustify.
2344 (build_conditional_expr): Tidy.
2345 * except.c (build_throw): Do not perform lvalue-to-rvalue
2346 conversion on operand before initializing temporary.
2347 * tree.c (convert.h): Include it.
2348 (convert_bitfield_to_declared_type): Use convert_to_integer, not
2350 (rvalue): Don't convert bitfields to their declared type here.
2351 * cp-tree.h (build_init): Remove.
2352 (default_conversion): Likewise.
2353 * typeck2.c (build_m_component_ref): Do not perform
2354 lvalue-to-rvalue, function-to-pointer, or array-to-pointer
2355 conversions here. Correct error message.
2357 2006-05-17 Mark Mitchell <mark@codesourcery.com>
2360 * decl2.c (check_member_template): Remove checks for virtual
2362 * parser.c (cp_parser_function_specifier_opt): Complain about
2364 (cp_parser_pure_specifier): Likewise.
2367 * parser.c (cp_parser_set_storage_class): Check for
2368 invalid uses of storage classes on unbraced linkage
2370 (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
2371 to cp_parser_set_storage_class.
2373 2006-05-17 Jakub Jelinek <jakub@redhat.com>
2376 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
2380 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
2381 on combined parallel workshare constructs.
2382 * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
2384 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2387 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
2389 2006-05-15 Mark Mitchell <mark@codesourcery.com>
2392 * cp-tree.h (perform_access_checks): New function.
2393 * semantics.c (perform_access_checks): New function.
2394 (perform_deferred_access_checks): Use it.
2395 * parser.c (cp_parser_simple_declaration): Adjust call to
2396 cp_parser_init_declarator.
2397 (cp_parser_type_parameter): Do not defer checks in default
2399 (cp_parser_explicit_specialization): Adjust call to
2400 cp_parser_single_declaration.
2401 (cp_parser_init_declarator): Perform template-parameter access
2403 (cp_parser_parameter_declaration): Do not defer checks for
2404 template parameter default arguments.
2405 (cp_parser_template_declaration_after_export): Gather access
2406 checks for template parameters, and pass them to
2407 cp_parser_single_declaration.
2408 (cp_parser_template_parameter_access_checks): New function.
2409 (cp_parser_single_declaration): Add checks parameter.
2412 * call.c (convert_like_real): Convert bitfields to their declared
2413 types when forming an rvalue.
2414 * tree.c (convert_bitfield_to_declared_type): New function.
2416 * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
2418 2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2421 * pt.c (any_dependent_template_arguments_p): Return early on invalid
2425 * search.c (adjust_result_of_qualified_name_lookup): Skip on
2426 invalid context_class.
2429 * pt.c (do_decl_instantiation): Return early on invalid decl.
2432 * pt.c (push_template_decl_real): Return error_mark_node instead
2436 * pt.c (tsubst_friend_class): Return early on invalid friend
2439 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2441 * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
2442 (cp/decl2.o): Likewise.
2443 (cp/typeck.o): Likewise.
2444 (cp/cvt.o): Likewise.
2445 (cp/parser.o): Likewise.
2446 (cp/call.o): Replace target.h with $(TARGET_H).
2448 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
2450 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2451 COMPONENT_REF alone.
2453 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2456 * decl.c (copy_fn_p): Return early on non-member functions.
2458 2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2461 * decl2.c (build_memfn_type): Skip invalid functions and class types.
2463 2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2466 * pt.c (convert_nontype_argument): Return early on invalid arguments.
2468 * pt.c (process_template_parm): Remove superfluous temporary.
2471 * pt.c (process_template_parm): Handle erroneous non-type parameters.
2474 * typeck.c (convert_for_initialization): Skip erroneous types.
2477 * typeck.c (convert_arguments): Return early on args with
2480 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
2483 * typeck.c (build_static_cast_1): Save casted types in used types
2485 (build_reinterpret_cast_1): Same.
2486 * rtti.c (build_dynamic_cast_1): Same.
2488 2006-05-04 Jakub Jelinek <jakub@redhat.com>
2491 * parser.c (cp_parser_omp_for_loop): Only call
2492 cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
2495 2006-05-02 Mark Mitchell <mark@codesourcery.com>
2498 * decl.c (grokdeclarator): Robustify checks for defining members
2499 of incomplete types.
2502 * class.c (add_method): Call grok_special_member_properties.
2503 * decl.c (grokdeclarator): Don't call it here.
2504 (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
2505 assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
2507 (start_method): Don't call grok_special_member_properties.
2508 * method.c (implicitly_declare_fn): Likewise.
2509 * pt.c (instantiate_class_template): Likewise.
2510 * decl2.c (grokfield): Likewise.
2512 2006-05-02 Jakub Jelinek <jakub@redhat.com>
2515 * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
2516 * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
2517 * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
2519 2006-04-30 Mark Mitchell <mark@codesourcery.com>
2522 * pt.c (tsubst_default_argument): Increment function_depth around
2523 call to tsubst_expr.
2524 * parser.c (cp_parser_parameter_declaration): Likewise.
2525 * decl2.c (mark_used): Tidy.
2527 2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2530 * decl.c (grok_op_properties): Skip operators with invalid args
2531 when checking for class-type or enum-type args.
2533 2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2536 * decl.c (copy_fn_p): Skip functions with invalid first arg.
2538 2006-04-27 Mark Mitchell <mark@codesourcery.com>
2541 * tree.c (rvalue): Convert bitfields to their declared types.
2544 * typeck2.c (cxx_incomplete_type_diagnostic): Handle
2547 2006-04-24 Mark Mitchell <mark@codesourcery.com>
2550 * typeck.c (decay_conversion): Don't adjust bitfield types.
2551 (perform_integral_promotions): Treat bitfield enums as enums, not
2552 as short integer types.
2553 * tree.c (rvalue): Convert bitfields to their correct types.
2555 2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2558 * class.c (layout_class_type): Skip fields with invalid types.
2560 2006-04-23 Mark Mitchell <mark@codesourcery.com>
2563 * cp-tree.h (build_this_parm): Declare.
2564 (grok_method_quals): Remove.
2565 (build_memfn_type): Declare.
2566 (build_artificial_parm): Declare.
2567 (do_friend): Remove quals parameter.
2568 * decl.c (build_this_parm): New function.
2569 (grokfndecl): Use it. Do not pass quals to grokclassfn.
2570 (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
2571 unnecessary TYPE_DECLs. Correct qualification of member function
2573 * method.c (implicitly_declare_fn): Use build_this_parm.
2574 * friend.c (do_friend): Remove quals parameter.
2575 * decl2.c (grok_method_quals): Remove.
2576 (build_memfn_type): New function.
2577 (build_artificial_parm): Give it external linkage.
2578 (grokclassfn): Remove quals parameter. Do not build "this"
2582 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
2583 * typeck.c (is_bitfield_expr_with_lowered_type): New function.
2584 (decay_conversion): Convert bitfield expressions to the correct
2586 (build_modify_expr): Remove spurious conversions.
2587 * class.c (layout_class_type): Modify the type of bitfields to
2588 indicate a limited range.
2589 * call.c (standard_conversion): Adjust the type of bitfield
2590 expressions used in an rvalue context.
2591 (build_conditional_expr): Likewise.
2593 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
2595 * decl.c: Fix comment typos.
2597 2006-04-21 Eric Christopher <echristo@apple.com>
2599 * decl.c: Fix typo in function name.
2601 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2604 * parser.c (cp_parser_class_name): Check for invalid typenames.
2608 * pt.c (tsubst_friend_function): Return early if
2609 pushdecl_namespace_level fails.
2612 * typeck.c (convert_arguments): Return error_mark_node instead of
2614 * cp-tree.h (error_mark_list): Remove declaration.
2615 * decl.c (error_mark_list): Remove definition.
2616 (cxx_init_decl_processing): Do not initialize error_mark_list.
2619 * rtti.c (build_dynamic_cast_1): Check for invalid conversions
2620 before calling convert_to_reference.
2621 * cvt.c (convert_to_reference): Assert that reftype is a
2624 2006-04-19 Mark Mitchell <mark@codesourcery.com>
2627 * class.c (currently_open_class): Tidy.
2628 * decl.c (grokdeclarator): If we encounter an erroneous
2629 declarator, assume that we have already issued an error message
2630 and return. Return error_mark_node instead of NULL_TREE in more
2631 places. Issue errors about function definitions that do not have
2632 a function declarator. Check for complete types for all function
2634 * cp-tree.h (cp_error_declarator): Remove.
2635 (currently_open_class): Change return type.
2636 * parser.c (cp_parser_id_expression): Add optional_p parameter.
2637 (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
2638 (cp_parser_id_expression): Likewise.
2639 (cp_parser_unqualified_id): If the name is optional, return
2641 (cp_parser_postfix_dot_deref_expression): Adjust calls.
2642 (cp_parser_type_parameter): Likewise.
2643 (cp_parser_unqualified_id): Likewise.
2644 (cp_parser_direct_declarator): Likewise.
2645 (cp_parser_declarator_id): Add optional_p parameter.
2646 (cp_parser_function_definition_from_specifiers_and_declarator):
2647 Assume that start_function indicates failure only if it has issued
2649 (cp_parser_omp_var_list_no_open): Adjust calls.
2651 2006-04-17 Janis Johnson <janis187@us.ibm.com>
2653 PR c++/26114, c++/26115
2654 * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
2655 * class.c (check_field_decls): Ditto.
2657 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2659 * init.c (build_offset_ref): Remove superfluous temporary.
2661 2006-04-16 Mark Mitchell <mark@codesourcery.com>
2664 * typeck.c (finish_class_member_access_expr): Robustify
2666 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
2668 * Make-lang.in (cp/pt.o): Depend on vecprim.h.
2669 * pt.c: Include vecprim.h.
2670 (inline_parm_levels): Change the type to VEC(int,heap) *.
2671 (inline_parm_levels_used): Remove.
2672 (maybe_begin_member_template_processing,
2673 maybe_end_member_template_processing): Use VEC instead of
2676 * cp/call.c: Fix comment typos.
2678 2006-04-12 Mark Mitchell <mark@codesourcery.com>
2680 * parser.c (cp_parser_init_declarator): Initialize local variables
2683 2006-04-12 Roger Sayle <roger@eyesopen.com>
2685 * parser.c (cp_parser_init_declarator): Initialise
2686 is_parenthesized_init to false to avoid compiler warning.
2688 2006-04-11 Mark Mitchell <mark@codesourcery.com>
2690 * cp-tree.h (build_operator_new_call): Adjust prototype.
2691 (build_new_method_call): Likewise.
2692 (build_op_delete_call): Likewise.
2693 * init.c (build_raw_new_expr): New function.
2694 (build_new_1): Pass information as parameters, rather than
2695 bundling it into a NEW_EXPR.
2696 (build_new): Adjust accordingly.
2697 (build_vec_delete_1): Adjust for changes to build_op_delete_call.
2698 (build_delete): Likewise.
2699 * decl.c (finish_destructor_body): Likewise.
2700 * call.c (build_operator_new_call): Return the allocation function
2702 (build_op_delete_call): Take allocation function as parameter.
2703 (build_special_member_call): Adjust call to build_new_method_call.
2704 (build_new_method_call): Return function called.
2705 * pt.c (tsubst_copy_and_build): Adjust call to
2706 build_new_method_call.
2707 * semantics.c (finish_call_expr): Likewise.
2708 * parser.c (cp_parser_postfix_expression): Likewise.
2709 * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
2710 "incomplete", not "undefined", types.
2713 * decl.c (grokdeclarator): Remove namespace-handling code for
2714 pointers-to-members.
2715 * parser.c (cp_parser_ptr_operator): Check for qualified names
2719 * parser.c (cp_parser_init_declarator): Adjust logic for deciding
2720 whether or not to look for a pure-specifier.
2721 (cp_parser_member_declaration): Likewise.
2723 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2725 * decl2.c, pt.c, semantics.c: Fix comment typos.
2727 2006-04-06 Roger Sayle <roger@eyesopen.com>
2729 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
2731 2006-04-05 Jason Merrill <jason@redhat.com>
2733 * name-lookup.c (push_namespace_with_attribs): Temporarily disable
2734 default hidden visibility for anonymous namespace.
2736 2006-03-29 Roger Sayle <roger@eyesopen.com>
2739 * init.c (build_vec_delete_1): Convert BASE pointer's type to
2740 the base pointer type to avoid a type mismatch in the EQ_EXPR.
2742 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2744 * search.c (maybe_suppress_debug_info): If
2745 flag_emit_class_debug_always then don't suppress.
2747 2006-03-22 Jason Merrill <jason@redhat.com>
2749 * name-lookup.c (push_namespace_with_attribs): Only apply hidden
2750 visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
2752 2006-03-21 Jakub Jelinek <jakub@redhat.com>
2755 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
2757 2006-03-21 Jason Merrill <jason@redhat.com>
2760 * parser.c (cp_parser_declaration): Support attributes on
2761 anonymous namespaces.
2762 * name-lookup.c (push_namespace_with_attribs): Anonymous
2763 namespaces default to hidden visibility.
2765 2006-03-20 Jason Merrill <jason@redhat.com>
2767 PR c++/21764, c++/19238
2768 * decl.c (cp_finish_decl): Call determine_visibility later.
2769 (start_preparsed_function): Likewise.
2770 * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
2771 (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
2772 * name-lookup.h (struct cp_binding_level): Add has_visibility
2774 * name-lookup.c: Include c-pragma.h.
2775 (push_namespace_with_attribs): Split out from push_namespace.
2776 Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
2777 (leave_scope): Pop visibility if appropriate.
2778 * decl2.c (determine_visibility_from_class): Split out from...
2779 (determine_visibility): ...here. Handle function scope and
2781 (import_export_decl): Move visibility handling to
2782 determine_visibility_from_class.
2783 * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
2784 attributes on namespace declarations.
2786 2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2789 * decl.c (grokdeclarator): Do not accept long long double.
2790 Reorganize checks for invalid (combinations of) type modifiers.
2791 Quote modifiers in messages.
2793 2006-03-09 Jason Merrill <jason@redhat.com>
2795 PR c++/16387, c++/16389
2796 * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
2797 (cxx_sizeof_or_alignof_expr): Split out from here.
2799 2006-03-09 Diego Novillo <dnovillo@redhat.com>
2801 Merge from gomp-20050608-branch
2803 2006-02-02 Diego Novillo <dnovillo@redhat.com>
2805 * decl.c (pop_labels_1): Use appropriate pointer casting.
2806 (poplevel_named_label_1): Likewise.
2807 (named_label_entry_hash): Likewise.
2808 (named_label_entry_eq): Likewise.
2809 (check_goto): Likewise.
2810 (define_label): Likewise.
2812 2006-01-26 Diego Novillo <dnovillo@redhat.com>
2814 * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
2816 * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
2817 instead of TREE_CODE/TREE_OPERAND.
2818 * semantics.c: Likewise.
2819 * parser.c: Likewise.
2821 2005-11-10 Diego Novillo <dnovillo@redhat.com>
2823 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
2824 target does not support TLS.
2826 2005-11-09 Jakub Jelinek <jakub@redhat.com>
2828 * decl.c (redeclaration_error_message): Don't error about
2829 DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
2832 2005-11-08 Jakub Jelinek <jakub@redhat.com>
2835 * semantics.c (finish_omp_barrier, finish_omp_flush): New
2837 * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
2838 (cp_parser_omp_flush): Call finish_omp_flush.
2839 * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
2843 * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
2845 2005-11-03 Jakub Jelinek <jakub@redhat.com>
2847 * semantics.c (finish_omp_threadprivate): Error on class-scope
2850 2005-11-02 Jakub Jelinek <jakub@redhat.com>
2852 * parser.c (cp_parser_omp_all_clauses): If some clause
2853 type is not allowed, don't remove just one of the
2854 clauses, but all clauses added in that loop round.
2856 * semantics.c (finish_omp_clauses): Fix function
2857 comment. Don't handle non-const or mutable specially,
2858 as const and not mutable is predetermined shared and
2859 that leads to double error. Don't ICE if copyin var is
2863 * parser.c (cp_parser_pragma): Diagnose
2864 PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
2867 * semantics.c (finish_omp_threadprivate): Error if V
2868 is automatic variable or has incomplete type.
2870 2005-11-01 Diego Novillo <dnovillo@redhat.com>
2872 * parser.c (cp_parser_omp_all_clauses): Use
2873 OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
2875 2005-11-01 Diego Novillo <dnovillo@redhat.com>
2877 * parser.c (cp_parser_omp_all_clauses): When emitting an
2878 error message, remove the invalid clause from the list.
2880 2005-10-31 Diego Novillo <dnovillo@redhat.com>
2882 * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
2883 combined parallel+workshare directives.
2885 2005-10-31 Richard Henderson <rth@redhat.com>
2887 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
2888 Use cxx_omp_clause_dtor.
2889 * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
2890 (cxx_omp_clause_dtor): New.
2891 * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
2892 (cxx_omp_clause_default_ctor): Use it.
2893 (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
2895 (cxx_omp_clause_dtor): New.
2896 * semantics.c (finish_omp_clauses): Rewrite cdtor
2897 checking to fill in CP_OMP_CLAUSE_INFO. Don't
2898 specialcase LASTPRIVATE for removal.
2899 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
2900 cxx_omp_clause_assign_op): Move to cp-gimplify.c.
2902 2005-10-28 Jakub Jelinek <jakub@redhat.com>
2904 * semantics.c (finish_omp_threadprivate): If
2905 DECL_RTL_SET_P, call make_decl_rtl again so that
2906 encode_section_info can update SYMBOL_REF's flags.
2908 2005-10-26 Jakub Jelinek <jakub@redhat.com>
2910 * semantics.c (finish_omp_for): Don't segfault if COND
2911 or INCR is NULL. If not calling c_finish_omp_for
2912 right away and one of COND and INCR is NULL, issue
2913 error and don't expand anything.
2916 * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
2917 * semantics.c (finish_omp_for): Likewise. Set
2918 OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
2919 into the current statement list if not processing
2920 template decl or pass it to c_finish_omp_for.
2922 * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
2923 into PRE_BODY statement list. Pass it to finish_omp_for.
2924 * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
2925 OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
2926 finish_omp_for. Put all the statements into sk_omp
2929 2005-10-25 Jakub Jelinek <jakub@redhat.com>
2932 * parser.c (struct cp_parser): Rename in_iteration_statement
2933 field to in_statement.
2934 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
2935 (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
2936 (cp_parser_new, cp_parser_begin_omp_structured_block,
2937 cp_parser_end_omp_structured_block,
2938 cp_parser_omp_for_loop): Adjust for
2939 in_iteration_statement renaming.
2940 (cp_parser_selection_statement): Save
2941 parser->in_iteration, or it temporarily with
2942 IN_SWITCH_STMT for the
2943 cp_parser_implicitly_scoped_statement call.
2944 (cp_parser_iteration_statement): Adjust for
2945 in_iteration_statement renaming. Use
2946 IN_ITERATION_STMT rather than true.
2947 (cp_parser_jump_statement): Adjust for
2948 in_iteration_statement renaming and new values. Don't
2949 error on break in a switch statement within OMP_FOR or
2950 OpenMP structured block.
2953 * parser.c (cp_parser_cache_group): Don't stop if next
2954 token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
2955 well. If current token is CPP_PRAGMA, consume
2956 everything until CPP_PRAGMA_EOL inclusive.
2958 2005-10-24 Jakub Jelinek <jakub@redhat.com>
2961 * semantics.c (finish_omp_for): Handle MODOP_EXPR in
2962 addition to MODIFY_EXPR.
2964 2005-10-23 Richard Henderson <rth@redhat.com>
2966 * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
2968 (begin_bc_block, finish_bc_block): Use it.
2969 (push_context, pop_context): Remove.
2970 (cp_genericize): Don't use them. Assert bc_label is null.
2971 * semantics.c (finish_omp_clauses): Create a fake data
2972 element of TYPE for probing ctors.
2974 2005-10-23 Richard Henderson <rth@redhat.com>
2976 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
2977 (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
2978 (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
2979 (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
2980 * semantics.c (finish_omp_clauses): Look through
2981 arrays when looking up special member calls. Also
2982 remove FIRSTPRIVATE when LASTPRIVATE fails.
2983 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
2984 (cxx_omp_clause_assign_op): New.
2985 * cp-tree.h: Declare them.
2987 2005-10-21 Richard Henderson <rth@redhat.com>
2989 * decl.c (check_previous_goto_1): Return false if error.
2990 (check_switch_goto): Likewise.
2991 (finish_case_label): Don't emit the case label on error.
2992 * parser.c (struct cp_parser): Revert
2993 in_switch_statement_p changes.
2994 (cp_parser_labeled_statement,
2995 cp_parser_selection_statement): Likewise.
2996 (cp_parser_begin_omp_structured_block): Don't save...
2997 (cp_parser_end_omp_structured_block): or restore
2998 in_switch_statement_p.
3000 2005-10-21 Richard Henderson <rth@redhat.com>
3002 * semantics.c (finish_omp_threadprivate): Set
3003 decl_flags.u2sel when necessary.
3005 2005-10-21 Richard Henderson <rth@redhat.com>
3007 * decl.c (poplevel_named_label_1): Restore creation of the
3009 (decl_jump_unsafe): Check for error_mark_node types.
3010 (check_goto): Don't check cdtor_label. Don't use identify_goto.
3011 * semantics.c (finish_return_stmt): Do check_omp_return before
3012 converting to cdtor_label goto.
3014 2005-10-21 Richard Henderson <rth@redhat.com>
3017 * decl.c (check_omp_return): Return false on error.
3018 * cp-tree.h (check_omp_return): Update decl.
3019 * semantics.c (finish_return_stmt): Avoid adding
3022 2005-10-21 Richard Henderson <rth@redhat.com>
3024 * cp-tree.h (struct language_function): Remove
3026 Change x_named_labels to a hashtable.
3027 (check_omp_return): Declare.
3028 * decl.c (struct named_label_use_entry): Rename from
3029 named_label_use_list. Remove label_decl.
3030 (struct named_label_entry): Rename from
3031 named_label_list. Remove old_value and next. Change
3032 in_try_scope and in_catch_scope to bool. Add
3034 (pop_labels_1): New.
3035 (pop_labels): Use it.
3036 (pop_local_label, poplevel_named_label_1): New.
3037 (poplevel): Use them.
3038 (named_label_entry_hash, named_label_entry_eq): New.
3039 (make_label_decl): Create named_labels. Move label
3040 creation bits from lookup_label.
3041 (declare_local_label): Tidy.
3042 (identify_goto): Split out from ...
3043 (check_previous_goto_1): Add exited_omp argument.
3046 (use_label): Merge into...
3047 (check_goto): ... here. Handle omp scopes.
3048 (check_omp_return): New.
3049 (check_previous_gotos): Merge into...
3050 (define_label): ... here.
3051 (save_function_data): Remove x_named_label_uses reference.
3052 (finish_function): Likewise.
3053 * name-lookup.h (sk_omp): New.
3054 * name-lookup.c (begin_scope): Handle it.
3055 * parser.c (cp_parser_omp_for): Don't create extra
3058 (cp_parser_omp_sections): Likewise.
3059 * semantics.c (finish_return_stmt): Call check_omp_return.
3060 (begin_omp_structured_block): Use sk_omp.
3061 (finish_omp_structured_block): Use do_poplevel. Don't build a
3062 MUST_NOT_THROW expression here.
3063 (begin_omp_parallel, finish_omp_parallel): Don't create extra
3064 compound statements.
3066 2005-10-21 Diego Novillo <dnovillo@redhat.com>
3069 * cp/cp-tree.h (struct lang_decl_flags): Add field
3071 (CP_DECL_IS_THREADPRIVATE): Define.
3072 * cp/semantics.c (finish_omp_threadprivate): Set. Do
3073 not error out if CP_DECL_IS_THREADPRIVATE is set
3075 * cp/decl.c (duplicate_decls): Merge
3076 CP_DECL_THREADPRIVATE_P.
3078 2005-10-20 Richard Henderson <rth@redhat.com>
3080 * cp-gimplify.c (cp_gimplify_omp_for): New.
3081 (cp_gimplify_expr): Call it.
3082 * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
3083 * parser.c (struct cp_parser): Rename
3084 in_iteration_statement_p to in_iteration_statement and
3085 change to unsigned char. Similarly with
3086 in_switch_statement. Update all users.
3087 (IN_OMP_BLOCK, IN_OMP_FOR): New.
3088 (cp_parser_labeled_statement): Diagnose case labels
3089 binding closer to an openmp block nested than the
3091 (cp_parser_jump_statement): Diagnose break and
3092 continue labels binding closer to an openmp block than
3093 an iteration or switch.
3094 (cp_parser_omp_for_loop): Mark in_iteration_statement
3096 (cp_parser_begin_omp_structured_block): New.
3097 (cp_parser_end_omp_structured_block): New.
3098 (cp_parser_omp_structured_block): Use them.
3099 (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
3100 (cp_parser_omp_parallel): Likewise.
3102 2005-10-20 Richard Henderson <rth@redhat.com>
3104 * semantics.c (begin_omp_structured_block): New.
3105 (finish_omp_structured_block): New.
3106 (begin_omp_parallel, finish_omp_parallel): Use them.
3107 * parser.c (cp_parser_omp_structured_block): Likewise.
3108 (cp_parser_omp_for): Likewise.
3109 (cp_parser_omp_sections_scope): Likewise.
3110 * cp-tree.h: Declare them.
3112 2005-10-20 Richard Henderson <rth@redhat.com>
3114 * parser.c (cp_parser_omp_master): Return the statement.
3115 (cp_parser_omp_ordered): Likewise.
3116 (cp_parser_omp_construct): Set the locus for them.
3118 2005-10-19 Richard Henderson <rth@redhat.com>
3120 * semantics.c (finish_omp_atomic): Revert to
3121 uses_template_parms.
3123 2005-10-19 Richard Henderson <rth@redhat.com>
3125 * semantics.c (finish_omp_clauses): Avoid
3126 DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
3127 stub asserts guaranteed to fail.
3129 2005-10-19 Richard Henderson <rth@redhat.com>
3131 * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
3132 (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
3133 * parser.c (cp_parser_omp_clause_copyin): Remove.
3134 (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
3135 Call finish_omp_clauses.
3136 (cp_parser_omp_clause_if): Don't do error checking here.
3137 (cp_parser_omp_clause_num_threads): Likewise.
3138 (cp_parser_omp_clause_schedule): Likewise.
3139 (cp_parser_omp_atomic): Use finish_omp_atomic.
3140 (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
3141 Don't decompose assignment statment here. Use
3144 * pt.c (tsubst_omp_clauses): New.
3145 (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
3146 OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
3147 * semantics.c (finish_omp_clauses): New.
3148 (begin_omp_parallel, finish_omp_parallel): Know Less about the
3149 internals of the stmt_list stack.
3150 (finish_omp_for, finish_omp_atomic): New.
3152 2005-10-18 Jakub Jelinek <jakub@redhat.com>
3154 * semantics.c (cxx_omp_predetermined_sharing): New function.
3155 * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
3157 (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
3159 2005-10-18 Richard Henderson <rth@redhat.com>
3161 * parser.c (cp_parser_omp_single): Use make_node and accessors
3164 2005-10-17 Richard Henderson <rth@redhat.com>
3166 * parser.c (cp_parser_omp_for_loop): Handle declarations.
3168 2005-10-12 Richard Henderson <rth@redhat.com>
3170 * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
3171 * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
3172 (finish_omp_threadprivate): Declare.
3173 * parser.c (struct cp_lexer): Add in_pragma.
3174 (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
3176 (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
3177 (cp_parser_skip_to_end_of_statement): Likewise.
3178 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
3179 (cp_parser_skip_to_closing_brace): Likewise.
3180 (cp_parser_skip_to_pragma_eol): Reset in_pragma.
3181 (cp_parser_require_pragma_eol): New.
3182 (cp_parser_statement): Add in_compound argument;
3184 Restart if a non-statement pragma seen outside a
3186 (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
3187 (cp_parser_declaration_seq_opt): Likewise.
3188 (cp_parser_member_specification_opt): Likewise.
3189 (cp_parser_function_definition_after_decl): Likewise.
3190 (cp_parser_skip_until_found): Likewise.
3191 (cp_parser_cache_group): Likewise.
3192 (enum pragma_omp_clause, cp_parser_omp_clause_name,
3193 check_no_duplicate_clause,
3194 cp_parser_omp_var_list_no_open,
3195 cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
3196 cp_parser_omp_clause_default, cp_parser_omp_clause_if,
3197 cp_parser_omp_clause_nowait,
3198 cp_parser_omp_clause_num_threads,
3199 cp_parser_omp_clause_ordered,
3200 cp_parser_omp_clause_reduction,
3201 cp_parser_omp_clause_schedule,
3202 cp_parser_omp_all_clauses,
3203 cp_parser_omp_structured_block, cp_parser_omp_atomic,
3204 cp_parser_omp_barrier, cp_parser_omp_critical,
3205 cp_parser_omp_flush, cp_parser_omp_for_loop,
3206 cp_parser_omp_for, cp_parser_omp_master,
3207 cp_parser_omp_ordered, cp_parser_omp_sections_scope,
3208 cp_parser_omp_sections, cp_parser_omp_parallel,
3209 cp_parser_omp_single, cp_parser_omp_threadprivate,
3210 cp_parser_omp_construct): New.
3211 (cp_parser_pragma): Handle OpenMP pragmas.
3212 * semantics.c (finish_omp_threadprivate): New.
3213 (begin_omp_parallel, finish_omp_parallel): New.
3215 2005-10-11 Richard Henderson <rth@redhat.com>
3217 * parser.c (struct cp_token): Add pragma_kind.
3218 (eof_token): Initialize it.
3219 (cp_lexer_handle_pragma): Remove.
3220 (cp_parser_initial_pragma): New.
3221 (cp_lexer_new_main): Use it.
3222 (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
3223 (cp_lexer_print_token): Don't handle CPP_PRAGMA.
3224 (cp_parser_skip_to_pragma_eol): New.
3225 (cp_parser_error): Use it.
3228 2005-10-09 Richard Henderson <rth@redhat.com>
3230 * lex.c (parse_strconst_pragma): Update for c_lex name change.
3231 (handle_pragma_java_exceptions): Likewise.
3232 * parser.c (cp_lexer_new_main): Likewise.
3234 2005-10-06 Richard Henderson <rth@redhat.com>
3236 * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
3237 (cp_lexer_handle_pragma): Comment out
3238 cpp_handle_deferred_pragma.
3240 2005-10-01 Richard Henderson <rth@redhat.com>
3242 * name-lookup.c (lookup_name): Remove prefer_type argument.
3243 (lookup_name_prefer_type): New function.
3244 * name-lookup.h (lookup_name_prefer_type): Declare it.
3245 * decl.c (lookup_and_check_tag): Use it.
3246 * pt.c (tsubst_friend_class): Likewise. Update for
3248 (lookup_template_class, tsubst_copy_and_build): Likewise.
3250 2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3253 * tree.c (bot_manip): Don't call mark_used.
3255 2006-03-02 Mike Stump <mrs@apple.com>
3257 * decl2.c (import_export_decl): Remove redundant call to
3258 targetm.cxx.key_method_may_be_inline ().
3260 2006-03-02 Richard Sandiford <richard@codesourcery.com>
3262 * decl.c (start_decl): Use have_global_bss_p when deciding
3263 whether to make the decl common.
3265 2006-03-01 Mike Stump <mrs@apple.com>
3268 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
3270 2006-02-24 Geoffrey Keating <geoffk@apple.com>
3272 * except.c (expand_start_catch_block): Handle
3273 flag_use_cxa_get_exception_ptr.
3275 2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3278 * decl.c (grok_op_properties): Check for ellipsis in arguments of
3281 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3283 * Make-lang.in (C++): Remove.
3284 (.PHONY): Remove C++.
3286 2006-02-18 Mark Mitchell <mark@codesourcery.com>
3289 * cp-tree.h (cp_finish_decl): Adjust declaration.
3290 (grokbitfield): Likewise.
3291 (finish_static_data_member_decl): Likewise.
3292 * init.c (constant_value_1): Ensure processing_template_decl when
3293 folding non-dependent initializers for static data members of
3294 dependent types. Return error_mark_node for erroneous
3296 * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
3297 * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
3298 (cp_finish_decl): Add init_const_expr_p parameter. Set
3299 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
3300 (finish_decl): Adjust call to cp_finish_decl.
3301 (compute_array_index_type): Robustify.
3302 (start_method): Use finish_decl, not cp_finish_decl.
3303 * rtti.c (emit_tinfo_decl): Likewise.
3304 * except.c (initialize_handler_parm): Adjust call to
3306 (expand_start_catch_block): Likewise.
3307 * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
3308 * pt.c (instantiate_class_template): Adjust call to
3309 finish_static_data_member_decl.
3310 (tsubst_expr): Use finish_decl, not cp_finish_decl.
3311 (instantiate_decl): Adjust call to cp_finish_decl.
3312 * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
3314 * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
3316 (grokfield): Likewise.
3317 * parser.c (cp_parser_condition): Check for constant initializers.
3318 (cp_parser_init_declarator): Adjust calls to grokfield and
3319 cp_finish_decl. Don't set
3320 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
3321 (cp_parser_member_declaration): Likewise.
3322 (cp_parser_objc_class_ivars): Likewise.
3324 2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3326 * call.c (standard_conversion): Return NULL instead of 0.
3327 (build_user_type_conversion_1): Likewise.
3328 (tourney): Likewise.
3329 * decl.c (redeclaration_error_message): Likewise.
3330 * error.c (language_to_string): Likewise.
3332 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3334 * cp-tree.h (warn_hidden): Remove prototype.
3335 * class.c (warn_hidden): Make static.
3337 * cp-tree.h (build_type_conversion): Remove prototype.
3338 * cvt.c (build_type_conversion): Add prototype, make static.
3340 * cp-tree.h (push_tinst_level): Remove prototype.
3341 (pop_tinst_level): Likewise.
3342 * pt.c (push_tinst_level): Add prototype, make static.
3343 (pop_tinst_level): Likewise.
3345 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3347 * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
3348 * typeck.c (unary_complex_lvalue): Likewise.
3350 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3352 * lex.c (parse_strconst_pragma): Return error_mark_node instead of
3353 "(tree)-1" to indicate failure. Simplify.
3354 (handle_pragma_interface): Test for error_mark_node instead of
3356 (handle_pragma_implementation): Likewise.
3358 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3361 * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
3362 decl-specifiers. Remove extra check for duplicate 'friend'.
3363 * decl.c (grokdeclarator): Remove check for duplicate
3364 decl-specifiers. Set longlong together with long_p.
3366 2006-02-12 Jason Merrill <jason@redhat.com>
3369 * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
3370 TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
3372 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3374 * class.c (debug_class): Remove extern.
3375 (debug_thunks): Likewise.
3377 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
3379 * typeck.c (string_conv_p): Don't test for flag_const_strings.
3381 2006-02-08 Jason Merrill <jason@redhat.com>
3384 * cp-gimplify.c (cp_gimplify_expr): Don't call
3385 cp_gimplify_init_expr for MODIFY_EXPRs.
3386 * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
3388 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3391 * decl.c (grokdeclarator): Set dname also for destructor.
3394 * decl.c (grokdeclarator): Clear storage_class together with staticp.
3396 2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
3398 * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
3399 (cp_build_qualified_type): Propogate renaming.
3400 * call.c (convert_like_real): Likewise.
3401 * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
3402 * decl.c (make_typename_type, grokdeclarator): Likewise.
3403 * pt.c (tsubst_friend_function, instantiate_class_template,
3404 tsubst_default_argument, instantiate_decl,
3405 tsubst_initializer_list, tsubst_enum): Likewise.
3406 * semantics.c (finish_template_type): Likewise.
3407 * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
3409 2006-02-07 Dirk Mueller <dmueller@suse.com>
3411 * typeck.c (build_binary_op): Annotate div-by-zero
3412 warnings to make -Wno-div-by-zero have an effect.
3414 2006-02-07 Mark Mitchell <mark@codesourcery.com>
3417 * pt.c (coerce_template_template_parms): Do not templates with
3418 excess default arguments to match template template parameters
3419 with fewer parameters.
3420 (coerce_template_parms): Add use_default_args parameter; use
3421 default arguments only when true.
3422 (lookup_template_class): Adjust call to coerce_template_parms.
3423 (fn_type_unification): Likewise.
3425 (get_bindings): Likewise.
3426 (dependent_type_p): Add assertions.
3428 2006-02-06 Roger Sayle <roger@eyesopen.com>
3430 * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
3431 * rtti.c (typeinfo_in_lib_p): Likewise.
3432 * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
3433 * name-lookup.c (arg_assoc_type): Likewise.
3435 2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3437 * cp-tree.h (tf_warn_or_error): New substituion flag.
3438 (cp_build_qualified_type): Use it.
3439 * call.c (convert_like_real): Likewise.
3440 * cvt.c (cp_convert_to_pointer): Likewise.
3441 (convert_to_reference): Likewise.
3442 * decl.c (make_typename_type): Likewise.
3443 (grokdeclarator): Likewise.
3444 * pt.c (tsubst_friend_function): Likewise.
3445 (tsubst_friend_class): Likewise.
3446 (instantiate_class_template): Likewise.
3447 (tsubst_default_argument): Likewise.
3448 (instantiate_decl): Likewise.
3449 (tsubst_initializer_list): Likewise.
3450 (tsubst_enum): Likewise.
3451 * semantics.c (finish_template_type): Likewise.
3452 * typeck.c (build_ptrmemfunc): Likewise.
3453 (convert_for_assignment): Likewise.
3455 2006-02-03 Lee Millward <lee.millward@gmail.com>
3457 * typeck.c (string_conv_p): Pass appropiate
3458 OPT_Wxxxx values when calling warning().
3459 (build_array_ref, cxx_mark_addressable): Likewise.
3460 (check_return_expr): Likewise.
3462 * init.c (perform_member_init): Likewise.
3463 (sort_mem_initializers, emit_mem_initializers): Likewise.
3465 * class.c (check_field_decls): Likewise.
3466 (warn_about_ambiguous_bases): Likewise.
3468 * decl.c (pop_label, poplevel): Likewise.
3469 (duplicate_decls, grok_op_properties): Likewise.
3470 (start_preparsed_function, finish_function): Likewise.
3472 * name-lookup.c (pushdecl_maybe_friend): Likewise.
3473 (pushdecl_maybe_friend): Likewise.
3475 * parser.c (cp_parser_warn_min_max): Likewise.
3476 (cp_parser_cast_expression): Likewise.
3478 * method.c (lazily_declare_fn): Likewise.
3479 * cvt.c (convert_to_void): Likewise.
3480 * mangle.c (finish_mangling): Likewise.
3481 * cp-gimplify.c (gimplify_expr_stmt): Likewise.
3483 2006-02-03 Mark Mitchell <mark@codesourcery.com>
3485 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
3486 not IDENTIFIER_OPNAME_P.
3488 2006-01-31 Mark Mitchell <mark@codesourcery.com>
3491 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
3493 * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
3495 (instantiate_class_template): Simplify.
3496 (verify_class_unification): Remove.
3497 (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
3498 permit multiple levels of template arguments.
3499 (more_specialized_class): Simplify.
3500 (get_class_bindings): Pass full arguments to unify. Fold
3501 verify_class_unification into this function. Return full
3503 (most_specialized_class): Adjust for changes to
3504 get_class_bindings. Issue errors here for ambiguity. Return the
3505 fully deduced arguments for the most specialized class, in
3506 addition to the partial specialization.
3508 2006-01-31 Ben Elliston <bje@au.ibm.com>
3510 * mangle.c: Comment fix.
3512 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3514 * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
3515 * repo.c (extract_string, afgets): Use cast when converting from
3518 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3520 * call.c (alloc_conversion): Use cast when converting from void *.
3521 (alloc_conversions): Likewise.
3522 (add_candidate): Likewise.
3523 (print_z_candidates): Likewise.
3524 (add_warning): Likewise.
3525 * pt.c (retrieve_local_specialization): Likewise.
3526 (process_partial_specialization): Likewise.
3527 (mangle_class_name_for_template): Likewise.
3528 (tsubst_template_args): Likewise.
3529 * typeck2.c (pat_calc_hash): Likewise.
3530 (pat_compare): Likewise.
3531 (abstract_virtuals_error): Likewise.
3532 * class.c (method_name_cmp): Likewise.
3533 (resort_method_name_cmp): Likewise.
3534 (get_vfield_name): Likewise.
3535 * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
3536 * lex.c (init_reswords): Likewise.
3537 * rtti.c (create_pseudo_type_info): Likewise.
3538 * search.c (dfs_lookup_base): Likewise.
3539 (dfs_dcast_hint_pre): Likewise.
3540 (dfs_dcast_hint_post): Likewise.
3541 * tree.c (hash_tree_cons): Likewise.
3542 * repo.c (extract_string): Likewise.
3544 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
3545 * g++spec.c (lang_specific_driver): Likewise.
3547 2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3549 * call.c (joust): Pass option code to warning. Use inform for
3551 * class.c (check_bases): Likewise.
3552 (maybe_warn_about_overly_private_class): Likewise.
3553 (check_field_decls): Likewise.
3554 (layout_empty_base): Likewise.
3555 (layout_virtual_bases): Likewise.
3556 (layout_class_type): Likewise.
3558 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3561 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
3563 (start_function): ... here.
3565 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3568 * class.c (resolve_address_of_overloaded_function): Adjust use of
3569 return value from most_specialized_instantiation.
3570 * pt.c (determine_specialization): Avoid multiple calls to
3572 (most_specialized_instantiation): When a tie occurs, set the
3573 current presumed champion to the next template. Return the
3574 TREE_LIST node containing the template, rather than the template
3576 (most_specialized): Remove.
3577 * name-lookup.c (push_overloaded_decl): When duplicate_decls
3578 indicates a failed redeclaration, report that to callers.
3580 2006-01-26 Jason Merrill <jason@redhat.com>
3583 * name-lookup.c (parse_using_directive): Require strong using to
3584 name a nested namespace.
3586 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3589 * cp-tree.h (do_poplevel): Remove prototype.
3590 * semantics.c (do_poplevel): Add prototype. Make static.
3593 * cp-tree.h (default_conversion): Remove prototype.
3594 * typeck.c (default_conversion): Make static.
3596 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3598 * cp-tree.h (get_primary_binfo): Remove prototype.
3599 (push_using_decl): Likewise.
3600 (current_template_args): Likewise.
3601 (more_specialized_class): Likewise.
3602 (mark_class_instantiated): Likewise.
3603 (default_conversion): Likewise.
3604 (pfn_from_ptrmemfunc): Likewise.
3605 * class.c (get_primary_binfo): Add prototype, make static, simplify.
3606 * name-lookup.c (push_using_decl): Make static.
3607 * pt.c (current_template_args): Likewise.
3608 (more_specialized_class): Likewise.
3609 (mark_class_instantiated): Likewise.
3610 * typeck.c (default_conversion): Make static.
3611 (pfn_from_ptrmemfunc): Add prototype, make static.
3613 2006-01-24 Dirk Mueller <dmueller@suse.de>
3615 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3617 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3620 * parser.c (cp_parser_unqualified_id): Check that destructor name
3622 * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
3623 Adjust comment. Return early if possible.
3624 Use same_type_p to compare types.
3625 * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
3627 2006-01-24 Mark Mitchell <mark@codesourcery.com>
3629 * semantics.c: Remove outdated comment.
3631 2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3633 * cp-tree.h (do_poplevel): Remove prototype.
3634 * semantics.c (do_poplevel): Add prototype. Make static.
3636 * cp-tree.h (original_type): Remove prototype.
3637 * typeck.c (original_type): Make static.
3639 * cp-tree.h (declare_global_var): Remove prototype.
3640 * decl.c (declare_global_var): Make static.
3642 * cp-tree.h (implicitly_declare_fn): Remove prototype.
3643 * method.c (implicitly_declare_fn): Make static.
3645 * cp-tree.h (fold_decl_constant_value): Remove prototype.
3646 * pt.c (fold_decl_constant_value): Make static.
3648 * cp-tree.h (build_x_delete): Remove prototype.
3649 * init.c (build_vec_delete_1): Call build_op_delete_call directly
3650 and not via build_x_delete.
3651 (build_x_delete): Remove.
3653 * cp-tree.h (get_vtt_name): Remove prototype.
3654 * class.c (get_vtt_name): Remove.
3655 (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
3657 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3659 * rtti.c (build_dynamic_cast): Fix comment.
3661 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3664 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
3667 2006-01-21 Mark Mitchell <mark@codesourcery.com>
3670 * class.c (build_base_path): Generate a NOP_EXPR instead of a
3671 COMPONENT_REF if the base and derived classes are at the same
3675 * decl.c (begin_destructor_body): Robustify.
3678 * parser.c (cp_parser_direct_declarator): Robustify.
3680 2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3682 * parser.c (cp_lexer_next_token_is_keyword): Simplify.
3684 * parser.c (clear_decl_specs): Remove prototype.
3686 * parser.c (cp_parser_expression_fn): Remove.
3688 * call.c (add_builtin_candidates): Remove superfluous return.
3689 * name-lookup.c (do_toplevel_using_decl): Likewise.
3690 * parser.c (cp_parser_type_specifier_seq): Likewise.
3691 (cp_parser_save_default_args): Likewise.
3693 2006-01-20 Dirk Mueller <dmueller@suse.com>
3696 * semantics.c (finish_if_stmt): Call empty_body_warning.
3697 * parser.c (cp_parser_implicitly_scoped_statement):
3698 Mark empty statement with an empty stmt.
3700 2006-01-19 Mark Mitchell <mark@codesourcery.com>
3703 * name-lookup.c (do_class_using_decl): Don't try to look up base
3704 classes in templates with dependent base types.
3706 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3709 * pt.c (maybe_process_partial_specialization): Return early on
3712 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3715 * decl.c (start_preparsed_function): Check default arguments
3717 * name-lookup.c (pushdecl_maybe_friend): Check default arguments
3718 of all functions and function templates.
3719 * parser.c (cp_parser_late_parsing_default_args): Check default
3721 * decl2.c (check_default_args): Set missing default arguments to
3724 2006-01-18 Mark Mitchell <mark@codesourcery.com>
3727 * cp-tree.h (push_class_stack): New function.
3728 (pop_class_stack): Likewise.
3729 * class.c (class_stack_node): Add hidden field.
3730 (pushclass): Clear it.
3731 (push_class_stack): New function.
3732 (pop_class_stack): Likewise.
3733 (currently_open_class): Ignore hidden classes.
3734 (currently_open_derived_class): Likewise.
3735 * name-lookup.c (push_to_top_level): Call push_class_stack.
3736 (pop_from_top_level): Call pop_class_stack.
3738 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
3740 * tree.c (find_tree_t, find_tree): Remove.
3741 * cp-tree.h: Remove the prototype for find_tree.
3743 2006-01-18 Jakub Jelinek <jakub@redhat.com>
3745 * search.c (lookup_conversions_r): Fix a pasto.
3747 2006-01-17 Eric Christopher <echristo@apple.com>
3749 * call.c (convert_like_real): When issuing conversion
3750 warnings, depend on OPT_Wconversion.
3751 * cvt.c (build_expr_type_conversion): Ditto.
3753 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
3755 * name-lookup.c (lookup_namespace_name): Remove.
3756 * name-lookup.h: Remove the prototype for
3757 lookup_namespace_name.
3759 2006-01-17 Jakub Jelinek <jakub@redhat.com>
3762 * decl.c (compute_array_index_type): After issuing not an integral
3763 constant-expression error, set size to 1 to avoid ICEs later on.
3765 2006-01-16 Ian Lance Taylor <ian@airs.com>
3767 * parser.c: Include "cgraph.h".
3768 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
3771 2006-01-16 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
3773 * g++spec.c (lang_specific_spec_functions): Remove.
3775 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
3777 * decl.c (check_initializer): Fix thinko.
3779 2006-01-14 Mark Mitchell <mark@codesourcery.com>
3782 * parser.c (cp_parser_direct_declarator): Use cp_parser_error
3785 2006-01-13 Jason Merrill <jason@redhat.com>
3787 * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
3789 * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
3790 * pt.c (check_explicit_specialization): Likewise.
3792 2006-01-12 Jason Merrill <jason@redhat.com>
3795 * pt.c (check_explicit_specialization): Handle namespace
3797 * name-lookup.c (set_decl_namespace): Likewise.
3799 2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
3802 * class.c (handle_using_decl): Pass correct scope to
3803 cp_emit_debug_info_for_using.
3805 2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
3808 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
3811 2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
3813 * parser.c (cp_parser_primary_expression): Document the grammar
3814 for the built-in offsetof, a GNU extension.
3816 2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
3819 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
3822 2006-01-04 Chris Lattner <sabre@gnu.org>
3824 * typeck2.c: update copyright to 2006
3825 (split_nonconstant_init_1): Set TREE_CONSTANT to true.
3827 2006-01-04 Mark Mitchell <mark@codesourcery.com>
3830 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
3831 checks, even when parsing tentatively.
3833 2006-01-04 Richard Henderson <rth@redhat.com>
3835 Merge from gomp branch.
3836 * lex.c (handle_pragma_java_exceptions): Fix whitespace.
3837 * parser.c (struct cp_token): Add pragma_kind.
3838 (eof_token): Update to match.
3839 (struct cp_lexer): Add in_pragma; rearrange next for better packing.
3840 (cp_parser_initial_pragma): New.
3841 (cp_lexer_new_main): Use it. Don't bother clearing
3842 c_lex_return_raw_strings.
3843 (cp_lexer_get_preprocessor_token): Always initialize keyword
3844 and pragma_kind fields. Handle CPP_PRAGMA.
3845 (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
3847 (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
3848 (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
3849 (cp_parser_skip_to_pragma_eol): New.
3850 (cp_parser_error): Use it.
3851 (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
3852 rearrange with switch statement.
3853 (cp_parser_skip_to_end_of_statement): Likewise.
3854 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
3855 (cp_parser_skip_to_closing_brace): Likewise.
3856 (cp_parser_skip_until_found): Likewise.
3857 (cp_parser_statement): Add in_compound argument; update callers.
3858 Use it to decide how to handle pragma parsing.
3859 (cp_parser_labeled_statement): Add in_compound argument; pass
3860 it on to cp_parser_statement.
3861 (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
3862 (cp_parser_declaration_seq_opt): Likewise.
3863 (cp_parser_parameter_declaration): Likewise.
3864 (cp_parser_member_specification_opt): Likewise.
3865 (cp_parser_function_definition_after_decl): Likewise.
3866 (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
3867 (cp_parser_pragma): New.
3870 2006-01-04 Dirk Mueller <dmueller@suse.com>
3872 * decl.c (finish_constructor_body): create simple
3873 compound stmt instead of a if(1) { } construct.
3875 2006-01-03 Mark Mitchell <mark@codesourcery.com>
3878 * name-lookup.c (push_class_level_binding): When a derived class
3879 provides a type binding, eliminate any type binding from a base
3883 * repo.c (repo_emit_p): Always instantiate static data members
3884 initialized by constant expressions, so that there values are
3887 2006-01-02 Mark Mitchell <mark@codesourcery.com>
3890 * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
3891 conversion operator.
3892 * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
3895 * class.c (add_method): Never associate more than one destructor
3896 with a single class.
3899 * cp-tree.h (do_friend): Adjust prototype.
3900 * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
3901 (grokdeclarator): Likewise. Refine check for invalid
3902 declarations/definitions of member functions outside of their own
3904 * friend.c (do_friend): Make funcdef_flag a bool, not an int.
3907 * parser.c (cp_parser_mem_initializer_list): Check result of
3908 cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
3909 (cp_parser_mem_initializer): Return error_mark_node for failure.
3912 * parser.c (cp_parser_template_parameter_list): Call
3913 begin_template_parm_list and end_template_parm_list here.
3914 (cp_parser_type_parameter): Not here.
3915 (cp_parser_template_declaration_after_export): Or here.
3916 (cp_parser_elaborated_type_specifier): Call
3917 cp_parser_check_template_parameters.
3919 * tree.c (build_target_expr_with_type): Use force_target_expr.
3921 * decl2.c (mark_used): Fix typo in comment.
3923 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3925 * parser.c (cp_parser_using_declaration): Skip name-lookup on
3928 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
3930 * cxx-pretty-print.c (pp_cxx_constant): New. Print
3931 string-literal in parens if input program says so.
3932 (pp_cxx_primary_expression): Hand off constant printing to
3934 (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
3935 (pp_cxx_expression): Use pp_cxx_constant for literals.
3936 * error.c (dump_expr): Use pp_constant for literals.
3938 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
3940 * method.c (make_thunk): Don't set comdat_linkage here.
3941 (use_thunk): Make thunk one only here, if thunk target is
3944 2005-12-26 Mark Mitchell <mark@codesourcery.com>
3947 * decl.c (grokdeclarator): Remove dead code.
3948 * ptree.c (cxx_print_xnode): Handle BASELINK.
3949 * parser.c (make_id_declarator): Add sfk parameter.
3950 (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
3952 (cp_parser_declarator_id): Simplify BASELINKs here.
3953 (cp_parser_member_declaration): Adjust calls to
3956 2005-12-26 Mark Mitchell <mark@codesourcery.com>
3958 PR c++/23171, c++/23172, c++/25417.
3959 * typeck.c (build_unary_op): Create temporary variables for
3960 compound literals whose addresses are taken.
3961 * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
3962 * decl.c (reshape_init_vector): Likewise.
3963 (reshape_init): Give it external linkage.
3964 (check_initializer): Use COMPOUND_LITERAL_P.
3965 (initialize_artificial_var): Allow the initializer to be a
3967 * call.c (make_temporary_var_for_ref_to_temp): Use
3968 create_temporary_var.
3969 * cp-tree.h (COMPOUND_LITERAL_P): New macro.
3970 (rehape_init): Declare.
3971 * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
3972 * semantics.c (finish_compound_literal): Use reshape_init.
3974 2005-12-23 Mark Mitchell <mark@codesourcery.com>
3977 * pt.c (instantiate_template): Handle SFINAE.
3979 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3981 * decl.c (grokdeclarator): Improve diagnostic for friend
3982 declarations of class members.
3984 2005-12-22 Mark Mitchell <mark@codesourcery.com>
3987 * tree.c (really_overloaded_fn): Tweak comment.
3988 * pt.c (tsubst_call_declarator_parms): Remove.
3989 (tsubst_copy): Call mark_used on the member referenced by an
3991 * semantics.c (finish_qualified_id_expr): Simplify.
3992 * decl2.c (mark_used): Accept BASELINKs.
3995 * typeck.c (build_unary_op): Pass DECLs not names to
3997 * init.c (build_offset_ref): Do not do name lookup. Do not call
3999 * call.c (build_call): Simplify and tidy.
4000 * semantics.c (finish_qualified_id_expr): Call mark_used.
4002 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4005 * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
4006 identify a single '0'.
4008 2005-12-20 Mark Mitchell <mark@codesourcery.com>
4011 * decl.c (use_eh_spec_block): New function.
4012 (store_parm_decls): Use it.
4013 (finish_function): Likewise.
4015 2005-12-19 Mark Mitchell <mark@codesourcery.com>
4018 * init.c (expand_member_init): Print messages about baseclasses
4019 using %T rather than %D.
4022 * class.c (add_method): Do not treat templates as identical unless
4023 their return types are the same.
4025 2005-12-12 Mark Mitchell <mark@codesourcery.com>
4028 * tree.c (build_qualified_name): Return error_mark_node for
4031 2005-12-10 Mark Mitchell <mark@codesourcery.com>
4034 * pt.c (tsubst_copy_and_build): Permit dependent types for the
4035 object in a class member access expression.
4037 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
4040 * mangle.c (write_bare_function_type): Mangle return type for
4041 methods of Java classes
4043 2005-12-08 Th�dore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4045 * call.c (build_conditional_expr): Print types in error messages.
4047 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4049 * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
4051 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4053 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
4055 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4057 * Make-lang.in (c++.all.build, c++.install-normal): Remove.
4059 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
4061 * Make-lang.in: Remove all dependencies on s-gtype.
4063 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
4066 * decl.c (reshape_init_array_1): Handle max_index of -1.
4068 2005-12-06 Roger Sayle <roger@eyesopen.com>
4070 * typeck.c (build_binary_op): Issue warning if either operand of a
4071 comparison operator is a string literal, except for testing equality
4072 or inequality against NULL.
4074 2005-12-06 Roger Sayle <roger@eyesopen.com>
4077 * decl.c (compute_array_index_type): Check that itype is an
4078 INTEGER_CST node before testing/clearing TREE_OVERFLOW.
4080 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
4082 * ptree.c (cxx_print_decl): Update to check for decl_common
4085 2005-12-02 Mark Mitchell <mark@codesourcery.com>
4088 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
4091 2005-12-02 Richard Guenther <rguenther@suse.de>
4093 * semantics.c (simplify_aggr_init_expr): Use buildN instead
4096 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
4098 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
4100 (cp_parser_template_argument_list): Use XRESIZEVEC instead of
4102 * class.c (pushclass): Likewise.
4104 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
4106 * decl2.c (get_priority_info): Use XNEW, not xmalloc.
4107 * decl.c (push_switch): Likewise.
4108 * lex.c (handle_pragma_implementation): Likewise.
4109 * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
4111 (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
4112 * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
4113 * g++spec.c (lang_specific_driver): Likewise.
4114 * mangle.c (save_partially_mangled_name): Likewise.
4115 * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
4116 (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
4117 (cp_parser_sizeof_operand): Likewise.
4118 * repo.c (open_repo_file, open_repo_file): Likewise.
4120 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
4122 * parser.c (cp_parser_make_typename_type): Call make_typename_type
4123 with tf_none instead of magic value 0.
4124 (cp_parser_explicit_instantiation): Call do_type_instantiation
4125 with tf_error instead of magic value 1.
4126 (cp_parser_elaborated_type_specifier): Call make_typename_type
4127 with tf_error instead of magic value 1.
4128 (cp_parser_class_name): Likewise.
4129 (cp_parser_lookup_name): Likewise.
4131 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
4133 * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
4136 2005-11-30 Jason Merrill <jason@redhat.com>
4139 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
4142 2005-11-30 Ben Elliston <bje@au.ibm.com>
4144 * typeck.c (build_x_unary_op): Correct spelling in error message.
4146 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
4149 * class.c (check_field_decls): Only set DECL_PACKED on a field
4150 when its natural alignment is > BITS_PER_UNIT.
4152 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4155 * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
4157 2005-11-26 Richard Henderson <rth@redhat.com>
4159 * lex.c: Update for pragma_lex rename.
4160 * parser.c: Likewise.
4162 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4165 * decl.c (grokparms): Do not allow typedef-names in a '(void)'
4168 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4170 * typeck2.c (process_init_constructor_union): Remove check for
4171 unnamed union members.
4173 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4175 * name-lookup.c (lookup_name_real): Merge two if's.
4177 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4179 * pt.c (instantiate_class_template): Clean-up.
4181 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4183 * pt.c (template_class_depth_real): Remove. Move functionality to ...
4184 (template_class_depth): ... here, replacing count_specializations
4185 with 0. Adjust comment.
4187 2005-11-24 Richard Guenther <rguenther@suse.de>
4188 Dirk Mueller <dmueller@suse.de>
4191 * typeck.c (build_reinterpret_cast_1): Use
4192 strict_aliasing_warning.
4194 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4197 * pt.c (check_instantiated_args): Reword diagnostic message about
4198 template argument involving local types.
4200 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
4203 * typeck.c (build_array_ref): Avoid code duplicate. Use common
4204 C/C++ diagnostic function warn_array_subscript_with_type_char.
4206 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
4209 * error.c (resolve_virtual_fun_from_obj_type_ref): New.
4210 (dump_expr): Use it in <case CALL_EXPR>.
4212 2005-11-21 Richard Henderson <rth@redhat.com>
4214 * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
4216 * name-lookup.c (lookup_name): Remove prefer_type argument.
4217 (lookup_name_prefer_type): New.
4218 * decl.c (lookup_and_check_tag): Use them.
4219 * pt.c (tsubst_friend_class): Likewise.
4220 (lookup_template_class): Likewise.
4221 (tsubst_copy_and_build): Likewise.
4222 * name-lookup.h (lookup_name_prefer_type): New.
4223 (lookup_name): Remove declaration.
4225 2005-11-18 Mark Mitchell <mark@codesourcery.com>
4228 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
4230 * name-lookup.c (set_decl_namespace):
4232 2005-11-18 Mike Stump <mrs@apple.com>
4234 * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
4235 * name-lookup.c (lookup_name_two): Remove.
4236 (lookup_name_one): Add.
4237 * name-lookup.h (lookup_name_two): Remove.
4238 (lookup_name_one): Add.
4240 2005-11-15 Jason Merrill <jason@redhat.com>
4243 * method.c (locate_copy): Also use skip_artificial_parms here.
4244 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
4246 (locate_ctor): Abort if we fail to find a default constructor.
4248 2005-11-15 Mike Stump <mrs@apple.com>
4250 * name-lookup.c (lookup_name_two): Add.
4251 * name-lookup.h: Likewise.
4253 2005-11-15 Mark Mitchell <mark@codesourcery.com>
4256 * typeck.c (check_for_casting_away_constness): Use the diag_fn.
4257 (build_const_cast_1): Call it, for C-style casts.
4259 2005-11-14 Mark Mitchell <mark@codesourcery.com>
4262 * pt.c (check_explicit_specialization): Don't check for C linkage.
4263 (push_template_decl_real): Likewise.
4264 * parser.c (cp_parser_explicit_specialization): Check here.
4265 (cp_parser_template_declaration_after_export): And here.
4267 * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
4270 2005-11-14 Jason Merrill <jason@redhat.com>
4273 * method.c (locate_ctor): Skip all artificial parms, not just
4276 2005-11-14 Mark Mitchell <mark@codesourcery.com>
4278 * parser.c (eof_token): Add initializer for ambiguous_p.
4280 2005-11-13 Mark Mitchell <mark@codesourcery.com>
4283 * decl.c (check_redeclaration_exception_specification): New
4285 (duplicate_decls): Use it.
4286 * error.c (fndecl_to_string): Print the template parameter list.
4289 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
4291 (pp_cxx_original_namespace_definition): Likewise.
4292 * name-lookup.c (ambiguous_decl): Don't issue error messages;
4293 instead return lists of ambiguous candidates.
4294 (select_decl): Handle ambiguous namespace lookups.
4295 * parser.c (cp_token): Add ambiguous_p.
4296 (cp_lexer_get_preprocessor_token): Set it.
4297 (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
4298 when a qualified name uses an invalid scope.
4299 (cp_parser_primary_expression): Print ambiguous candidates.
4300 (cp_parser_type_parameter): Adjust comment to reflect new
4301 parameter name for cp_parser_lookup_name.
4302 (cp_parser_template_argument): Likewise.
4303 (cp_parser_elaborated_type_specifier): Likewise.
4304 (cp_parser_namespace_name): Likewise.
4305 (cp_parser_class_name): Print ambiguous candidates.
4306 (cp_parser_lookup_name): Rename ambiguous_p parameter to
4307 ambiguous_decls. Use it to return a list of ambiguous candiates
4308 when a lookup is ambiguous.
4309 (cp_parser_lookup_name_simple): Adjust comment to reflect new
4310 parameter name for cp_parser_lookup_name.
4312 2005-11-12 Jakub Jelinek <jakub@redhat.com>
4315 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
4316 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
4320 * pt.c (tsubst_copy_asm_operands): New function.
4321 (tsubst_expr) <case ASM_EXPR>: Use it.
4323 2005-11-08 Jakub Jelinek <jakub@redhat.com>
4326 * decl.c (redeclaration_error_message): Issue diagnostics about
4327 olddecl and newdecl disagreement on __thread property.
4328 (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
4330 2005-11-08 Jason Merrill <jason@redhat.com>
4333 * method.c (use_thunk): Use build_cplus_new instead of
4336 2005-11-06 Jason Merrill <jason@redhat.com>
4337 James A. Morrison <phython@gcc.gnu.org>
4340 * decl2.c (cp_finish_file): Fix conditions for undefined warning.
4341 Set TREE_NO_WARNING instead of TREE_PUBLIC.
4342 * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
4343 a warning on a function we didn't instantiate because of excessive
4346 2005-11-06 Mark Mitchell <mark@codesourcery.com>
4348 * class.c (record_subobject_offsets): Don't record offsets past
4349 biggest empty class for non-empty base classes.
4350 (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
4351 keeping track of the size of emptyclasses.
4354 * class.c (sizeof_biggest_empty_class): New variable.
4355 (record_subobject_offsets): Don't record offsets past biggest
4356 empty class for data members. Replace vbases_p parameter with
4357 is_data_member parameter.
4358 (build_base_field): Adjust call.
4359 (layout_class_type): Likewise. Maintain
4360 sizeof_biggest_empty_class.
4362 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
4364 * decl2.c, init.c, typeck.c: Fix comment typos.
4366 2005-11-04 Richard Guenther <rguenther@suse.de>
4369 * init.c (build_vec_init): Build comparison of matching
4372 2005-11-03 Josh Conner <jconner@apple.com>
4375 pt.c (tsubst): Accept zero-length array if tf_error is set
4376 in complain flags. Change error message for negative-
4379 2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
4381 * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
4384 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
4387 * error.c (cp_cpp_error): New function.
4388 * cp-tree.h (cp_cpp_error): Declare.
4389 * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
4390 and error callback after lexing.
4392 2005-11-03 Mark Mitchell <mark@codesourcery.com>
4395 * pt.c (register_specialization): Update inline flags on clones.y
4397 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
4400 * decl.c (declare_local_label): Return 0 for variables
4401 with error_mark_node as their types.
4403 2005-11-02 Mark Mitchell <mark@codesourcery.com>
4406 * call.c (build_conditional_expr): Do bad conversions, if there's
4410 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
4411 message for use of overloaded functions on LHS of "." operator.
4414 * parser.c (cp_parser_postfix_expression): Use
4415 cp_parser_elaborated_type_specifier to handle typename-types in
4417 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
4418 template argument list if the closing ">" is not found.
4421 * pt.c (instantiate_decl): Use cp_finish_decl, not
4422 finish_static_data_member_decl.
4424 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4426 * decl.c (grokfndecl): Remove the setting
4427 of the return type of the function type
4428 of main after erroring about must returning
4431 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4434 * decl.c (grokfndecl): Create a new function type
4435 after erroring out about main not returning int.
4437 2005-10-28 Josh Conner <jconner@apple.com>
4440 * parser.c (cp_parser_member_declaration): Detect and handle
4441 a template specialization.
4443 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4446 * decl.c (start_decl): Check that the decl is an
4447 error_mark_node before getting the type.
4448 Remove the check for the decl's type being an
4451 2005-10-21 Mark Mitchell <mark@codesourcery.com>
4454 * parser.c (cp_parser_init_declarator): Pass attributes to
4457 2005-10-20 Mark Mitchell <mark@codesourcery.com>
4460 * search.c (accessible_p): Check access in the outermost set of
4461 template parameters.
4463 2005-10-20 Richard Guenther <rguenther@suse.de>
4465 * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
4467 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4470 * decl.c (grokdeclarator): Reject unqualified destructors in
4471 friend declarations.
4473 2005-10-18 Mark Mitchell <mark@codesourcery.com>
4476 * pt.c (convert_template_argument): Use canonical type variants in
4477 template specializations.
4479 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
4482 * name-lookup.c (arg_assoc): Template args can be null in a
4486 * class.c (update_vtable_entry_for_fn): Don't process invalid
4487 covariant overriders.
4490 * cp-tree.h (add_method): Add return value.
4491 * class.c (add_method): Return success indicator.
4492 * semantics.c (finish_member_declaration): Don't add an invalid
4493 method to the method list.
4495 2005-10-17 Mark Mitchell <mark@codesourcery.com>
4498 * call.c (build_new_method_call): Do not show VTT parameters to
4501 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4504 * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
4505 only complain about missing statement.
4507 2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
4510 * cp-tree.h (BASELINK_QUALIFIED_P): New.
4511 * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
4512 * typeck.c (finish_class_member_access_expr): Set it.
4515 * decl.c (check_default_argument): Don't check
4516 processing_template_decl or uses_template_parms here.
4517 (grokparms): Only call check_default_argument when not processing
4519 * parser.c (cp_parser_late_parsing_default_arg): Call
4520 check_default_argument when not processing a template decl.
4522 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4525 * decl2.c (mark_used): Use uses_template_parms instead of
4527 * init.c (constant_value_1): Handle uninstantiated templates
4529 * pt.c (instantiate_decl): Add sanity check.
4531 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4534 * typeck.c (check_template_keyword): Fix thinko.
4536 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
4539 * decl.c (pop_switch): Only call c_do_switch_warnings
4540 when not processing templates.
4542 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4545 * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
4546 (check_template_keyword): New function.
4547 (finish_id_expression): Change prototoype.
4548 (finish_qualified_id_expr): Change prototype.
4549 (build_qualified_name): New function.
4550 (finish_class_member_access_expr): Change prototype.
4551 * init.c (build_offset_ref): Use build_qualified_name.
4552 * mangle.c (write_expression): Likewise.
4553 * parser.c (cp_parser_primary_expression): Remove qualifying_class
4554 parameter. Add address_p and template_arg_p. Use
4555 build_qualified_name.
4556 (cp_parser_id_expression): Default *template_p to
4557 template_keyword_p. Check for invalid uses of the template
4559 (cp_parser_postfix_expression): Eliminate special handling for
4560 qualified names. Adjust call to cp_parser_primary_expression.
4561 (cp_parser_postfix_dot_deref_expression): Adjust call to
4562 cp_parser_id_expression and finish_class_member_access_expr.
4563 (cp_parser_template_argument_list): Add comment.
4564 (cp_parser_template_argument): Adjust use of
4565 cp_parser_primary_expression. Remove call to
4566 finish_qualified_id_expr.
4567 (cp_parser_lookup_name): Use build_qualified_name.
4568 * pt.c (tsubst): Use build_qualified_name.
4569 (tsubst_qualified_id): Likewise. Adjust call to
4570 finish_qualified_id_expr.
4571 (tsubst_copy): Use build_qualified_name.
4572 (tsubst_copy_and_build): Adjusts call to finish_id_expression and
4573 finish_class_member_access_expr.
4574 * semantics.c (finish_non_static_data_member): Use
4575 build_qualified_name.
4576 (finish_qualified_id_expr): Add template_p and template_arg_p
4578 (finish_id_expression): Remove qualifiying_class parameter. Add
4579 template_p, done, address_p, and template_arg_p. Use
4580 build_qualified_name. Adjust calls to
4581 finish_class_member_acess_expr.
4582 * tree.c (build_qualified_name): New function.
4583 * typeck.c (check_template_keyword): New function.
4584 (finish_class_member_access_expr): Add template_p argument. Check
4585 for invalid uses of the template keyword.
4587 2005-10-15 Mark Mitchell <mark@codesourcery.com>
4590 * class.c (maybe_warn_about_overly_private_class): Lazy
4591 constructors are public.
4593 2005-10-14 Mark Mitchell <mark@codesourcery.com>
4596 * call.c (convert_like_real): Rely on convert_and_check to issue
4597 warnings about overflow and conversion to unsigned.
4598 * decl.c (finish_enum): Use the location of the enumerators, not
4599 the closing brace of the enumeration, when reporting warnings
4601 (build_enumerator): Use error_mark_node for erroneous values.
4602 * typeck2.c (digest_init): Remove reference to "signature pointer"
4605 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
4608 * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
4609 (maybe_clone_body): Track the first clone.
4611 2005-10-13 Nathan Sidwell <nathan@codesourcery.com>
4614 * class.c (build_base_path): The vtable is always the first thing
4617 2005-10-13 Mark Mitchell <mark@codesourcery.com>
4620 * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
4621 * decl.c (duplicate_decls): Merge it into new declarations.
4622 (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
4623 (cp_finish_decl): Set it, when appropriate.
4626 * call.c (build_new_method_call): Correct pretty-printing of
4628 * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
4632 * decl.c (start_method): Return error_mark_node for errors.
4635 * pt.c (push_template_decl_real): Complain about attempts to
4636 declare template variables.
4639 * pt.c (tsubst_template_parms): Set processing_template_decl while
4640 processing the parameters.
4641 (tsubst_decl): Set processing_template_decl when substituting into
4645 * pt.c (most_specialized_instantiation): Robustify.
4648 * semantics.c (finish_id_expression): Issue errors about uses of
4649 local variables in containing functions even in templates.
4651 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
4655 * class.c (finish_struct_1): Call
4656 targetm.cxx.adjust_class_at_definition.
4659 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
4662 * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
4663 with already looked up member functions. Assert we're not
4664 returning a NON_DEPENDENT_EXPR with unknown type.
4665 * typeck.c (finish_class_member_access_expr): We can get
4666 non-template-id-expr baselinks. If the lookup finds a baselink,
4667 remember it even inside templates.
4670 * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
4671 TYPE_DECL. Use dependent_type_p to check type.
4672 * pt.c (uses_template_parms_p): Use dependent_type_p for a
4674 (type_dependent_expression_p): Assert we've not been given a
4678 * decl.c (check_function_type): Correctly overwrite incomplete
4679 return type with void type.
4680 * typeck.c (check_return_expr): If the function's return type is
4681 void, don't try and convert a return expr.
4683 2005-10-12 David Edelsohn <edelsohn@gnu.org>
4686 * call.c (build_object_call): If BINFO is NULL, bypass
4687 lookup_fnfields and set fns to NULL_TREE.
4689 2005-10-12 Paolo Bonzini <bonzini@gnu.org>
4692 * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
4693 an ADDR_EXPR of a LABEL_DECL as &&.
4695 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
4698 * class.c (walk_subobject_offsets): Don't walk error_mark_node.
4700 2005-10-11 Ian Lance Taylor <ian@airs.com>
4703 * cvt.c (convert_to_void): Don't warn about unused values when
4704 processing a template declaration.
4706 2005-10-11 Mark Mitchell <mark@codesourcery.com>
4709 * call.c (convert_like_real): Use decl_constant_value, not
4710 integral_constant_value.
4711 * init.c (constant_value_1): New function.
4712 (integral_constant_value): Use it.
4713 (decl_constant_value): Likewise.
4714 * typeck.c (decay_conversion): Use decl_constant_value, not
4715 integral_constant_value.
4718 * parser.c (cp_parser_elaborated_type_specifier): Don't treat
4719 class types as templates if the type is not appearing as part of a
4720 type definition or declaration.
4722 2005-10-10 Mark Mitchell <mark@codesourcery.com>
4725 * pt.c (instantiate_decl): Call finish_static_data_member_decl for
4726 static data members.
4728 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4729 Mark Mitchell <mark@codesourcery.com>
4732 * parser.c (cp_parser_template_argument_list): Do not treat
4733 contents of argument list as part of a constant expression.
4735 2005-10-10 Mark Mitchell <mark@codesourcery.com>
4738 * decl.c (grokdeclarator): Do not require template parameter lists
4739 for explicitly specialized class.
4740 * error.c (dump_aggr_type): Do not dump template arguments for
4741 non-primary specializations.
4742 (dump_function_name): Likewise.
4745 * pt.c (instantiate_decl): Instantiate the initializer of
4746 a static data member in the namespace containing the class
4747 containing the static data member.
4749 2005-10-08 James A. Morrison <phython@gcc.gnu.org>
4752 * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
4753 scopes as nondependent.
4755 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4757 * call.c (resolve_args): Remove redundant test.
4759 2005-10-05 Paolo Bonzini <bonzini@gnu.org>
4761 PR tree-optimization/21419
4762 PR tree-optimization/24146
4763 PR tree-optimization/24151
4765 * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
4766 read-only. Set ASM_VOLATILE_P for asms without outputs.
4768 2005-10-05 Nathan Sidwell <nathan@codesourcery.com>
4771 * call.c (joust): Adjust length count to more_specialized_fn.
4772 * pt.c (more_specialized_fn): Cope with non-static member vs
4775 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
4778 * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
4779 instead of change_decl_assembler_name.
4781 2005-10-03 Alexandre Oliva <aoliva@redhat.com>
4783 * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
4785 2005-10-03 Mark Mitchell <mark@codesourcery.com>
4788 * repo.c: Include flags.h.
4789 (finish_repo): Add -frandom-seed to the arguments.
4791 2005-10-02 Mark Mitchell <mark@codesourcery.com>
4794 * parser.c (cp_parser_template_argument): Don't turn "T::f" into
4796 * pt.c (convert_nontype_argument): Remove ??? comment.
4799 * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
4800 when class rvalues are lvalues.
4802 2005-09-28 Mark Mitchell <mark@codesourcery.com>
4805 * decl.c (grokdeclarator): Always pedwarn about overqualified
4808 2005-09-27 Mark Mitchell <mark@codesourcery.com>
4811 * name-lookup.c (maybe_process_template_type_declaration): Don't
4812 treat forward declarations of classes as templates just because
4813 we're processing_template_decl.
4814 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
4817 2005-09-26 Jason Merrill <jason@redhat.com>
4820 * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
4821 * name-lookup.c (pushdecl_maybe_friend): Check it.
4822 * decl.c (begin_function_body): Do nothing if it's false.
4823 (finish_function_body): Ditto.
4824 (outer_curly_brace_block): New fn.
4825 (finish_function): Use it.
4827 2005-09-26 Richard Guenther <rguenther@suse.de>
4830 * decl2.c (do_static_destruction): Remove.
4831 (finish_static_initialization_or_destruction): Likewise.
4832 (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
4833 (NEEDS_GUARD_P): Likewise.
4834 (do_static_initialization): Rename to
4835 do_static_initialization_or_destruction. Process all
4836 initializers/destructors and handle common conditionalizing.
4837 (start_static_initialization_or_destruction): Rename to
4838 one_static_initialization_or_destruction. Handle only
4839 decl-specific conditionalizing.
4840 (cp_finish_file): Call do_static_initialization_or_destruction.
4842 2005-09-22 Jakub Jelinek <jakub@redhat.com>
4845 * class.c (find_final_overrider): Move diagnostic about no unique final
4847 (update_vtable_entry_for_fn): ... here.
4849 2005-09-21 Mark Mitchell <mark@codesourcery.com>
4852 * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
4854 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4857 * call.c (resolve_args): Return error_mark_node on arguments
4858 whose TREE_TYPE is error_mark_node.
4860 2005-09-20 Jakub Jelinek <jakub@redhat.com>
4863 * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
4864 get_tinfo_ptr calls.
4866 2005-09-16 Mark Mitchell <mark@codesourcery.com>
4869 * parser.c (cp_parser_enclosed_template_argument_list): Make sure
4870 skip_evaluation is false when processing template arguments.
4873 * pt.c (check_instantiated_args): Treat uses of anonymous types as
4874 causing type-deduction failure.
4876 2005-09-15 Jason Merrill <jason@redhat.com>
4879 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
4882 2005-09-15 Mark Mitchell <mark@codesourcery.com>
4885 * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
4886 processing template arguments.
4888 * pt.c (check_explicit_instantiation_namespace): Fix typo.
4891 * decl.c (check_class_member_definition_namespace): New function.
4892 (grokfndecl): Use it.
4893 (grokvardecl): Likewise.
4894 (grokdecl): Improve documentation.
4895 * pt.c (check_explicit_instantiation_namespace): New function.
4896 (register_specialization): Call check_specialization_namespace
4897 when replacing an implicitly instantiated function.
4898 (check_explicit_specialization): Ensure that DECL_CONTEXT is set
4899 correctly for namespace-scope specializations.
4900 (do_decl_instantiation): Use
4901 check_explicit_instantiation_namespace.
4902 (do_type_instantiation): Likewise.
4904 2005-09-15 Nathan Sidwell <nathan@codesourcery.com>
4907 * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
4909 2005-09-13 Bastian Blank <waldi@debian.org>
4912 * mangle.c (find_substitution): Do not use special substitutions
4913 for identifiers not in std::.
4915 2005-09-13 Mark Mitchell <mark@codesourcery.com>
4918 * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
4921 2005-09-13 Mark Mitchell <mark@codesourcery.com>
4924 * pt.c (tsubst_default_argument): Do treat default argument
4925 expressions as occurring in the context of the function called.
4927 2005-09-12 Mark Mitchell <mark@codesourcery.com>
4930 * parser.c (cp_parser_primary_expression): Recognize the closing
4931 ">" of a template-argument-list after a floating-point literal as
4932 the end of a cast expression.
4934 2005-09-12 Mark Mitchell <mark@codesourcery.com>
4937 * cvt.c (perform_qualification_conversions): Don't create
4938 unnecessary NOP_EXPRs.
4939 * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
4941 2005-09-12 Ian Lance Taylor <ian@airs.com>
4944 * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
4945 bitfield. Make dummy bitfield one bit smaller.
4946 (DECL_HIDDEN_FRIEND_P): Define.
4947 (pushdecl_maybe_friend): Declare.
4948 (pushdecl_top_level_maybe_friend): Declare.
4949 * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
4950 Change prototype and all callers. Add assertion that a
4951 DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
4952 DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
4954 * name-lookup.c (supplement_binding): Don't ignore a
4955 DECL_HIDDEN_FRIEND_P.
4956 (pushdecl_maybe_friend): Break out contents of pushdecl. Add
4957 is_friend parameter. Set DECL_ANTICIPATED and
4958 DECL_HIDDEN_FRIEND_P for a friend function.
4959 (pushdecl): Just call pushdecl_maybe_friend.
4960 (pushdecl_with_scope): Add is_friend parameter. Change prototype
4962 (pushdecl_namespace_level): Likewise.
4963 (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
4964 well as DECL_ANTICIPATED when checking for a builtin.
4965 (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
4966 DECL_ANTICIPATED when checking for a builtin.
4967 (do_nonmember_using_decl): Likewise.
4968 (pushdecl_top_level_1): Add is_friend parameter. Change all
4970 (pushdecl_top_level_maybe_friend): New function.
4971 (remove_hidden_names): New function.
4972 (struct arg_lookup): Add args field.
4973 (friend_of_associated_class_p): New static function.
4974 (arg_assoc_namespace): Ignore hidden functions which are not
4975 friends of an associated class of some argument.
4976 (lookup_arg_dependent): Remove hidden functions from list passed
4977 in. Initialize k.args.
4978 * name-lookup.h (remove_hidden_names): Declare.
4979 * friend.c (do_friend): Call pushdecl_maybe_friend instead of
4981 * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
4982 an assertion, with a check for DECL_HIDDEN_FRIEND_P.
4983 (build_new_function_call): Add koenig_p parameter. Change
4984 prototype and callers.
4985 * pt.c (register_specialization): Add is_friend parameter. Change
4987 (push_template_decl_real): Change is_friend parameter to bool.
4988 Change prototype and all callers.
4989 (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
4990 instead of pushdecl_top_level.
4992 2005-09-11 Richard Henderson <rth@redhat.com>
4994 * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
4995 * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
4997 2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
4999 * parser.c (cp_parser_translation_unit): Simplify. The while-block
5000 was actually executed at most once.
5002 2005-09-09 Richard Henderson <rth@redhat.com>
5005 * cp-tree.def (ALIAS_DECL): Remove.
5006 * cp-lang.c (cp_init_ts): Remove support for it.
5007 * error.c (dump_decl): Likewise.
5008 * name-lookup.c (pushdecl): Likewise.
5009 * semantics.c (finish_id_expression): Likewise.
5010 * decl2.c (build_anon_union_vars): Use a VAR_DECL with
5011 DECL_VALUE_EXPR instead.
5013 2005-09-09 Mark Mitchell <mark@codesourcery.com>
5016 * decl.c (start_preparsed_function): Do not pay attention to
5017 #pragma interface for implicitly-defined methods.
5018 * decl2.c (cp_finish_file): Do not complain about uses of inline
5019 functions that have bodies, even if we decided not to emit the
5020 body in this translation unit.
5021 * semantics.c (note_decl_for_pch): Do not mess with linkage.
5022 (expand_or_defer_fn): Make inline, non-template functions COMDAT
5025 2005-09-08 Richard Henderson <rth@redhat.com>
5028 * decl.c (wrapup_globals_for_namespace): Call
5029 emit_debug_global_declarations.
5030 * decl2.c (cp_finish_file): Likewise.
5032 2005-09-08 Mark Mitchell <mark@codesourcery.com>
5035 * decl2.c (mark_used): Instantiate static data members initialized
5036 by constants, even in a template.
5038 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
5041 * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
5044 2005-09-07 Richard Guenther <rguenther@suse.de>
5046 * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
5047 for EMPTY_CLASS_EXPR.
5049 2005-09-06 Jakub Jelinek <jakub@redhat.com>
5052 * typeck.c (check_return_expr): Add no_warning argument. Set
5053 *no_warning to true if "return-statement with no value, in function
5054 returning" warning has been issued.
5055 * cp-tree.h (check_return_expr): Adjust prototype.
5056 * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
5057 check_return_expr set *no_warning to true.
5059 2005-09-06 Mark Mitchell <mark@codesourcery.com>
5061 * cp-tree.h (rvalue): New function.
5062 * call.c (build_conditional_expr): Use it.
5063 * init.c (build_new_1): Likewise.
5064 * rtti.c (build_dynamic_cast_1): Likewise.
5065 * tree.c (rvalue): New function.
5066 * typeck.c (build_unary_op): Use it.
5067 (build_static_cast_1): Likewise.
5070 * init.c (build_new_1): Make sure the entire array type is
5071 complete, not just its element types.
5073 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5075 * decl.c (check_elaborated_type_specifier): Remove redundant check.
5077 2005-09-06 Jakub Jelinek <jakub@redhat.com>
5080 * typeck.c (ignore_overflows): New helper function.
5081 (build_static_cast_1): Use it.
5083 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
5085 * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
5086 Follow spelling conventions.
5088 2005-09-05 Mark Mitchell <mark@codesourcery.com>
5091 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
5094 2005-09-05 Mark Mitchell <mark@codesourcery.com>
5097 * semantics.c (finish_stmt_expr_expr): Add an explicit
5098 initialization to the last statement in the statement-expression.
5099 * (finish_stmt_expr): Adjust accordingly.
5101 2005-09-03 Mark Mitchell <mark@codesourcery.com>
5104 * decl2.c (mark_used): Always instantiate static data members
5105 initialized by constant expressions.
5106 * pt.c (instantiate_decl): Instantiate the initializers for static
5107 data members initialized by constant expressions.
5110 * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
5111 finishing processing for a template function in a local class.
5113 2005-09-02 Mark Mitchell <mark@codesourcery.com>
5114 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
5115 around functions in local classes.
5117 2005-09-02 Mark Mitchell <mark@codesourcery.com>
5120 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
5121 around functions in local classes.
5123 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
5126 * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
5127 init, call generate_ctor_or_dtor_function.
5129 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5132 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
5133 lookup_name_real on final parse.
5135 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5138 * semantics.c (qualified_name_lookup_error): Do not complain again
5141 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5144 * parser.c (cp_parser_namespace_name): Move diagnostic for
5145 invalid namespace-name to here from ...
5146 * name-lookup.c (do_namespace_alias): ... here and ...
5147 (do_using_directive): ... here. Remove dead code.
5149 2005-08-28 Mark Mitchell <mark@codesourcery.com>
5152 * cp-tree.h (saved_scope): Add skip_evaluation.
5153 * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
5154 DECL_INITIAL, to determine whether or not a static data member was
5155 initialized in the class-specifier.
5156 (cp_finish_decl): Add comment.
5157 * init.c (integral_constant_value): Subtitute into the
5158 initializers for static data members in templates.
5159 * name-lookup.c (push_to_top_level): Save skip_evaluation.
5160 (pop_from_top_level): Restore it.
5161 * pt.c (instantiate_class_template): Do not substitute into the
5162 intializers of static data members when instantiating a class.
5163 (regenerate_decl_from_template): Simplify.
5164 (instantiate_decl): Tidy. Substitute into the initializer for a
5165 static data member even when the definition of the data member is
5168 2005-08-26 Mark Mitchell <mark@codesourcery.com>
5171 * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
5172 (type_dependent_expression_p): Allow BASELINKs whose associated
5173 functions are simply a FUNCTION_DECL.
5176 * cp-tree.h (build_vec_init): Adjust prototype.
5177 * init.c (perform_member_init): Adjust call to build_vec_init.
5178 (build_aggr_init): Likewise.
5179 (build_new_1): Do not call build_default_init for array types.
5180 (build_vec_init): Add explicit_default_init_p parameter. Perform
5181 default initialization of vector elements when set.
5182 * typeck.c (build_modify_expr): Adjust call to build_vec_init.
5184 2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
5187 * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
5190 2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
5193 * parser.c (cp_lexer_peek_nth_token): Relax assert.
5195 2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
5198 * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
5200 2005-08-22 James E Wilson <wilson@specifix.com>
5202 PR tree-optimization/23426
5203 * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
5206 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5209 * pt.c (push_template_decl_real): Return error_mark_node if the
5210 number of template parameters does not match previous definition.
5212 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5215 * decl.c (require_complete_types_for_parms): Mark incomplete types
5218 2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5220 * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
5221 Fix typo in leading comment.
5223 2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5225 * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
5227 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
5229 * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
5230 * call.c (add_template_candidate_real): Pass down 'flags' to
5231 fn_type_unification.
5232 (can_convert_arg): New 'flags' argument. Pass it to call to
5233 implicit_conversion instead of LOOKUP_NORMAL.
5234 (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
5235 * class.c (resolve_address_of_overloaded_function): Ditto.
5236 (resolve_address_of_overloaded_function): Ditto.
5237 * decl.c (reshape_init, check_default_argument): Ditto.
5238 * typeck.c (build_ptrmemfunc): Ditto.
5239 * pt.c (type_unification_real): Add 'flags' argument.
5240 (fn_type_unification): Pass 'flags' to type_unification_real.
5241 (type_unification_real): Pass new 'flags' argument to call to
5244 2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
5245 Nathan Sidwell <nathan@codesourcery.com>
5249 * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
5252 2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
5255 Revert my 2005-07-08 patch
5256 * pt.c (type_unification_real): Remove is_method_argument and
5258 (fn_type_unification, unify): Adjust type_unification_real calls.
5260 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5263 * decl2.c (grokfield): Check that method is not static before
5266 2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
5269 * name-lookup.c (pushtag): Process the template type before
5270 altering the identifier lookup fields. Remove unreachable code
5271 creating an empty stub decl.
5273 2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5276 * decl.c (grokdeclarator): Reset storage_class after error.
5278 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5281 * init.c (build_new_1): Check for empty candidate list.
5283 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5286 * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
5287 before calling build_exception_variant.
5289 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5292 * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
5293 if substitution of template args did not succeed.
5295 2005-08-06 Michael Matz <matz@suse.de>
5297 * method.c (use_thunk): Call init_insn_lengths.
5299 2005-08-05 James A. Morrison <phython@gcc.gnu.org>
5302 * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
5303 sorrycount or errorcount are nonzero.
5305 2005-08-05 Mark Mitchell <mark@codesourcery.com>
5307 * name-lookup.c (pushtag): Remove accidental commit from:
5308 2004-12-21 Mark Mitchell <mark@codesourcery.com>
5310 * decl.c (grokdeclarator): Return error_mark_node, not
5311 void_type_node, to indicate errors.
5312 * parser.c (cp_parser_template_parameter_list): Robustify.
5313 (cp_parser_template_parameter): Likewise.
5315 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
5317 * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
5320 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
5322 * method.c: Fix a comment typo.
5324 2005-07-28 Mark Mitchell <mark@codesourcery.com>
5327 * call.c (add_builtin_candidate): Adjust for changes in
5328 representation of pointer-to-member types.
5330 2005-07-28 Mike Stump <mrs@apple.com>
5332 * pt.c (check_explicit_specialization): Add visibility logic.
5333 (lookup_template_class): Likewise.
5334 (instantiate_class_template): Likewise.
5336 2005-07-27 Devang Patel <dpatel@apple.com>
5338 * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
5340 2005-07-25 Ian Lance Taylor <ian@airs.com>
5342 * ptree.c (cxx_print_identifier): Print a leading space if the
5345 2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5347 * call.c (convert_for_arg_passing): Check function pointers when
5348 -Wmissing-format-attribute is activated.
5349 * typeck.c (convert_for_assignment): Likewise.
5351 2005-07-22 Manfred Hollstein <mh@suse.com>
5353 * parser.c (cp_parser_declaration): Fix unitialised warnings.
5355 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
5357 * class.c (build_base_path): Fix typo.
5359 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
5362 * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
5364 2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5366 * call.c: Fix comment typo(s).
5367 * cxx-pretty-print.h: Likewise.
5368 * name-lookup.c: Likewise.
5369 * parser.c: Likewise.
5371 2005-07-20 Douglas Gregor <doug.gregor@gmail.com>
5374 * semantics.c (perform_koenig_lookup): For dependent calls, just
5375 return the set of functions we've found so far. Later, it will be
5376 augmented by those found through argument-dependent lookup.
5377 * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
5378 the optimization that skips namespaces where the functions were
5381 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
5383 Make CONSTRUCTOR use VEC to store initializers.
5384 * call.c (convert_default_arg): Update call to digest_init.
5385 * class.c (dump_class_hierarchy, dump_array): Update to cope with
5386 VEC in CONSTRUCTOR_ELTS.
5387 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
5388 (finish_compound_literal, digest_init): Update declaration.
5389 * decl.c (struct reshape_iter): New data type.
5390 (reshape_init_array): Rename to...
5391 (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
5392 (reshape_init): Rewrite from scratch. Split parts into...
5393 (reshape_init_array, reshape_init_vector, reshape_init_class,
5394 reshape_init_r): New functions.
5395 (check_initializer): Update call to reshape_init. Remove obsolete
5397 (initialize_artificial_var, cp_complete_array_type): Update to cope
5398 with VEC in CONSTRUCTOR_ELTS.
5399 * decl2.c (grokfield): Update calls to digest_init.
5400 (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
5401 * error.c (dump_expr_init_vec): New function.
5402 (dump_expr): Use dump_expr_init_vec.
5403 * init.c (build_zero_init, build_vec_init): Update to cope with VEC
5404 in CONSTRUCTOR_ELTS.
5405 (expand_default_init): Update call to digest_init.
5406 * parser.c (cp_parser_postfix_expression): Use a VEC for the
5408 (cp_parser_initializer_list): Build a VEC of initializers.
5409 * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
5410 in CONSTRUCTOR_ELTS.
5411 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
5412 ptm_initializer, class_initializer, get_pseudo_ti_init): Use
5413 build_constructor_from_list instead of build_constructor.
5414 * semantics.c (finish_compound_literal): Update call to digest_init.
5415 * tree.c (stabilize_init): Update to cope with VEC in
5417 * typeck.c (build_ptrmemfunc1): Likewise.
5418 * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
5420 (store_init_value): Use build_constructor_from_list and update call
5422 (digest_init): Rewrite.
5423 (process_init_constructor): Rewrite from scratch. Split into...
5424 (process_init_constructor_array, picflag_from_initializer,
5425 process_init_constructor_record, process_init_constructor_union):
5427 (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
5429 (build_functional_cast): Use build_constructor_from_list instead of
5432 2005-07-18 Mark Mitchell <mark@codesourcery.com>
5435 * cp-tree.h (instantiate_decl): Change prototype.
5436 * decl2.c (mark_used): Adjust accordingly.
5437 * pt.c (do_decl_instantiation): Likewise.
5438 (instantiate_class_member): Likewise.
5439 (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
5440 Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
5441 that has no definition available.
5442 (instantiate_pending_templates): Adjust call to instantiate_decl.
5444 2005-07-17 Mark Mitchell <mark@codesourcery.com>
5447 * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
5448 * decl.c (duplicate_decls): Re-register template specializations
5449 for functions that have DECL_TEMLPLATE_INFO, even if they do not
5450 have DECL_TEMPLATE_INSTANTIATION set.
5452 2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5454 * call.c (diagnostic_fn_t): New.
5455 (build_temp, convert_like_real): Use diagnostic_fn_t.
5457 2005-07-15 Mark Mitchell <mark@codesourcery.com>
5460 * repo.c (repo_emit_p): Robustify.
5462 2005-07-14 Daniel Berlin <dberlin@dberlin.org>
5465 * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
5467 2005-07-15 Mark Mitchell <mark@codesourcery.com>
5470 * call.c (implicit_conversion): Add c_cast_p parameter.
5471 (standard_conversion): Likewise. Allow conversions between
5472 differently-qualified pointer types when performing a C-style
5474 (add_function_candidate): Adjust callee.
5475 (build_builtin_candidate): Likewise.
5476 (build_user_type_conversion_1): Likewise.
5477 (conditional_conversion): Likewise.
5478 (can_convert_arg): Likewise.
5479 (can_convert_arg_bad): Likewise.
5480 (perform_implicit_conversion): Likewise.
5481 * cp-tree.h (comp_ptr_ttypes_const): Declare.
5482 * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
5485 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5486 Nathan Sidwell <nathan@codesourcery.com>
5489 * pt.c (tsubst_template_parms): Check for invalid non-type
5492 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
5494 * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
5495 decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
5496 (cp_init_ts): Call init_shadowed_var_for_decl.
5497 Remove include of gt-cp-cp-lang.h.
5498 * cp-objcp-common.c (shadowed_var_for_decl,
5499 decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
5501 (init_shadowed_var_for_decl): New function to initialize
5502 shadowed_var_for_decl.
5503 Include gt-cp-cp-objcp-common.h.
5504 * Make-lang.in (gt-cp-lang.h): Remove.
5505 (gt-cp-cp-objcp-common.h): Add.
5506 (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
5507 (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
5508 * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
5509 * cp-tree (init_shadowed_var_for_decl): Add prototype.
5511 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
5513 * Make-lang.in: Add gt-cp-lang.h.
5515 * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
5517 * config-lang.in: Add cp-lang.c to gtfiles.
5518 * cp-lang.c: Include hashtab.h.
5519 (cp_init_ts): New function.
5520 (LANG_HOOK_INIT_TS): Use macro.
5521 (decl_shadowed_for_var_lookup): New function.
5522 (decl_shadowed_for_var_insert): Ditto.
5523 * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
5524 (NON_THUNK_FUNCTION_CHECK): Ditto.
5525 (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
5526 (DECL_INIT_PRIORITY): Ditto.
5527 (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
5528 (DECL_SHADOWED_FOR_VAR): Use hashtable.
5529 (SET_DECL_SHADOWED_FOR_VAR): Ditto.
5530 * decl.c (duplicate_decls): Update for new/updated structures.
5531 (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
5532 * decl2.c (start_static_initialization_or_destruction): Deal with
5534 * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
5536 * tree.c (handle_init_priority_attribute): Handle priority.
5538 2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
5541 * pt.c (type_unification_real): Add is_method argument. Use it
5542 for this pointer unification.
5543 (fn_type_unification): Adjust type_unification_real call.
5546 2005-07-07 Nathan Sidwell <nathan@codesourcery.com>
5548 * pt.c (type_unification_real): Remove allow_incomplete argument.
5549 Remove unreachable code.
5550 (fn_type_unification): Adjust call to type_unification_real.
5553 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
5555 * Makefile.in (class.o, decl2.o): Adjust dependencies.
5556 * class.c: Include tree-dump.h.
5557 * decl2.c: Include tree-dump.h.
5559 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
5561 * dump.c: Use dump_string_field.
5563 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
5565 * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
5566 minimum GCC version for format checking to 4.1.
5568 2005-07-02 Kazu Hirata <kazu@codesourcery.com>
5570 * Make-lang.in (cc1plus-checksum.c): Use
5571 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
5573 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
5575 * name-lookup.c, parser.c: Use %q, %< and %> to quote in
5578 2005-07-02 Zack Weinberg <zack@codesourcery.com>
5579 Joseph S. Myers <joseph@codesourcery.com>
5581 * error.c (location_of): Add comment.
5582 (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
5583 * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
5584 * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
5585 name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
5586 typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
5587 or cp_pedwarn_at. Mark up some diagnostic strings with N_.
5589 2005-06-30 Daniel Berlin <dberlin@dberlin.org>
5591 * decl.c (require_complete_types_for_parms): Call relayout_decl
5592 instead of layout_decl.
5594 2005-06-30 Zack Weinberg <zack@codesourcery.com>
5595 Jakub Jelinek <jakub@redhat.com>
5597 * cp-lang.c: No need to include cxx-pretty-print.h.
5598 * error.c (cp_printer): Update signature. No need to process
5600 (print_instantiation_partial_context): Output last newline
5601 with pp_base_newline.
5602 * Make-lang.in: Update dependencies.
5604 2005-06-30 Steven Bosscher <stevenb@suse.de>
5606 * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
5607 DECL_THREAD_LOCAL_P.
5608 (cp_finish_decl): Likewise.
5609 (grokvardecl): Set the default DECL_TLS_MODEL here.
5611 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
5613 * cvt.c (ocp_convert): Use invalid_conversion hook.
5614 * typeck.c (build_binary_op): Use invalid_binary_op hook.
5615 (build_unary_op): Use invalid_unary_op hook.
5617 2005-06-28 Paul Brook <paul@codesourcery.com>
5619 * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
5620 * except.c: Include target.h.
5621 (init_exception_processing): Initialize unwind_resume_libfunc.
5622 * doc/tm.texi: Document TARGET_ASM_TTYPE
5624 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5626 * call.c (build_over_call): Pass in named argument list to
5627 `check_function_arguments'.
5628 * typeck.c (build_function_call): Likewise.
5630 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5632 * cp-tree.h (lang_check_failed): Add noreturn attribute.
5634 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
5636 * all files: Update FSF address in copyright headers.
5638 2005-06-23 Jason Merrill <jason@redhat.com>
5641 * semantics.c (simplify_aggr_init_expr): Use
5642 CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
5644 2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5646 * pt.c (register_specialization): Remove superfluous assertion.
5648 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5650 * call.c (convert_like_real): Add format attribute.
5651 * typeck.c (check_for_casting_away_constness,
5652 build_static_cast_1): Likewise.
5653 * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
5656 2005-06-17 Geoffrey Keating <geoffk@apple.com>
5659 * pt.c (type_unification_real): Apply template type deduction even
5660 to procedure parameters that are not dependent on a template
5663 2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
5665 * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
5667 (create_pseudo_type_info): First parameter is an int.
5669 2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
5672 * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
5675 * Make-lang.in: Reformat some long lines.
5676 (gt-cp-rtti.h): New target.
5677 (cp/rtti.o): Add dependency.
5678 * config-lang.in (gtfiles): Add cp/rtti.c.
5679 * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
5680 CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
5681 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
5682 CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
5683 CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
5684 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
5685 ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
5686 class_desc_type_node, si_class_desc_type_node,
5687 vmi_class_desc_type_node, ptm_desc_type_node,
5688 base_desc_type_node): Remove.
5689 * decl.c: Adjust documentation of global trees.
5690 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
5691 TINFO_REAL_NAME): Remove.
5692 (struct tinfo_s): New.
5693 (enum tinfo_kind): New.
5695 (get_tinfo_decl): Adjust use of tinfo descriptor.
5696 (tinfo_base_init, generic_initializer, ptr_initializer,
5697 ptm_initializer, class_initializer): Likewise.
5698 (get_pseudo_ti_init): Take descriptor index. Adjust.
5699 (create_pseudo_type_info): Likewise.
5700 (get_pseudo_ti_desc): Return descriptor index. Adjust.
5701 (create_tinfo_types): Adjust use of create_pseudo_type_info.
5702 (emit_tinfo_decl): Adjust use of tinfo descriptor.
5704 2005-06-14 Roger Sayle <roger@eyesopen.com>
5706 * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
5708 2005-06-13 Geoffrey Keating <geoffk@apple.com>
5710 * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
5711 (rule for installing g++.1 manpage): Does depend on installdirs.
5713 2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
5716 * decl.c (cp_finish_decl): Clear runtime runtime initialization if
5717 in-class decl's initializer is bad.
5720 * parser.c (struct cp_parser): Document that scope could be
5722 (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
5724 (cp_parser_nested_name_specifier): Return NULL_TREE on error.
5725 (cp_parser_postfix_expression): Deal with null or error_mark
5727 (cp_parser_elaborated_type_specifier): Adjust
5728 cp_parser_nested_name_specifier call.
5730 * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
5732 2005-06-12 Roger Sayle <roger@eyesopen.com>
5735 * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
5736 Treat CONVERT_EXPR identically to NOP_EXPR.
5738 2005-06-10 Aldy Hernandez <aldyh@redhat.com>
5741 * cvt.c (build_expr_type_conversion): Same.
5742 * typeck.c (build_binary_op): Handle vectors.
5743 (common_type): Same.
5744 (type_after_usual_arithmetic_conversions): Same.
5746 2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
5749 * cp-tree.def (USING_DECL): Update documentation.
5750 * cp-tree.h (DECL_DEPENDENT_P): New.
5751 (USING_DECL_DECLS, USING_DECL_SCOPE): New.
5752 * class.c (handle_using_decl): Move most of the processing to ...
5753 * name-lookup.c (do_class_using_decl): ... here. Make stricter.
5754 (push_using_decl): Use USING_DECL_SCOPE.
5755 (cp_emit_debug_info_for_using): Make extern.
5756 * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
5757 * name-lookup.h (cp_emit_debug_info_for_using): Declare.
5758 * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
5760 (tsubst_expr): Use USING_DECL_SCOPE.
5761 * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
5762 * semantics.c (finish_member_declaration): Likewise.
5764 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5767 * pt.c (tsubst): Reject pointer-to-member of type void.
5770 * parser.c (cp_parser_label_declaration): Deal with invalid/missing
5773 2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
5775 * cp-tree.def (DEFAULT_ARG): Adjust documentation.
5776 * cp-tree.h (DEFARG_INSTANTIATIONS): New.
5777 (struct tree_default_arg): Add instantiations member.
5778 * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
5780 * pt.c (tsubst_arg_types): Likewise.
5782 * parser.c (cp_parser_late_parsing_default_args): Fix overeager
5783 assert in previous patch.
5785 2005-06-06 Jakub Jelinek <jakub@redhat.com>
5787 * error.c (locate_error): Use gmsgid instead of msgid for argument
5789 (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
5791 2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
5794 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
5795 * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
5796 argument to any early instantiations.
5797 * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
5800 * cp-tree.h (add_method): Add using_decl parameter.
5801 * class.c (add_method): Add using_decl parameter. Adjust error
5803 (handle_using_decl): Pass the using decl to add_method.
5804 (clone_function_decl): Adjust add_member calls.
5805 * decl2.c (check_classfn): Likewise.
5806 * method.c (lazily_declare_fn): Likewise.
5807 * semantics.c (finish_member_declaration): Likewise.
5809 * method.c (synthesize_method): Use inform, not warning.
5811 2005-06-06 Hans-Peter Nilsson <hp@axis.se>
5813 * config-lang.in (target_libs): Remove target-gperf.
5815 2005-06-05 Mark Mitchell <mark@codesourcery.com>
5818 * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
5819 * parser.c (cp_parser_postfix_expression): Allow non-constant
5820 expressions as arguments to __builtin_constant_p.
5821 * tree.c (builtin_valid_in_constant_expr_p): Use
5822 DECL_IS_BUILTIN_CONSTANT_P.
5824 2005-06-03 Mark Mitchell <mark@codesourcery.com>
5827 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
5828 the pointed-to type for a pointer-to-member.
5831 * cp-tree.h (grok_op_properties): Remove friendp parameter.
5832 * decl.c (grokfndecl): Adjust call.
5833 (grok_op_properties): Determine the class of which the function is
5834 a member by looking at its DECL_CONTEXT, not current_class_type.
5835 * pt.c (tsubst_decl): Adjust call to grok_op_properties.
5837 2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
5839 * method.c (synthesize_method): Add addtional arg to warning call.
5842 * Make-lang.in (method.o): Add diagnostic.h
5843 * decl.c (start_preparsed_function): Use decl's location for file
5845 * decl2.c (cp_finish_file): Set input_location before synthesizing
5847 (mark_used): When deferring a synthesized function, save current
5848 location. Do not set function's location when actually
5850 * method.c: #include diagnostic.h.
5851 (synthesize_method): Set the functions source location. Show
5852 needed location if errors are emitted.
5854 * decl.c (start_decl): Simplify specialization handling. Remove
5855 unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
5856 * mangle.c (discriminator_for_local_entity): Use VEC_index.
5859 * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
5862 * name-lookup.c (pushtag): Push local class even in a template.
5864 2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
5867 * init.c (integral_constant_value): Check the type of the
5868 initializer, not the decl.
5870 2005-05-30 Mark Mitchell <mark@codesourcery.com>
5873 * name-lookup.c (do_nonmember_using_decl): Ignore builtin
5874 functions, even when the used name is not a function.
5876 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
5878 * operators.def, optimize.c: Update copyright.
5880 2005-05-28 Mark Mitchell <mark@codesourcery.com>
5883 * call.c (standard_conversion): Permit conversions to complex
5884 types if conversion to the corresponding scalar type would be
5888 * method.c (implicitly_declare_fn): Clear processing_template_decl
5889 when generating implicit declaration.
5891 2005-05-27 Mark Mitchell <mark@codesourcery.com>
5894 * typeck.c (get_member_function_from_ptrfunc): Do not attempt
5895 conversions to base classes of incomplete types.
5897 2005-05-27 Ian Lance Taylor <ian@airs.com>
5899 * semantics.c (add_stmt): Add C++ frontend specific version.
5900 * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
5901 (stmts_are_full_exprs_p): Declare.
5903 2005-05-27 Roger Sayle <roger@eyesopen.com>
5904 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5906 * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
5907 * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
5909 (cp_parser_unary_expression): Likewise.
5910 * typeck.c (build_unary_op): Likewise.
5911 * call.c (add_builtin_candidate, build_new_op): Likewise.
5912 * error.c (dump_expr): Likewise.
5913 * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
5914 * decl.c (ambi_op_p, grok_op_properties): Likewise.
5915 * dump.c (dump_op): Likewise.
5916 * lex.c (init_operators): Likewise.
5917 * operators.def ("+"): Likewise.
5918 * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
5919 conversion, if the result and argument types differ.
5920 * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
5921 like a NOP_EXPR when !processing_template_decl.
5923 * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
5924 (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
5926 2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
5929 * typeck.c (get_delta_difference): Cope with incomplete but equal
5930 classes. Reorder if.
5933 * parser.c (cp_parser_late_parsing_for_member): Disable access
5934 checking for template functions.
5936 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5939 * pt.c (redeclare_class_template): Change error message according
5940 to coding conventions.
5942 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5944 * call.c (build_op_delete_call): Fix quoting in error message.
5946 2005-05-25 Richard Henderson <rth@redhat.com>
5949 * cp-tree.h (make_alias_for): Declare.
5950 * decl2.c (build_java_method_aliases): New.
5951 (cp_finish_file): Call it.
5952 * method.c (make_alias_for): Split out from ...
5953 (make_alias_for_thunk): ... here.
5955 2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5958 * semantics.c (finish_id_expression): Fix quoting in error message.
5960 2005-05-25 DJ Delorie <dj@redhat.com>
5962 * decl.c (duplicate_decls): Move warning control from if() to
5964 * name-lookup.c (parse_using_directive): Likewise.
5965 * parser.c (cp_parser_elaborated_type_specifier): Likewise.
5966 (cp_parser_init_declarator): Likewise.
5967 * tree.c (handle_com_interface_attribute): Likewise.
5969 2005-05-24 Ziemowit Laski <zlaski@apple.com>
5971 * class.c (layout_class_type): Do not issue C++ ABI warnings
5973 * decl.c (objc_mark_locals_volatile): Streamline by calling
5974 objc_volatilize_decl().
5975 * parser.c (cp_parser_objc_message_expression): Allow simple
5976 type specifiers (instead of merely type names) as message
5978 * pt.c (template_args_equal): Do not call objc_comptypes().
5979 * typeck.c (composite_pointer_type): If both pointers are
5980 ObjC-esque, arbitrarily choose the first; do not call
5982 (comptypes): Do not call objc_comptypes().
5983 (convert_for_assignment): Call objc_compare_types().
5984 (comp_ptr_ttypes_real): Call objc_type_quals_match() before
5985 concluding that types do not match.
5987 2005-05-24 Andrew Pinski <pinskia@physics.uc.edu>
5990 * optimize.c (update_cloned_parm): Copy the TYPE also from the
5993 2005-05-19 Jakub Jelinek <jakub@redhat.com>
5996 * decl.c (grokdeclarator): Fix "storage class specified for"
5999 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
6001 * parser.c: Fix comment typos.
6003 2005-05-18 Geoffrey Keating <geoffk@apple.com>
6005 * Make-lang.in (cc1plus-dummy): New.
6006 (cc1plus-checksum.c): New.
6007 (cc1plus-checksum.o): New.
6008 (cc1plus): Add cc1plus-checksum.o.
6010 2005-05-17 H.J. Lu <hongjiu.lu@intel.com>
6013 * decl2.c (determine_visibility): Don't set visibility to
6014 hidden if it has been set explicitly by user.
6016 2005-05-17 Ziemowit Laski <zlaski@apple.com>
6017 Mike Stump <mrs@apple.com>
6019 Yet more Objective-C++...
6021 * cp-objcp-common.h (cxx_get_alias_set): Move from
6023 (cxx_warn_unused_global_decl): Likewise.
6024 (cp_expr_size): Likewise.
6025 (cp_tree_size): Likewise.
6026 (cp_var_mod_type_p): Likewise.
6027 (cxx_initialize_diagnostics): Likewise.
6028 (cxx_types_compatible_p): Likewise.
6029 * cp-tree.h: to here.
6031 * lex.c (D_OBJC): Add.
6032 (init_reswords): Add.
6033 * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
6034 * parser.c: Add c-common.h include.
6035 * pt.c: Add c-common.h and cp-objcp-common.h includes.
6036 (template_args_equal): Use objc_comptypes as well.
6037 (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
6038 * semantics.c (do_poplevel): Remove static.
6040 * decl.c (objc_mark_locals_volatile): Don't change decls that are
6042 * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
6043 Objective C++ early enough.
6044 * lex.c (struct resword reswords): Add Objective-C++ support.
6045 * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
6046 (cp_parser_objc_message_receiver): Add.
6047 (cp_parser_objc_message_args): Likewise.
6048 (cp_parser_objc_message_expression): Likewise.
6049 (cp_parser_objc_encode_expression): Likewise.
6050 (cp_parser_objc_defs_expression): Likewise.
6051 (cp_parser_objc_protocol_expression): Likewise.
6052 (cp_parser_objc_selector_expression): Likewise.
6053 (cp_parser_objc_expression): Likewise.
6054 (cp_parser_objc_visibility_spec): Likewise.
6055 (cp_parser_objc_method_type): Likewise.
6056 (cp_parser_objc_protocol_qualifiers): Likewise.
6057 (cp_parser_objc_typename): Likewise.
6058 (cp_parser_objc_selector_p): Likewise.
6059 (cp_parser_objc_selector): Likewise.
6060 (cp_parser_objc_method_keyword_params): Likewise.
6061 (cp_parser_objc_method_tail_params_opt): Likewise.
6062 (cp_parser_objc_interstitial_code): Likewise.
6063 (cp_parser_objc_method_signature): Likewise.
6064 (cp_parser_objc_method_prototype_list): Likewise.
6065 (cp_parser_objc_method_definition_list): Likewise.
6066 (cp_parser_objc_class_ivars): Likewise.
6067 (cp_parser_objc_identifier_list): Likewise.
6068 (cp_parser_objc_alias_declaration): Likewise.
6069 (cp_parser_objc_class_declaration): Likewise.
6070 (cp_parser_objc_protocol_declaration): Likewise.
6071 (cp_parser_objc_protocol_refs_opt): Likewise.
6072 (cp_parser_objc_superclass_or_category): Likewise.
6073 (cp_parser_objc_class_interface): Likewise.
6074 (cp_parser_objc_class_implementation): Likewise.
6075 (cp_parser_objc_end_implementation): Likewise.
6076 (cp_parser_objc_declaration): Likewise.
6077 (cp_parser_objc_try_catch_finally_statement): Likewise.
6078 (cp_parser_objc_synchronized_statement): Likewise.
6079 (cp_parser_objc_throw_statement): Likewise.
6080 (cp_parser_objc_statement): Likewise.
6081 (cp_parser_primary_expression): Add Objective-C++.
6082 (cp_parser_statement): Likewise.
6083 (cp_parser_declaration): Likewise.
6084 (cp_parser_simple_type_specifier): Likewise.
6085 (cp_parser_type_name): Likewise.
6086 (cp_parser_parameter_declaration_list): Likewise.
6087 (cp_parser_member_declaration) Likewise.
6088 * tree.c: Include debug.h.
6089 * typeck.c (composite_pointer_type): Add Objective-C++ support.
6090 (finish_class_member_access_expr): Likewise.
6091 (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
6092 (build_modify_expr): Allow objc to generate write barriers.
6094 * Make-lang.in (cp/tree.o): Add debug.h.
6095 * tree.c (lvalue_p_1, case CONST_DECL): Add.
6097 2005-05-18 Jan Hubicka <jh@suse.cz>
6099 * method.c: Include tree-pass.h
6100 (use_thunk): Lower body before expanding.
6102 2005-05-17 Jakub Jelinek <jakub@redhat.com>
6105 * decl.c (maybe_deduce_size_from_array_init): Call
6106 cp_apply_type_quals_to_decl after completing array type.
6108 2005-05-16 Richard Henderson <rth@redhat.com>
6110 * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
6111 (build_library_fn): ... here.
6113 2005-05-12 Ian Lance Taylor <ian@airs.com>
6115 * cp-tree.h (cp_stmt_codes): Don't define.
6116 (statement_code_p): Declare.
6117 (STATEMENT_CODE_P): Define.
6118 * lex.c (statement_code_p): Define.
6119 (cxx_init): Use actual codes in stmt_codes initializer, not
6120 cp_stmt_codes macro. Initialize statement_code_p directly, rather
6121 than using INIT_STATEMENT_CODES.
6123 2005-05-09 Mark Mitchell <mark@codesourcery.com>
6125 * typeck.c (build_unary_op): Do not resort to address arithmetic
6126 when taking the address of a COMPONENT_REF.
6128 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
6130 * class.c (vtbl_init_data_s): Change the type of fns to
6132 (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
6133 Use VEC instead of VARRAY.
6135 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
6137 * mangle.c: Remove a reference to the MIPS -mint64 option.
6139 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
6141 * decl.c (wrapup_globals_for_namespace): Use VEC instead of
6143 * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
6144 * name-lookup.h (cp_binding_level): Change the type of
6145 static_decls to VEC(tree,gc)*.
6147 * mangle.c (globals): Change the type of substitutions to
6149 (dump_substitution_candidates, add_substitution,
6150 find_substitution, finish_mangling, init_mangle): Use VEC
6153 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
6155 * decl2.c (spew_debug): Remove.
6157 * decl2.c (ssdf_decls, start_static_storage_duration_function,
6158 generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
6160 * decl2.c (pending_statics, note_vague_linkage_var,
6161 cp_finish_file): Use VEC instead of VARRAY.
6162 (pending_statics_used): Remove.
6164 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
6166 * decl2.c (deferred_fns, note_vague_linkage_fn,
6167 cp_finish_file): Use VEC instead of VARRAY.
6169 2005-05-05 Mark Mitchell <mark@codesourcery.com>
6172 * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
6174 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
6176 * pt.c: Fix a comment typo.
6178 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
6180 * cp-tree.h (language_function): Change the type of
6181 x_local_names to VEC.
6182 * decl.c (push_local_name): Adjust uses of local_names.
6184 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
6186 * friend.c, lex.c, mangle.c, repo.c: Update copyright.
6188 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
6190 * class.c (local_classes, init_class_processing): Use VEC
6192 * cp-tree.h (local_classes): Likewise.
6193 * mangle.c (discriminator_for_local_entity): Likewise.
6194 * name-lookup.c (pushtag): Likewise.
6196 * class.c (current_lang_depth, push_lang_context,
6197 pop_lang_context): Use VEC instead of VARRAY.
6198 * cp-tree.h (saved_scope): Use VEC for lang_base instead of
6200 * name-lookup.c (push_to_top_level): Use VEC instead of
6203 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
6205 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
6206 for BUILT_IN_MD built-ins.
6208 2005-05-02 Michael Matz <matz@suse.de>
6211 * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
6213 (null_node): Remove.
6214 * lex.c (cxx_init): Move null_node initialisation to C common frontend.
6216 2005-04-25 Ian Lance Taylor <ian@airs.com>
6218 * cp-tree.def: Add EXPR_STMT.
6219 * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
6220 (EXPR_STMT_EXPR): Define.
6221 * cp-gimplify.c: Include "flags.h".
6222 (gimplify_expr_stmt): New static function.
6223 (cp_gimplify_expr): Handle EXPR_STMT.
6224 * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
6225 rather than pp_expression.
6226 (pp_cxx_statement): Handle EXPR_STMT.
6227 * dump.c (cp_dump_tree): Handle EXPR_STMT.
6228 * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
6231 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
6234 * rtti.c (ifnonnull): Cast the zero comparison operand
6235 to the correct type.
6237 2005-04-24 Jakub Jelinek <jakub@redhat.com>
6240 * class.c: Include cgraph.h.
6241 (cp_fold_obj_type_ref): Set node->local.vtable_method.
6242 * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
6244 2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
6246 * mangle.c (write_builtin_type): Handle integer types which are
6247 not one of the shared integer type nodes and emit a "vendor
6248 extended builtin type" with an encoding in the form of "u5int96".
6250 2005-04-24 Ian Lance Taylor <ian@airs.com>
6252 * cp-tree.def (USING_STMT): Change class to tcc_statement.
6253 (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
6254 (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
6255 (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
6257 2005-04-23 DJ Delorie <dj@redhat.com>
6259 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
6260 init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
6261 repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
6264 2005-04-22 Per Bothner <per@bothner.com>
6266 * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
6267 input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
6269 2005-04-22 Alexandre Oliva <aoliva@redhat.com>
6272 * name-lookup.c (push_overloaded_decl): Do not overload with
6273 non-duplicate anticipated built-in.
6275 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
6277 * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
6278 VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
6280 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
6282 * cp-tree.h: Adjust for new VEC API.
6283 Define VEC(tree_pair_s,gc).
6284 (struct save_scope): Adjust.
6285 (struct lang_type_class): Adjust.
6286 (unemitted_tinfo_decls): Adjust.
6287 * class.c (add_method, resort_type_method_vec,
6288 finish_struct_methods, struct find_final_overrider_data,
6289 dfs_find_final_overrider_pre, find_final_overrider,
6290 get_vcall_index, warn_hidden, walk_subobject_offsets,
6291 check_methods, fixup_inline_methods, end_of_class,
6292 warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
6293 add_vcall_offset): Adjust.
6294 * decl.c (xref_basetypes, finish_method): Adjust.
6295 * decl2.c (check_classfn): Adjust.
6296 * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
6297 * method.c (do_build_copy_constructor): Adjust.
6298 * name-lookup.c (new_class_binding, store_binding,
6299 store_bindings, store_class_bindings): Adjust.
6300 * name-lookup.h: Define VEC(cxx_saved_binding,gc),
6301 VEC(cp_class_binding,gc).
6302 (struct cp_binding_level): Adjust.
6303 * parser.c: Define VEC(cp_token_position,heap).
6304 (struct cp_lexer): Adjust.
6305 (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
6306 cp_lexer_save_tokens): Adjust.
6307 * pt.c (retrieve_specialization,
6308 check_explicit_specialization): Adjust.
6309 * rtti.c (unemitted_tinfo_decls): Adjust.
6310 (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
6311 get_pseudo_ti_desc): Adjust.
6312 * search.c (dfs_access_in_type, lookup_conversion_operator,
6313 lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
6314 dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
6315 * semantics.c: Define VEC(deferred_access,gc).
6316 (push_deferring_access_checks): Adjust.
6317 * typeck2.c (abstract_virtuals_error): Adjust.
6319 2005-04-20 Ian Lance Taylor <ian@airs.com>
6321 * cp-tree.def: Add STMT_EXPR.
6322 * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
6323 (STMT_EXPR_STMT): Define.
6324 * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
6326 (pp_cxx_expression): Likewise.
6327 (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
6328 * dump.c (cp_dump_tree): Handle STMT_EXPR.
6330 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
6332 * decl.c (expand_static_init): Call build2 and build3 instead
6335 * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
6337 2005-04-17 Ian Lance Taylor <ian@airs.com>
6339 * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
6340 * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
6342 (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
6343 (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
6345 * typeck.c (cxx_sizeof_or_alignof_type): Update call to
6346 c_sizeof_or_alignof_type for change in parameter type.
6348 2005-04-16 Mark Mitchell <mark@codesourcery.com>
6351 * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
6352 which sizeof/alignof is dependent, rather than just whether we are
6353 processing_template_decl.
6355 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
6357 * cp-tree.h (LOOKUP_GLOBAL): Remove.
6358 (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
6359 LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
6360 LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
6363 2005-04-15 Richard Henderson <rth@redhat.com>
6366 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
6368 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
6370 * cp-tree.h (lang_type_class): Remove redefined. Move
6371 java_interface into where redefined was. Increment the width
6373 (TYPE_REDEFINED): Remove.
6375 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
6377 * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
6378 CLASSTYPE_TEMPLATE_LEVEL): Remove.
6380 2005-04-11 Mark Mitchell <mark@codesourcery.com>
6382 * decl2.c (determine_visibility): Don't use export_class_data.
6383 (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
6384 TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
6386 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
6388 * cp-tree.h (cxx_alignof): Remove.
6390 * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
6392 * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
6393 CONV_STATIC_CAST): Remove.
6395 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
6397 * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
6399 * cp-tree.h (cp_deprecated): Remove.
6401 2005-04-08 Ian Lance Taylor <ian@airs.com>
6403 * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
6404 CONTINUE_STMT, SWITCH_STMT.
6405 * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
6406 BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
6407 (WHILE_COND, WHILE_BODY): Define.
6408 (DO_COND, DO_BODY): Define.
6409 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
6410 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
6411 * cp-gimplify.c (enum bc_t): Define.
6412 (struct cp_gimplify_ctx, ctxp): Define.
6413 (push_context, pop_context): New static functions.
6414 (begin_bc_block, finish_bc_block): New static functions.
6415 (build_bc_goto): New static function.
6416 (gimplify_cp_loop, gimplify_for_stmt): New static functions.
6417 (gimplify_while_stmt, gimplify_do_stmt): Likewise.
6418 (gimplify_switch_stmt): Likewise.
6419 (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
6420 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
6421 (cp_genericize): Call push_context and pop_context.
6422 * semantics.c (finish_break_stmt): Just call build_stmt
6423 (BREAK_STMT) rather than build_break_stmt.
6424 (finish_continue_stmt): Corresponding change.
6425 * decl.c (pop_switch): Update call to c_do_switch_warnings for new
6427 * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
6428 WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
6429 * dump.c (cp_dump_tree): Likewise.
6431 2005-04-08 Mark Mitchell <mark@codesourcery.com>
6434 * parser.c (cp_parser_type_specifier_seq): Add is_condition
6436 (cp_parser_new_type_id): Pass it.
6437 (cp_parser_condition): Likewise.
6438 (cp_parser_conversion_type_id): Likewise.
6439 (cp_parser_type_id): Likewise.
6440 (cp_parser_type_specifier_seq): In a condition, do not allow
6441 invalid type-specifier combinations.
6442 (cp_parser_exception_declaration): Adjust call to
6443 cp_parser_type_specifier_seq.
6445 * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
6446 * cp-tree.h (struct tinst_level): Add in_system_header_p.
6447 (TINST_IN_SYSTEM_HEADER_P): New macro.
6448 (make_tinst_level): Remove.
6449 * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
6450 the instantiated class.
6451 (push_tinst_level): Do not use make_tinst_level. Set
6452 TINST_IN_SYSTEM_HEADER_P.
6453 (pop_tinst_level): Likewise.
6454 (instantiate_class_template): Set in_system_header.
6455 (instantiate_pending_templates): Likewise.
6456 * tree.c (make_tinst_level): Remove.
6458 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
6460 * decl.c (start_decl): Apply pending #pragma weak regardless of
6463 2005-04-06 Mark Mitchell <mark@codesourcery.com>
6466 * pt.c (regenerate_decl_from_template): Copy attributes for
6467 parameters from the pattern to the instantiation.
6469 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6472 * cp-tree.def (OFFSET_REF): Correct comments.
6473 * init.c (build_offset_ref): Remove misleading comment.
6474 * typeck.c (build_unary_op): Handle pointer-to-member creation
6475 here, rather than ...
6476 (unary_complex_lvalue): ... here.
6478 2005-04-06 Jason Merrill <jason@redhat.com>
6481 * tree.c (stabilize_init): Don't bother trying to stabilize
6482 something with no side-effects.
6484 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6487 * decl.c (grokdeclarator): Correct attribute handling.
6489 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6492 * decl2.c (import_export_decl): Use non-COMDAT external linkage
6493 for virtual tables, typeinfo, etc. that will be emitted in only
6494 one translation unit on systems without weak symbols.
6496 2005-04-04 Mark Mitchell <mark@codesourcery.com>
6499 * parser.c (cp_parser_template_name): Fix thinko.
6501 2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
6504 * method.c (use_thunk): Protect covariant pointer return
6505 adjustments from NULL pointers.
6507 2005-04-04 Jan Hubicka <jh@suse.cz>
6509 * decl2.c (finish_objects): Revert my previous patch.
6510 (cp_finish_file): Likewise.
6512 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
6514 * pt.c: Fix comment typos.
6516 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
6519 * pt.c (more_specialized_fn): Member functions are unordered wrt
6520 non-members. Conversion operators are unordered wrt other
6523 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
6525 * call.c (add_template_candidates_real): Remove length parameter
6526 from fn_type_unification call.
6527 * class.c (resolve_address_of_overloaded_function): Likewise
6528 * cp-tree.h (fn_type_unification): Remove length parameter.
6529 * pt.c (get_bindings_overload): Remove.
6530 (get_bindings_real): Rename to ...
6531 (get_bindings): ... here. Remove length and strict
6532 parameters. Change return type flag to boolean. Remove original
6533 forwarding function.
6534 (determine_specialization): Adjust get_bindings call.
6535 (fn_type_unification): Remove length parameter. Adjust.
6536 (type_unification_real): Remove length parameter. Adjust.
6537 (resolve_overloaded_unification): Adjust get_bindings call.
6538 (try_one_overload): Simplify confusing cascaded if control flow.
6539 (unify): Remove length paramter from type_unification_real call.
6540 (most_specialized_instantiation): Adjust get_bindings calls.
6541 (most_specialized): Likewise.
6543 2005-03-31 Nathan Sidwell <nathan@codesourcery.com>
6545 PR c++/19203, implement DR 214
6546 * call.c (joust): Use more_specialized_fn.
6547 * cp-tree.h (DEDUCE_ORDER): Remove.
6548 (more_specialized): Replace with ...
6549 (more_specialized_fn): ... this.
6550 * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
6552 (type_unification_real): Remove DEDUCE_ORDER case.
6553 (more_specialized): Replace with ...
6554 (more_specialized_fn): ... this. Implement DR 214.
6555 (most_specialized_instantiation): Use get_bindings_real directly.
6557 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
6560 * call.c (build_new_op): Remove check for -Wsynth.
6562 2005-03-31 Jan Hubicka <jh@suse.cz>
6564 * decl2.c (finish_objects): Mark ctor as needed.
6565 (cp_finish_file): Output variables only in nonunit-at-a-time.
6567 2005-03-29 Richard Henderson <rth@redhat.com>
6570 * decl.c (cp_complete_array_type): Rename from complete_array_type.
6571 Use the new complete_array_type in c-common.c. Update all callers.
6572 * cp-tree.h (cp_complete_array_type): Update to match.
6574 2005-03-24 Geoffrey Keating <geoffk@apple.com>
6576 * typeck.c (build_static_cast_1): Allow scalar_cast between
6577 any integral, floating, or enumeration type.
6579 2005-03-24 Steven Bosscher <stevenb@suse.de>
6581 * typeck.c (comptypes): First determine if the types are compatible
6582 from a target-independent point of view. Check target attributes
6585 * class.c (build_base_path):
6586 (build_vbase_offset_vtbl_entries):
6587 (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
6588 * error.c (dump_expr): Likewise.
6589 * init.c (build_zero_init, expand_cleanup_for_base,
6590 build_vec_delete_1): Likewise.
6591 * mangle.c (write_integer_cst): Likewise.
6592 * method.c (thunk_adjust): Likewise.
6593 * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
6594 * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
6595 * typeck.c (build_ptrmemfunc_access_expr,
6596 (get_member_function_from_ptrfunc): Likewise.
6598 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
6600 * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
6602 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
6604 * cp-tree.h (perform_integral_promotions): Remove.
6605 (default_conversion): Add.
6607 2005-03-22 Mark Mitchell <mark@codesourcery.com>
6609 * parser.c (cp_parser_warn_min_max): New function.
6610 (cp_parser_binary_expression): Use it.
6611 (cp_parser_assignment_operator_opt): Likewise.
6612 (cp_parser_operator): Likewise.
6614 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6617 * decl.c (start_preparsed_function): Robustify.
6619 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6622 * parser.c (cp_parser_class_head): Return NULL_TREE when
6623 encountering a redefinition.
6625 2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
6629 * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
6632 2005-03-21 Paolo Carlini <pcarlini@suse.de>
6636 * init.c (emit_mem_initializers): Don't crash on undefined
6639 2005-03-21 Paolo Carlini <pcarlini@suse.de>
6642 * semantics.c (finish_stmt_expr_expr): Return immediately
6643 if error_operand_p (expr).
6645 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
6647 * cp-tree.h (lvalue_or_else, lvalue_p): New.
6648 * typeck.c (lvalue_or_else): New. Call lvalue_error.
6650 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6653 * decl.c (decls_match): Compare context of VAR_DECL.
6655 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6658 * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
6659 Check the return value of cp_parser_nested_name_specifier.
6661 2005-03-18 Dale Johannesen <dalej@apple.com>
6663 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
6665 2005-03-18 Paolo Carlini <pcarlini@suse.de>
6668 * parser.c (cp_parser_diagnose_invalid_type_name):
6669 Check TYPE_BINFO (current_class_type) before attempting
6670 to emit inform messages.
6672 2005-03-17 Paolo Carlini <pcarlini@suse.de>
6675 * cp-tree.h (grok_op_properties): Change return type to void.
6676 * decl.c (grok_op_properties): Return early - don't check the
6677 arity - in case of a static member or an operator that cannot
6678 be non-member; tidy a bit.
6680 2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
6683 * pt.c (contains_dependent_cast_p): Remove.
6684 (fold_non_dependent_expr): Don't use it.
6685 (value_dependent_expression_p): Use a switch statement.
6686 reference_exprs can be dependent.
6688 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6692 * name-lookup.c (pushtag): Skip template parameter scope when
6693 scope is ts_global. Don't push tag into template parameter
6695 * pt.c (instantiate_class_template): Reorder friend class
6696 template substitution to handle non-dependent friend class
6697 that hasn't been previously declared.
6699 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6701 Friend class name lookup 5/n
6703 * cp-tree.h (pushtag): Adjust declaration.
6704 * decl.c (lookup_and_check_tag): Call lookup_type_scope if
6706 (xref_tag): Adjust call to pushtag. Make hidden class visible.
6707 (start_enum): Adjust call to pushtag.
6708 * name-lookup.c (ambiguous_decl): Ignore hidden names.
6709 (qualify_lookup): Change return type to bool.
6710 (hidden_name_p): New function.
6711 (lookup_namespace_name, unqualified_namespace_lookup,
6712 lookup_name_real): Use it.
6713 (lookup_type_scope): Update comments.
6714 (maybe_process_template_type_declaration): Change parameter name
6715 from globalize to is_friend.
6716 (pushtag): Change globalize parameter of type int to tag_scope.
6717 Hide name if introduced by friend declaration.
6718 * name-lookup.h (hidden_name_p): Add declaration.
6719 * parser.c (cp_parser_lookup_name): Don't deal with hidden name
6721 * pt.c (push_template_decl_real): Make hidden class template
6723 (lookup_template_class, instantiate_class_template): Adjust call
6725 * semantics.c (begin_class_definition): Likewise.
6726 * rtti.c (init_rtti_processing, build_dynamic_cast_1,
6727 tinfo_base_init, emit_support_tinfos): Use ts_current instead of
6730 2005-03-13 Mark Mitchell <mark@codesourcery.com>
6733 * pt.c (determine_specialization): Reject non-specializations.
6735 2005-03-11 Per Bothner <per@bothner.com>
6737 * cp-tree.h (struct cp_declarator): New id_loc field.
6738 * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
6739 location using c_lex_with_flags, instead of input_location.
6740 (cp_parser_direct_declarator): Set declarator's id_loc from
6743 2005-03-10 Jakub Jelinek <jakub@redhat.com>
6745 PR c++/18384, c++/18327
6746 * decl.c (reshape_init_array): Use UHWI type for max_index_cst
6747 and index. Convert max_index to size_type_node if it isn't
6748 host_integerp (, 1).
6750 2005-03-09 Mark Mitchell <mark@codesourcery.com>
6753 * pt.c (tsubst_decl): Apply array-to-pointer and
6754 function-to-pointer conversions to function arguments.
6755 (regenerate_decl_from_template): Likewise.
6757 2005-03-09 Paolo Carlini <pcarlini@suse.de>
6760 * decl.c (complete_array_type): In pedantic mode, return
6761 3 for an empty initializer list as the initializer for an
6762 array of unknown bound (8.5.1/4).
6763 (maybe_deduce_size_from_array_init): Fix final test to use
6766 2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
6769 * pt.c (contains_dependent_cast_p): New.
6770 (fold_non_dependent_expr): Call it.
6772 2005-03-08 Mark Mitchell <mark@codesourcery.com>
6775 * cp-tree.h (target_type): Remove.
6776 * decl.c (layout_var_decl): Remove #if 0'd code.
6777 (cp_finish_decl): Remove dead code.
6778 * init.c (build_vec_init): When determining whether or not the
6779 element type has an asignment operator, look through all array
6781 * typeck.c (target_type): Remove.
6783 2005-03-07 Mark Mitchell <mark@codesourcery.com>
6785 * class.c (finish_struct_1): Do not warn about non-virtual
6786 destructors in Java classes.
6788 2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6791 * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
6792 * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
6794 * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
6795 Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
6796 (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
6799 2005-03-02 Alexandre Oliva <aoliva@redhat.com>
6801 * name-lookup.c (push_overloaded_decl): Don't error if the new
6802 decl matches the old one.
6803 * decl.c (redeclaration_error_message): Likewise.
6805 2005-03-01 Per Bothner <per@bothner.com>
6807 * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
6808 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
6810 2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
6813 * class.c (update_vtable_entry_for_fn): Don't crash on invalid
6816 * cp-tree.g (THUNK_TARGET): Expand comment.
6817 * method.c (use_thunk): Make sure we also use the target, if that
6820 2005-02-27 Jakub Jelinek <jakub@redhat.com>
6823 * decl.c (cxx_comdat_group): Put thunks for
6824 TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
6825 comdat group as the thunk target.
6827 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6829 * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
6830 parser.c: Fix comment typo(s).
6832 2005-02-24 Jakub Jelinek <jakub@redhat.com>
6835 * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
6836 initializes a char/wchar_t array.
6838 2005-02-23 Mark Mitchell <mark@codesourcery.com>
6841 * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
6842 with internal linkage.
6844 2005-02-23 Alexandre Oliva <aoliva@redhat.com>
6846 * decl.c (grokvardecl): Don't exempt anonymous types from having
6847 linkage for variables that have linkage other than "C".
6849 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
6851 * cp-objcp-common.h, error.c: Update copyright.
6853 2005-02-22 Mark Mitchell <mark@codesourcery.com>
6856 * decl.c (start_decl_1): Don't clear TREE_READONLY.
6857 (cp_finish_decl): Likewise.
6858 (complete_vars): Call cp_apply_type_quals_to_decl.
6859 * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
6860 cases where that's not valid.
6863 * init.c (integral_constant_value): Iterate if the value of a decl
6864 is itself a constant.
6867 * parser.c (cp_parser_class_head): Check for redefintions here.
6868 * semantics.c (begin_class_definition): Not here.
6871 * decl2.c (build_anon_union_vars): Add type parameter.
6872 (finish_anon_union): Pass it.
6875 * error.c (dump_expr): Do not print the body of a BIND_EXPR.
6876 Handle STATEMENT_LIST.
6879 * parser.c (cp_parser_direct_declarator): Always complain about
6880 non-constant array bounds when in a function scope.
6881 * semantics.c (finish_id_expression): Do not mark dependent names
6884 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
6888 * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
6889 * decl.c (grokdeclarator): Pedwarn about qualifying a function
6891 Add qualifiers when declaring a typedef of a function type.
6892 Member function pointers pick up the qualifiers of the typedef
6893 used to declare them.
6894 Don't complain about creating cv-qualified function types.
6895 Complain about qualified function typedefs that are used to
6896 declare non-static member functions or free functions.
6897 Use cp_apply_type_quals_to_decl.
6898 (start_preparsed_function): Use cp_apply_type_quals_to_decl.
6899 (grokclassfn): Use cp_apply_type_quals_to_decl.
6900 * error.c (dump_type_suffix): Print qualifiers for function
6902 * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
6903 (tsubst): When substituting a function type into a member
6904 pointer type, pass along the qualifiers.
6905 (unify): Unify member pointers to member function pointers.
6906 * tree.c (cp_build_qualified_type_real): Function types may be
6907 qualified. This includes restrict qualifiers.
6908 * typeck.c (cp_apply_type_quals_to_decl): New function to replace
6909 use of c_apply_type_quals_to_decl. Drops qualifiers that are being
6910 added to function types.
6912 2005-02-20 Zack Weinberg <zack@codesourcery.com>
6915 * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
6916 c_common_to_target_charset. Delete bogus comment.
6918 2005-02-18 Richard Henderson <rth@redhat.com>
6921 * except.c (do_get_exception_ptr): New.
6922 (expand_start_catch_block): Use it.
6924 2005-02-19 Jakub Jelinek <jakub@redhat.com>
6926 * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
6927 if type is not error_mark_node.
6929 2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6932 * decl2.c (grokfield): Do not apply attributes to template parameters
6933 as they are ignored by tsubst anyway.
6935 2005-02-18 Jakub Jelinek <jakub@redhat.com>
6938 * decl.c (start_decl_1): Clear TREE_READONLY flag if
6939 its type has TYPE_NEEDS_CONSTRUCTING.
6940 (complete_vars): Likewise.
6942 2005-02-17 Alexandre Oliva <aoliva@redhat.com>
6945 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
6946 template along with TYPE_SIZE.
6949 * semantics.c (perform_deferred_access_checks): Use
6950 get_deferred_access_checks to get the top of the stack.
6952 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
6955 * class.c (add_implicitly_declared_members, check_field_decl)
6956 (check_field_decls, check_bases): Remove arguments, tests and
6957 assignments of cant_have_default_ctor-related variables.
6959 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
6961 * decl2.c (mark_used): Set the source location of the used decl to
6962 the current input location here...
6963 * method.c (synthesize_method): ... not here. Set input_location
6964 from the decl instead.
6966 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
6969 * parser.c (cp_parser_late_parsing_for_member): Use
6970 current_function_decl as scope to push to and from.
6973 * pt.c (check_explicit_specialization): Make sure namespace
6974 binding lookup found an overloaded function.
6975 (lookup_template_function): Just assert FNS is an overloaded
6979 * decl.c (grokdeclarator): Check for error mark node in ptrmem
6982 2005-02-14 Alexandre Oliva <aoliva@redhat.com>
6985 * decl.c (redeclaration_error_message): Report redefinition of
6986 pure virtual function.
6988 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
6991 * class.c (build_simple_base_path): Build the component_ref
6993 (update_vtable_entry_for_fn): Walk the covariant's binfo chain
6994 rather than using lookup_base.
6995 * search.c (dfs_walk_once): Add non-recursive assert check.
6996 * typeck.c (build_class_member_access_expr): It is possible for
6997 the member type to be both const and volatile.
6999 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7003 * pt.c (maybe_check_template_type): Remove.
7004 * cp-tree.h (maybe_check_template_type): Remove prototype.
7005 * name-lookup.c (maybe_process_template_type_declaration): Don't
7006 use maybe_check_template_type.
7008 2005-02-11 Richard Henderson <rth@redhat.com>
7011 * pt.c (get_mostly_instantiated_function_type): Save and restore
7012 flag_access_control instead of push/pop_access_scope.
7014 2005-02-10 Mark Mitchell <mark@codesourcery.com>
7017 * decl.c (reshape_init): Issue warnings about missing braces.
7019 2005-02-11 Kazu Hirata <kazu@cs.umass.edu>
7021 * cp-tree.def, except.c, ptree.c: Update copyright.
7023 2005-02-09 Mark Mitchell <mark@codesourcery.com>
7026 * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
7027 attempting name lookup.
7029 * parser.c (cp_parser_unqualified_id): Initialize type_decl.
7032 * call.c (initialize_reference): Robustify.
7035 * decl.c (grokdeclarator): Check for invalid use of destructor
7039 * parser.c (cp_parser_unqualified_id): Avoid creating destructor
7040 names with invalid types.
7043 * parser.c (cp_parser_direct_declarator): Allow type-dependent
7044 expressions as array bounds.
7047 * parser.c (cp_parser_attributes_list): Allow empty lists.
7049 2005-02-08 Mark Mitchell <mark@codesourcery.com>
7052 * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
7053 (check_bases): Give warnings about a base class with a
7054 non-virtual destructor, even if it is implicit.
7055 (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
7056 (maybe_warn_about_overly_private_class): Don't use
7057 TYPE_HAS_DESTRUCTOR.
7058 (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
7059 (check_for_override): Give it external linkage.
7060 (add_implicitly_declared_members): Generate destructors lazily.
7061 (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
7062 TYPE_HAS_DESTRUCTOR.
7063 (check_bases_and_members): Call check_methods before
7065 (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
7066 TYPE_HAS_DESTRUCTOR.
7067 (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
7068 * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
7069 * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
7070 (lang_type_class): Add lazy_destructor.
7071 (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
7072 (CLASSTYPE_DESTRUCTORS): Robustify.
7073 (TYPE_HAS_DESTRUCTOR): Remove.
7074 (check_for_override): Declare.
7075 (build_vbase_delete): Remove.
7076 * cvt.c (convert_to_void): Issue errors about pseudo-destructor
7078 * decl.c (cxx_maybe_build_cleanup): Remove dead code.
7079 * except.c (dtor_nothrow): Lazily create destructors if necessary.
7080 (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
7081 * init.c (build_delete): Lazily create destructors, if necessary.
7082 (build_vbase_delete): Remove.
7083 * method.c (locate_dtor): Simplify.
7084 (implicitly_declare_fn): Add support for destructors.
7085 * parser.c (cp_parser_lookup_name): Lazily create destructors, if
7087 * pt.c (check_explicit_specialization): Don't use
7088 TYPE_HAS_DESTRUCTOR.
7089 (instantiate_class_template): Likewise.
7090 * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
7091 * rtti.c (emit_support_tinfos): Robustify.
7092 * search.c (lookup_fnfields_1): Lazily create destructors.
7093 * typeck.c (build_class_member_access_expr): Remove
7094 PSEUDO_DTOR_EXPR handling.
7095 (lookup_destructor): Likewise.
7097 2005-02-08 Kazu Hirata <kazu@cs.umass.edu>
7099 * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
7102 2005-02-07 Mark Mitchell <mark@codesourcery.com>
7104 * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
7105 on boolean variables.
7106 (cp_lexer_stop_debugging): Likewise.
7108 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
7111 * parser.c (cp_parser_pure_specifier): Emit a specific error
7112 message with an invalid pure specifier.
7113 * decl2.c (grok_function_init): Remove.
7114 (grokfield): An initializer for a method is a always a pure
7117 2005-02-02 Matt Austern <austern@apple.com>
7120 * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
7121 * parser.c (cp_parser_postfix_expression): Accept function call in
7122 constant expression if builtin_valid_in_constant_expr_p is true
7124 * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
7125 * semantics.c (finish_id_expression): Accept function call in constant
7126 expression if builtin_valid_in_constant_expr_p is true for that
7128 * tree.c (builtin_valid_in_constant_expr_p): New.
7130 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7133 * pt.c (check_instantiated_args): Improve error message.
7134 Fix logic when to print its second part.
7136 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7138 * cp-tree.h (complete_type_or_else): Remove macro.
7139 (complete_type_or_diagnostic): Rename to complete_type_or_else
7140 and remove last argument.
7141 * typeck.c (complete_type_or_diagnostic): Rename to
7142 complete_type_or_else and remove last argument.
7144 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7146 * cp-tree.h (commonparms): Remove prototype.
7147 (convert_arguments): Likewise.
7148 (PFN_FROM_PTRMEMFUNC): Remove.
7149 * typeck.c (commonparms): Make static.
7150 (convert_arguments): Add prototype. Make static.
7151 (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
7153 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7155 * parser.c (cp_parser_primary_expression): Don't complain about
7156 floating-point literals in integral constant expressions when
7159 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
7161 * parser.c (cp_parser_template_id): Revert comment patch too.
7166 * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
7167 Issue an error when creating the template id.
7168 * pt.c (fn_type_unification): Return early if the explicit
7169 template arg list is an error_mark_node.
7171 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7173 * decl.c (build_enumerator): Do not issue duplicate error messages
7174 about invalid enumeration constants.
7175 * parser.c (cp_parser_non_integral_constant_expression): Always
7176 set parser->non_integral_constant_expression_p.
7177 (cp_parser_primary_expression): Add cast_p parameter. Issue
7178 errors about invalid uses of floating-point literals in
7180 (cp_parser_postfix_expression): Add cast_p parameter.
7181 (cp_parser_open_square_expression): Pass it.
7182 (cp_parser_parenthesized_expression_list): Add cast_p parameter.
7183 (cp_parser_unary_expression): Likewise.
7184 (cp_parser_new_placement): Pass it.
7185 (cp_parser_direct_new_declarator): Likewise.
7186 (cp_parser_new_initializer): Likewise.
7187 (cp_parser_cast_expression): Add cast_p parameter.
7188 (cp_parser_binary_expression): Likewise.
7189 (cp_parser_question_colon_clause): Likewise.
7190 (cp_parser_assignment_expression): Likewise.
7191 (cp_parser_expression): Likewise.
7192 (cp_parser_constant_expression): If an integral constant
7193 expression is invalid, return error_mark_node.
7194 (cp_parser_expression_statement): Pass cast_p.
7195 (cp_parser_condition): Likewise.
7196 (cp_parser_iteration_statement): Likewise.
7197 (cp_parser_jump_statement): Likewise.
7198 (cp_parser_mem_initializer): Likewise.
7199 (cp_parser_template_argument): Likewise.
7200 (cp_parser_parameter_declaration): Likewise.
7201 (cp_parser_initializer): Likewise.
7202 (cp_parser_throw_expression): Likewise.
7203 (cp_parser_attribute_list): Likewise.
7204 (cp_parser_simple_cast_expression): Likewise.
7205 (cp_parser_functional_cast): Likewise.
7206 (cp_parser_late_parsing_default_args): Likewise.
7207 (cp_parser_sizeof_operand): Save/restore
7208 non_integral_constant_expression_p.
7210 2005-01-31 Mike Stump <mrs@apple.com>
7212 * parser.c (cp_lexer_new_main): Get the first token, first, before
7215 2005-01-31 Mark Mitchell <mark@codesourcery.com>
7217 * decl.c (start_decl): Add missing parentheses.
7219 2005-01-30 Mark Mitchell <mark@codesourcery.com>
7222 * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
7223 * decl.c (duplicate_decls): Do not discard
7224 DECL_IMPLICIT_INSTANTIATION when merging declarations.
7225 (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
7226 variables that do not have DECL_USE_TEMPLATE.
7229 * decl.c (grokdeclarator): Refactor code so that qualified names
7230 are never allowed as the declarator in a typedef.
7233 * name-lookup.c (do_nonmember_using_decl): Avoid overloading
7234 builtin declarations.
7237 * call.c (convert_like_real): Inline call to
7238 dubious_conversion_warnings here.
7239 * cp-tree.h (dubious_conversion_warnings): Remove.
7240 * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
7241 setting TREE_NEGATED_INT.
7242 * typeck.c (dubious_conversion_warnings): Remove.
7245 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
7248 2005-01-28 Mark Mitchell <mark@codesourcery.com>
7251 * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
7255 * pt.c (redeclare_class_template): Robustify.
7257 2005-01-27 Steven Bosscher <stevenb@suse.de>
7259 * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
7260 instead of SWITCH_EXPR ones.
7261 * pt.c (tsubst_expr): Likewise.
7262 * semantics.c (begin_switch_stmt, finish_switch_cond,
7263 finish_switch_stmt): Likewise.
7265 2005-01-26 J"orn Rennecke <joern.rennecke@st.com>
7268 * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
7270 2005-01-25 Andrew Pinski <pinskia@physics.uc.edu>
7272 * class.c (abort_fndecl_addr): New variable.
7273 (build_vtbl_initializer): If we have a pure virtual function
7274 share the abort function's address.
7275 Include gt-cp-class.h at the end.
7276 * config-lang.in (gtfiles): Add cp/class.c.
7278 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7280 * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
7281 (pp_cxx_function_definition): Make static.
7282 * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
7283 (pp_cxx_function_definition): Likewise.
7285 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7287 * name-lookup.c (print_binding_level): Make static.
7288 (constructor_name_full): Make static inline.
7289 (current_decl_namespace): Make static.
7290 * name-lookup.h (constructor_name_full): Remove prototype.
7291 (print_binding_level): Likewise.
7292 (current_decl_namespace): Likewise.
7294 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7296 * decl.h (debug_bindings_indentation): Remove.
7298 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
7300 * typeck.c: Fix a comment typo.
7302 2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
7305 * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
7307 (tsubst): Use fold_decl_constant_value in place of a bare call to
7308 integral_constant_value.
7310 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
7312 * typeck.c (more_qualified_p): Remove.
7313 * cp-tree.h: Remove the corresponding prototype.
7315 2005-01-19 Matt Austern <austern@apple.com>
7317 * typeck.c (comptypes): Handle return code from objc_comptypes
7320 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
7322 * cp-tree.h, name-lookup.h: Remove unused prototypes.
7324 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7327 * semantics.c (finish_id_expression): Disable access checking for
7328 already lookuped FIELD_DECL.
7330 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
7332 * decl.c (delete_block): Remove.
7333 * cp-tree.h: Remove the corresponding prototype.
7335 * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
7336 walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
7338 * cp-tree.h: Remove the corresponding prototypes.
7340 * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
7341 cp_update_decl_after_saving, name_p): Remove.
7342 * cp-tree.h: Remove the corresponding prototypes.
7344 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
7347 * semantics.c (finish_asm_stmt): Strip nops off
7348 input memory operands.
7350 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
7352 * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
7353 typeck2.c: Update copyright.
7355 2005-01-16 Kazu Hirata <kazu@cs.umass.edu>
7357 * class.c (get_enclosing_class): Remove.
7358 * cp-tree.h: Remove the corresponding prototypes.
7360 * cvt.c (convert_lvalue): Remove.
7361 * cp-tree.h: Remove the corresponding prototype.
7363 * pt.c (tinst_for_decl): Remove.
7364 * cp-tree.h: Remove the corresponding prototypes.
7366 * tree.c (hash_chainon): Remove.
7367 * cp-tree.h: Remove the corresponding prototypes.
7369 2005-01-15 Jakub Jelinek <jakub@redhat.com>
7372 * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
7373 of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
7375 2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7377 * Make-lang.in (cp-warn): Don't append $(WERROR).
7379 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
7381 * cp-tree.h: Fix a comment typo.
7383 2005-01-07 Nathan Sidwell <nathan@codesourcery.com>
7386 * pt.c (tsubst_qualified_id): Call convert_from_reference.
7388 2005-01-06 Mark Mitchell <mark@codesourcery.com>
7391 * class.c (add_implicitly_declared_members): Remove dead code.
7392 * decl.c (grokfndecl): Add sfk parameter. Use it do set
7394 (grokdeclarator): Adjust calls to grokfndecl.
7395 * method.c (implicitly_declare_fn): Improve documentation.
7396 * parser.c (cp_parser_direct_declarator): Do not consider a
7397 function to be a constructor if the containing class was
7398 originally anonymous.
7400 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7403 * search.c (lookup_field_1): Handle using declaration in
7404 class template partial specialization.
7406 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7409 * pt.c (push_access_scope): Handle friend defined in class.
7410 (pop_access_scope): Likewise.
7412 2005-01-06 Nathan Sidwell <nathan@codesourcery.com>
7415 * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
7416 (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
7417 array-new handling code. Use build_x_binary_op.
7419 2005-01-05 Nathan Sidwell <nathan@codesourcery.com>
7422 * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
7423 * name-lookup.h (push_scope): Return pushed scope, not flag.
7424 * name-lookup.c (push_scope): Return scope that should be popped,
7426 * decl.c (start_decl): Adjust.
7427 (grokfndecl): Adjust scope push and pop.
7428 * decl2.c (check_classfn): Likewise.
7429 * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
7430 cp_parser_init_declarator, cp_parser_direct_declarator,
7431 cp_parser_class_specifier, cp_parser_class_head,
7432 cp_parser_lookup_name,
7433 cp_parser_constructor_declarator_p): Likewise.
7434 * pt.c (instantiate_class_template,
7435 resolve_typename_type): Likewise.
7437 2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7440 * parser.c (cp_parser_unqualified_id): Do not issue error message
7441 for typedef-name as destructor declarator when performing an
7442 uncommitted tentative parse.
7444 2005-01-01 Steven Bosscher <stevenb@suse.de>
7447 * decl.c (finish_function): Fix comment. Annotate the compiler
7448 generated return with the current file name and line 0.