1 2007-01-03 Kazu Hirata <kazu@codesourcery.com>
3 * pt.c: Fix a comment typo.
5 2006-01-02 Ian Lance Taylor <iant@google.com>
7 * semantics.c (maybe_convert_cond): Optionally warn when using an
8 assignment as a condition.
9 * typeck.c (convert_for_assignment): Optionally warn about
10 assigning the result of an assignment to a bool.
12 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
14 * pt.c (canonical_template_parms): Correct typo in comment.
16 2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
18 * typeck.c (structural_comptypes): Renamed from "comptypes".
19 (comptypes): Use canonical type information to perform fast type
20 comparison. When VERIFY_CANONICAL_TYPES, verify that the
21 canonical type comparison returns the same results as we would see
22 from the current, structural check. Support COMPARE_STRUCTURAL
23 when we need structural checks.
24 * decl.c (typename_compare): Fix comment.
25 (build_typename_type): TYPENAME_TYPE nodes require structural
26 equality checks, because they resolve different based on the
28 (make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
29 require structural equality checks (for now).
30 (build_ptrmemfunc_type): Build the canonical pointer to member
32 (compute_array_index_type): Whenever we build a new index type
33 to represent the size of an array in a template, we need to mark
34 this index type as requiring structural equality. This goes for
35 arrays with value-dependent sizes with the current ABI, or all
37 * tree.c (cplus_array_hash): New.
38 (struct cplus_array_info): New.
39 (cplus_array_compare): New.
40 (cplus_array_htab): New.
41 (build_cplus_array_type_1): Use a hash table to cache the array
42 types we build. Build the canonical array type for each array
44 (cp_build_qualified_type_real): When building a cv-qualified array
45 type, use the hash table of array types and build canonical array
47 (bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
48 use structural equality (for now).
49 * cp-tree.h (COMPARE_STRUCTURAL): New.
50 * pt.c (canonical_template_parms): New.
51 (canonical_type_parameter): New.
52 (process_template_parm): Find the canonical type parameter.
53 (lookup_template_class): When we have named the primary template
54 type, set the canonical type for our template class to the primary
55 template type. If any of the template arguments need structural
56 equality checks, the template class needs structural equality
58 (tsubst): When reducing the level of a template template
59 parameter, we require structural equality tests for the resulting
60 parameter because its template parameters have not had their types
61 canonicalized. When reducing a template type parameter, find the
62 canonical reduced type parameter.
63 (any_template_arguments_need_structural_equality_p): New.
65 2006-12-31 Simon Martin <simartin@users.sourceforge.net>
68 * parser.c (cp_parser_primary_expression): Return error_mark_node when
69 a statement-expression is found outside of a function body.
71 2006-12-28 Kazu Hirata <kazu@codesourcery.com>
73 * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
76 * decl2.c: Fix a comment typo.
78 2006-12-21 Andrew Pinski <pinskia@gmail.com>
81 * decl.c (cxx_builtin_function): Only copy the decl if adding
82 it to the std namespace.
84 2006-12-21 Andrew Pinski <pinskia@gmail.com>
87 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
89 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
91 * decl.c: Fix a coment typo.
93 2006-12-18 Ian Lance Taylor <iant@google.com>
95 * decl.c (start_preparsed_function): Add support for
96 -Wmissing-declarations.
98 2006-12-16 Simon Martin <simartin@users.sourceforge.net>
101 * cp-tree.h (struct deferred_access_check): New structure to represent a
102 deferred access check. It replaces the previous representation as a tree.
103 (get_deferred_access_checks): Return a vector of struct
104 deferred_access_check instead of a tree list.
105 (perform_access_checks): Take a vector of struct deferred_access_check
106 instead of a tree list.
107 * semantics.c (struct deferred_access): Store the deferred access checks
108 as a vector of struct deferred_access_check instead of a tree list.
109 (push_deferring_access_checks): Handle the change in struct
111 (get_deferred_access_checks): Likewise.
112 (pop_to_parent_deferring_access_checks): Likewise.
113 (perform_or_defer_access_check): Likewise.
114 (perform_access_checks): Take a vector of struct deferred_access_check
115 instead of a tree list.
116 * parser.c (struct tree_check): New structure to store various data
117 associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
118 (struct cp_token): Changed the value field to be a union with a pointer to
119 a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
120 tokens and a tree field for all other tokens.
121 (eof_token): Adjusted due to the change in struct cp_token.
122 (cp_lexer_get_preprocessor_token): Likewise.
123 (cp_lexer_purge_token): Likewise.
124 (cp_lexer_purge_tokens_after): Likewise.
125 (cp_lexer_print_token): Likewise.
126 (cp_parser_error): Likewise.
127 (cp_parser_identifier): Likewise.
128 (cp_parser_string_literal): Likewise.
129 (cp_parser_primary_expression): Likewise.
130 (cp_parser_unqualified_id): Likewise.
131 (cp_parser_parenthesized_expression_list): Likewise.
132 (cp_parser_storage_class_specifier_opt): Likewise.
133 (cp_parser_function_specifier_opt): Likewise.
134 (cp_parser_type_specifier): Likewise.
135 (cp_parser_simple_type_specifier): Likewise.
136 (cp_parser_initializer_list): Likewise.
137 (cp_parser_member_specification_opt): Likewise.
138 (cp_parser_attribute_list): Likewise.
139 (cp_parser_objc_expression): Likewise.
140 (cp_parser_objc_protocol_qualifiers): Likewise.
141 (cp_parser_objc_selector): Likewise.
142 (cp_parser_objc_declaration): Likewise.
143 (cp_parser_objc_statement): Likewise.
144 (cp_parser_omp_clause_name): Likewise.
145 (cp_parser_omp_clause_default): Likewise.
146 (cp_parser_omp_clause_schedule): Likewise.
147 (cp_parser_omp_parallel): Likewise.
148 (cp_parser_initial_pragma): Likewise.
149 (pragma_lex): Likewise.
150 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
151 (cp_parser_nested_name_specifier_opt): Likewise.
152 Use cp_token::u::tree_check_value to save the token's value, the
153 associated deferred checks and its qualifying scope.
154 (cp_parser_template_id): Likewise.
155 (cp_parser_template_declaration_after_export): Adjusted the call to
156 get_deferred_access_checks.
157 (cp_parser_init_declarator): Take the access checks as a vector of struct
158 deferred_access_check instead of a tree list.
159 (cp_parser_single_declaration): Likewise.
160 (cp_parser_perform_template_parameter_access_checks): Likewise.
161 (cp_parser_simple_declaration): Adjusted the call to
162 cp_parser_init_declarator.
163 (cp_parser_explicit_specialization): Adjusted the call to
164 cp_parser_single_declaration.
166 2006-12-13 Ian Lance Taylor <iant@google.com>
170 * parser.c (cp_parser_expression_stack_entry): Add field
172 (cp_parser_binary_expression): Track tree code of left hand side
173 of expression. Use it when calling build_x_binary_op.
174 (cp_parser_selection_statement): Add if_p parameter. Change all
175 callers. Warn about ambiguous else.
176 (cp_parser_statement): Add if_p parameter. Change all callers.
177 (cp_parser_implicitly_scoped_statement): Likewise.
178 * typeck.c (build_x_binary_op): Add parameters arg1_code and
179 arg2_code. Change all callers. Call warn_about_parentheses.
180 * cp-tree.h (build_x_binary_op): Update declaration.
182 2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
184 * decl.c (build_enumerator): Update error message to match C
187 2006-12-11 Jan Hubicka <jh@suse.cz>
189 * decl2.c (var_finalized_p): Update for renamed varpool functions.
191 2006-12-09 Zack Weinberg <zackw@panix.com>
193 * parser.c (yydebug, enum pragma_omp_clause): Delete.
195 2006-12-07 Mark Mitchell <mark@codesourcery.com>
198 * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
199 (explicit_class_specialization_p): Declare.
200 * pt.c (explicit_class_specialization_p): New function.
201 * parser.c (cp_parser_init_declarator): Check correct number of
202 template parameters for in-class function definitions.
203 (cp_parser_check_declrator_template_parameters): Stop looking for
204 template classes when we find an explicit specialization.
206 2006-12-07 Lee Millward <lee.millward@codesourcery.com>
209 * cp_parser_elaborated_type_specifier: Check
210 the return value of check_elaborated_type_specifier.
212 2006-12-06 Mark Mitchell <mark@codesourcery.com>
215 * parser.c (cp_parser_init_declarator): Reject initialization of
218 2006-12-05 Mark Mitchell <mark@codesourcery.com>
221 * decl2.c (check_member_template): Move check for member
222 templates in local classes to ...
223 * parser.c (cp_parser_template_declaration_after_export):
227 * decl.c (check_array_designated_initializer): New function.
228 (maybe_deduce_size_from_array_init): Use it.
229 (reshape_init_array): Likewise.
231 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
233 Merge from gimple-tuples-branch.
235 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
237 * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
238 (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
239 (cxx_omp_clause_copy_ctor): Same.
240 (cxx_omp_clause_assign_op): Same.
242 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
244 * cp-tree.h (union lang_tree_node): Gimple statements do not
246 (TREE_INDIRECT_USING): Look in base.
248 2006-12-04 Jan Hubicka <jh@suse.cz>
250 * cp-objcp-common.c (cp_expr_size): Return NULL in the case
253 2006-12-04 Mark Mitchell <mark@codesourcery.com>
256 * pt.c (tsubst_decl): Disallow variables of function type.
259 * call.c (add_builtin_candidate): Do not permit NULL pointer
260 constants to be compared with template parameters.
262 2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
264 * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
265 Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
267 2006-12-03 Richard Henderson <rth@redhat.com>
268 Andrew Pinski <pinskia@gmail.com>
271 * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
273 2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
276 * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
278 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
280 * name-lookup.c: Follow spelling conventions.
282 2006-12-01 Geoffrey Keating <geoffk@apple.com>
284 * decl.c (poplevel): Check DECL_INITIAL invariant.
285 (duplicate_decls): Preserve DECL_INITIAL when eliminating
286 a new definition in favour of an old declaration.
287 (start_preparsed_function): Define and document value of
288 DECL_INITIAL before and after routine.
289 (finish_function): Check DECL_INITIAL invariant.
291 (cp_parser_function_definition_from_specifiers_and_declarator):
292 Skip duplicate function definitions.
294 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
297 * typeck.c (type_after_usual_arithmetic_conversions):
298 Fix assertion for vector types.
299 (build_binary_op): Use temporary for inner type of vector types.
301 2006-12-01 Ryan Mansfield <rmansfield@qnx.com>
304 * typeck.c (build_binary_op): Fix pointer to member function
305 comparison for ptrmemfunc_vbit_in_delta targets.
307 2006-12-01 Dirk Mueller <dmueller@suse.de>
310 * decl.c (grokdeclarator): Warn for type qualifiers on return
311 type for non-dependent types.
312 * pt.c (tsubst_function_type): Warn for type qualifiers on
313 return type for dependent types.
315 2006-11-30 Geoffrey Keating <geoffk@apple.com>
317 * rtti.c (get_tinfo_decl): Handle return value from
318 pushdecl_top_level_and_finish.
320 2006-11-29 Lee Millward <lee.millward@codesourcery.com>
323 * parser.c (cp_parser_class_head): Move processing
324 of any base classes to...
325 (cp_parser_class_specifier) ...here. Take an extra
326 tree* parameter for any base classes. Only process
327 them if the opening brace was found.
329 2006-11-28 Jakub Jelinek <jakub@redhat.com>
332 * decl.c (grokfndecl): Check main's type after applying
333 attributes, not before.
335 2006-11-27 Mark Mitchell <mark@codesourcery.com>
337 * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
338 entries for a primary construction virtual table.
340 2006-11-26 Mark Mitchell <mark@codesourcery.com>
343 * parser.c (cp_parser): Add in_function_body.
344 (cp_parser_new): Initialize it.
345 (cp_parser_primary_expression): Use parser->in_function_body
346 instead of at_function_scope_p.
347 (cp_parser_asm_definition): Likewise.
348 (cp_parser_direct_declarator): Likewise.
349 (cp_parser_class_specifier): Clear parser->in_function_body.
350 (cp_parser_constructor_declarator_p): Use parser->in_function_body
351 instead of at_function_scope_p.
352 (cp_parser_function_body_after_declarator): Set
353 parser->in_function_body.
355 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
357 * cp-tree.def (STATIC_ASSERT): New.
358 * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
359 * error.c (dump_decl): Handle STATIC_ASSERT.
360 * cp-tree.h (STATIC_ASSERT_CONDITION): New.
361 (STATIC_ASSERT_MESSAGE): New.
362 (STATIC_ASSERT_SOURCE_LOCATION): New.
363 (struct tree_static_assert): New.
364 (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
365 (union lang_tree_node): Add static_assertion.
366 (finish_static_assert): Declare.
367 * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
368 (pp_cxx_declaration): Handle STATIC_ASSERT.
369 * pt.c (instantiate_class_template): Handle
370 STATIC_ASSERT members.
371 (tsubst_expr): Handle STATIC_ASSERT statements.
372 * semantics.c (finish_static_assert): New.
373 * lex.c (D_CPP0X): New.
374 (reswords): Add static_assert keyword.
375 (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
376 * parser.c (cp_parser_block_declaration): Parse static
378 (cp_parser_static_assert): New.
379 (cp_parser_member_declaration): Parse static assertions.
381 2006-11-21 Jakub Jelinek <jakub@redhat.com>
384 * decl.c (cp_finish_decl): Check for value dependent brace enclosed
388 * cp-tree.h (WANT_VECTOR): Define.
389 (WANT_ARITH): Add WANT_VECTOR.
390 * cvt.c (build_expr_type_conversion): Handle vector types.
391 * typeck.c (build_unary_op): Add WANT_VECTOR to
392 build_expr_type_conversion flags.
394 2006-11-20 Simon Martin <simartin@users.sourceforge.net>
397 * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
398 extra argument that represents the declaration to use to print
399 potential error messages.
400 * init.c (build_offset_ref): Adjusted the call to
401 perform_or_defer_access_check.
402 * class.c (alter_access, resolve_address_of_overloaded_function):
404 * decl.c (make_typename_type, make_unbound_class_template): Likewise.
405 * search.c (lookup_member): Likewise.
406 * friend.c (add_friend): Likewise.
407 * parser.c (cp_parser_template_id,
408 cp_parser_pre_parsed_nested_name_specifier): Likewise.
409 * semantics.c (finish_non_static_data_member,
410 check_accessibility_of_qualified_id, finish_id_expression): Likewise.
411 (pop_to_parent_deferring_access_checks, perform_access_checks,
412 perform_or_defer_access_check): Adjusted the call to enforce_access.
413 * call.c (enforce_access): Use the new extra argument to build the
415 (build_op_delete_call): Adjusted the call to
416 perform_or_defer_access_check.
417 (build_over_call): Likewise.
419 2006-11-16 Dirk Mueller <dmueller@suse.de>
421 * name-lookup.c (begin_scope): Use GGC_CNEW instead of
424 2006-11-13 Roger Sayle <roger@eyesopen.com>
426 * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
427 base type info initializer has the correct type.
429 2006-11-13 Mark Mitchell <mark@codesourcery.com>
432 * pt.c (coerce_template_parms): Do not skip_evaluation while
433 substituting template arguments.
435 2006-11-11 Richard Guenther <rguenther@suse.de>
437 * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
438 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
440 2006-11-03 Roger Sayle <roger@eyesopen.com>
442 * call.c (build_op_delete_call): Test user-visible type against
443 size_type_node, instead of against the internal type, sizetype.
444 * class.c (type_requires_array_cookie): Likewise.
445 * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
446 handling of TYPE_IS_SIZETYPE.
447 * typeck.c (type_after_usual_arithmetic_conversions): Remove
448 special case handling of TYPE_IS_SIZETYPE.
449 (comptypes): Likewise.
451 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
453 * decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
454 if targetm.cxx.use_atexit_for cxa_atexit.
455 (start_cleanup_fn): Likewise.
456 (register_dtor_fn): Likewise.
458 2006-09-25 Geoffrey Keating <geoffk@apple.com>
460 * decl2.c (cp_write_global_declarations): Rename from
462 * cp-lang.c (finish_file): Don't call cp_finish_file.
463 * cp-tree.h (cp_write_global_declarations): Rename from
465 * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
466 cp_write_global_declarations.
468 2006-10-31 Geoffrey Keating <geoffk@apple.com>
470 * name-lookup.c (get_anonymous_namespace_name): New.
471 (push_namespace_with_attribs): Use get_anonymous_namespace_name.
472 * decl2.c (start_objects): Update for rename of
473 get_file_function_name_long.
475 2006-10-30 Dirk Mueller <dmueller@suse.de>
478 * decl.c (grokdeclarator): Duplicate diagnostic message
479 for easier translation.
480 * decl.c (grokdeclarator): Fix line-wrapping.
482 2006-10-30 Dirk Mueller <dmueller@suse.de>
485 * decl.c (grokfndecl): Use check_main_parameter_types.
487 2006-10-30 Dirk Mueller <dmueller@suse.de>
490 * decl.c (grokfndecl): Duplicate warning message for
493 2006-10-30 Dirk Mueller <dmueller@suse.de>
495 * typeck.c (build_unary_op): Fix indenting. Use G_().
497 2006-10-29 Dirk Mueller <dmueller@suse.de>
500 * typeck.c (build_unary_op): Duplicate warning message
501 for easier translation.
503 2006-10-29 Dirk Mueller <dmueller@suse.de>
506 * typeck.c (build_array_ref): Warn for char subscriptions
509 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
511 * decl.c: Fix a comment typo.
513 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
516 * typeck.c (build_unary_op): Use same_type_p when comparing to
519 2006-10-29 Dirk Mueller <dmueller@suse.de>
522 * typeck.c (build_binary_op): Duplicate warning message
523 for better translation.
525 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
527 * decl.c (builtin_function_1): Move common code to
528 add_builtin_function.
529 (builtin_function): Rename to cxx_builtin_function.
530 Change the signature.
531 * call.c: Include langhooks.h.
532 (build_java_interface_fn_ref): Replace calls to
533 builtin_function with add_builtin_function.
534 * Make-lang.in (cp/call.o): Depend on langhooks.h.
535 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
536 cxx_builtin_function.
537 * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
538 Change the signature.
540 2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
543 * rtti.c (tinfo_base_init): The type info string is always global.
545 2006-10-20 Lee Millward <lee.millward@codesourcery.com>
546 Mark Mitchell <mark@codesourcery.com>
549 * decl2.c (grokbitfield): Detect invalid non-integral
550 types earlier when possible.
552 2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
555 * typeck2.c (digest_init): Raise error upon attempts to
556 initialize arrays with variables.
558 2006-10-17 Lee Millward <lee.millward@codesourcery.com>
561 * cp-tree.h (xref_basetypes): Return bool instead of void.
562 * decl.c (xref_basetypes): Adjust definition. Return false
563 if the class bases are invalid.
564 * parser.c (cp_parser_class_head): Check the return value
567 2006-10-17 Mark Mitchell <mark@codesourcery.com>
570 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
574 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
576 (cp_parser_constructor_declarator_p): Use it.
577 (cp_parser_check_type_definition): Return a value indicating
578 whether or not the definition is valid.
579 (cp_parser_enum_specifier): Skip invalid enum definitions.
581 2006-10-17 Mark Mitchell <mark@codesourcery.com>
584 * typeck2.c (build_functional_cast): Don't zero-initialize
585 non-PODs; instead, call their constructors.
586 * method.c (synthesize_method): Always build mem-initializers, if
587 we're synthesizing the default constructor.
589 2006-10-17 Mark Mitchell <mark@codesourcery.com>
592 * decl.c (reshape_init_class): Move check for designated
594 * parser.c (cp_parser_initializer_list): ... here.
595 * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
597 2006-10-16 Mark Mitchell <mark@codesourcery.com>
600 * typeck2.c (process_init_constructor_array): Reword comment.
601 * pt.c (tsubst_copy_and_built): Call reshape_init before calling
605 * parser.c (cp_parser_using_declaration): Stop parsing when
606 something goes wrong with an access declaration.
609 * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
610 types when their sizes are required. Refine test for VLAs.
613 * parser.c (cp_parser_template_argument): Don't consider "&var" a
614 possible constant-expression.
615 * pt.c (convert_nontype_argument): Refine handling of arguments of
618 2006-10-13 Mark Mitchell <mark@codesourcery.com>
621 * parser.c (function_declarator_p): New function.
622 (cp_parser_init_declarator): Use it.
623 (cp_parser_member_declaration): Likewise.
625 2006-10-12 Mark Mitchell <mark@codesourcery.com>
628 * rtti.c (get_tinfo_decl): Refuse to create type info objects for
629 variably modified types.
631 2006-10-12 Lee Millward <lee.millward@codesourcery.com>
634 * decl.c (start_decl): Return error_mark_node if a
635 function is initialized like a variable.
636 (check_var_type): If a variable of field is declared void,
637 set the type to error_mark_node.
638 (grokdeclarator): Check the return type of check_var_type.
639 * class.c (finish_struct_1): Robustify.
641 2006-10-11 Mark Mitchell <mark@codesourcery.com>
644 * decl.c (check_initializer): Issue errors about trying to
645 initialize arrays whose elements have variable size.
647 2006-10-11 Lee Millward <lee.millward@codesourcery.com>
650 * cp-tree (struct cp_decl_specifier_seq): Rename to
651 conflicting_specifiers_p
652 * parser.c (cp_parser_set_storage_class): Set
653 conflicting_specifiers_p for the input decl specifier
654 if a typedef specifier is present. Rename uses of
655 multiple_specifiers_p to conflicting_specifiers_p.
656 (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
657 class specifier has already been set for this declaration,
658 set conflicting_specifiers_p to true on the decl_specs.
659 * decl.c (grokdeclarator): Rename uses of
660 multiple_specifiers_p to conflicting_specifiers_p.
662 2006-10-10 Brooks Moses <bmoses@stanford.edu>
664 * Make-lang.in: Added "c++.pdf" target support.
666 2006-10-10 Richard Guenther <rguenther@suse.de>
668 PR rtl-optimization/29323
669 * decl.c (finish_function): Set TREE_NOTHROW only for
670 functions that bind local.
672 2006-10-09 Richard Henderson <rth@redhat.com>
676 2006-10-04 Richard Henderson <rth@redhat.com>
677 Jakub Jelinek <jakub@redhat.com>
679 * decl.c (grokvardecl): Don't error if !have_tls.
680 (grokdeclarator): Likewise.
681 * parser.c (cp_parser_omp_threadprivate): Likewise.
683 2006-10-03 Mark Mitchell <mark@codesourcery.com>
686 * friend.c (do_friend): Improve comments; add assertion.
687 * parser.c (cp_parser_nested_name_specifier_opt): Resolve
688 typenames for qualified names used in declarations, even when
689 caching qualified name lookup.
692 * decl2.c (grokfield): Don't handle access declarations here.
693 * parser.c (cp_parser_using_declaration): Handle access
695 (cp_parser_block_declaration): Adjust calls to
696 cp_parser_using_declaration.
697 (cp_parser_member_declaration): Likewise. Use
698 cp_parser_using_declaration to look for access_declarations.
700 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
703 * init.c (build_new): Check for invalid init.
705 2006-10-02 Mark Mitchell <mark@codesourcery.com>
708 * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
709 not try to actually evaluate sizeof for a VLA type.
711 2006-10-01 Mark Mitchell <mark@codesourcery.com>
714 * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
715 * semantics.c (baselink_for_fns): Build a baselink, even when
716 processing a template.
719 * parser.c (cp_parser_postfix_dot_deref_expression): Use
720 BASELINK_ACCESS_BINFO as the qualifying scope when calling
721 adjust_result_of_qualified_name_lookup.
723 2006-09-25 Lee Millward <lee.millward@codesourcery.com>
727 * cp-tree.h (redeclare_class_template): Adjust declaration
728 to return bool instead of void.
729 * pt.c (redeclare_class_template): Update definition.
730 Return false on error.
731 * decl.c (xref_tag): Return error_mark_node if
732 redeclare_class_template returned false.
735 * cp-tree.h (begin_specialization): Return bool
737 * pt.c (check_specialization_scope): Likwise.
738 Adjust comment. Return false if a specialization
739 isn't permitted in the current scope.
740 (begin_specialization): Use the return value of
741 check_specialization_scope.
742 * parser.c (cp_parser_explicit_specialization): If
743 begin_specialization returned false, skip the rest
744 of the specialization.
746 2006-09-21 Mark Mitchell <mark@codesourcery.com>
749 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
752 2006-09-21 Lee Millward <lee.millward@codesourcery.com>
755 * decl.c (shadow_tag): Return error_mark_node
756 if maybe_process_partial_specialization failed.
759 * decl.c (grokdeclarator): Return error_mark_node on
760 declaration with two or more data types.
762 2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
765 * class.c (check_for_override): Remove dllimport from virtual
768 2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
771 * parser.c (cp_parser_labeled_statement): Return nothing. Do
772 not take in_statement_expr and in_compound as arguments. Rename
773 to cp_parser_label_for_labeled_statement. Parse only the label,
775 (cp_parser_statement): Parse the statement of a labeled-statement
776 from here, using tail recursion.
778 2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
781 * init.c (build_zero_init): If we have an error mark node for
782 the array size, return.
784 2006-09-10 Mark Mitchell <mark@codesourcery.com>
787 * cp-objcp-common.c (cxx_staticp): New function.
788 * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
789 * cp-tree.h (cxx_staticp): New function.
791 2006-09-09 Jason Merrill <jason@redhat.com>
794 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
796 2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
799 * parser.c (cp_parser_skip_until_found): Rename to
800 cp_parser_skip_to_end_of_template_parameter_list. Remove last two
801 parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
802 Reorganize. Adjust comment.
803 (cp_parser_template_declaration_after_export): Adjust call.
804 (cp_parser_enclosed_template_argument_list): Likewise.
806 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
809 * init.c (build_new_1): Build a distinct type copy
810 for the array type that was returned from
811 build_cplus_array_type.
813 2006-09-07 Jason Merrill <jason@redhat.com>
816 * cvt.c (convert_to_void): Enable previous change.
819 * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
822 2006-09-07 Simon Martin <simartin@users.sourceforge.net>
825 * pt.c (fold_non_dependent_expr): Make sure expr is not
826 dereferenced if it is NULL.
828 2006-09-06 Zak Kipling <zak@transversal.com>
831 * decl.c (make_rtl_for_nonlocal_decl),
832 (start_preparsed_function): Don't use lbasename on
833 input_filename when calling get_fileinfo.
834 * semantics.c (begin_class_definition): Likewise.
835 * lex.c (cxx_make_type): Likewise.
836 (handle_pragma_interface): Call get_fileinfo on input_filename,
837 not on the parameter to the directive.
839 2006-09-06 Mark Mitchell <mark@codesourcery.com>
842 * pt.c (tsubst): Use fold_non_dependent_expr to fold array
846 * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
849 2006-09-06 Jason Merrill <jason@redhat.com>
852 * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
853 * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
854 * tree.c (build_cplus_new): Set it.
857 * cvt.c (convert_to_void): Replace a subexpression with no side
858 effects with void_zero_node.
859 * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
860 (get_first_fn): Ditto.
861 * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
863 2006-09-05 Jason Merrill <jason@redhat.com>
866 * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
867 where the name is a type used incorrectly.
870 * typeck.c (maybe_warn_about_returning_address_of_local): Look
871 through COMPONENT_REF and ARRAY_REF.
874 * name-lookup.c (do_class_using_decl): Try to find the base even
875 if bases_dependent_p.
876 * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
879 * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
881 2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
883 PR 23287 Revert my 2006-09-01 patch.
884 * parser.c: Reverted.
887 2006-09-02 Lee Millward <lee.millward@codesourcery.com>
893 * parser.c (cp_parser_template_parameter_list): Add
894 invalid template parameters to the parameter list as
897 2006-09-02 Jakub Jelinek <jakub@redhat.com>
900 * except.c (build_throw): Only set current_function_returns_abnormally
904 * repo.c (repo_file): Remove.
905 (open_repo_file, reopen_repo_file_for_write): Return fopened
906 FILE * instead of setting global repo_file variable.
907 (init_repo): Adjust caller.
908 (finish_repo): Likewise. Return instead of goto out before
909 reopen_repo_file_for_write has been called.
911 2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
914 * semantics.c (finish_call_expr): Add assert.
915 * name-lookup.c (lookup_arg_dependent): Check we found an overload
919 * parser.c (cp_parser_id_expression): Add member_p
920 argument. Update all callers.
921 (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
922 the object's scope, if valid.
923 (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
925 (cp_parser_postfix_dot_deref_expression): Set object_scope.
926 * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
928 2006-08-30 Jason Merrill <jason@redhat.com>
931 * class.c (check_field_decls): Don't unset TYPE_PACKED until all
932 the fields have been processed.
934 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
937 * call.c (build_x_va_arg): Remove the reference type
938 from the type before creating the pointer type.
940 2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
943 * except.c (expand_start_catch_block): Use correct types for bitwise
946 2006-08-28 Jason Merrill <jason@redhat.com>
949 * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
950 fields can't be packed.
953 * cvt.c (convert_to_void): Don't automatically load from volatiles
954 of TREE_ADDRESSABLE type.
956 2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
959 * cp-tree.h (maybe_process_partial_specialization): Return
960 tree instead of void.
961 * parser.c (cp_parser_class_head): Use return value of
962 maybe_process_partial_specialization.
963 * pt.c (maybe_process_partial_specialization): Return error_mark_node
964 for broken specializations, TYPE otherwise. Check for template
967 2006-08-27 Mark Mitchell <mark@codesourcery.com>
970 * pt.c (register_specialization): Return error_mark_node for
971 specialization-after-instantiation.
972 * decl2.c (mark_used): Mark the main function used when one of its
975 2006-08-27 Lee Millward <lee.millward@codesourcery.com>
978 * class.c (check_field_decls): Don't issue error about
979 local classes containing static data members.
981 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
984 * parser.c (struct cp_token): Add input_file_stack_index.
986 (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
987 (cp_lexer_set_source_position_from_token): Restore input file
990 2006-08-26 Lee Millward <lee.millward@codesourcery.com>
995 * pt.c (process_template_parm): Store invalid template
996 parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
997 (push_inline_template_parms_recursive): Check for template
998 parameters having a TREE_VALUE of error_mark_node rather than
999 check the parameter itself.
1000 (mangle_class_name_for_template): Likewise.
1001 (comp_template_parms): When comparing the individual template
1002 parameters, return 1 if either is error_mark_node.
1003 (current_template_args): Robustify.
1004 (redeclare_class_template): Likewise.
1006 2006-08-26 Mark Mitchell <mark@codesourcery.com>
1009 * class.c (resolve_address_of_overloaded_function): Add
1010 access_path parameter. Perform access checks.
1011 (instantiate_type): Adjust call to
1012 resolve_address_of_overloaded_function. Remove unnecessary code.
1013 * tree.c (is_overloaded_fn): Document. Return 2 when there are
1014 acutally multiple functions.
1015 (really_overloaded_fn): Use is_overloaded_fn.
1016 * mangle.c (write_expression): Handle BASELINKs.
1017 * cp-tree.h (really_overloaded_fn): Return bool.
1018 (baselink_for_fns): Declare.
1019 * search.c (lookup_member): Check access for single static
1021 * pt.c (convert_nontype_argument_function): Handle BASELINKs.
1022 (tsubst_copy_and_build): Generate BASELINKs for template-ids.
1023 * semantics.c (finish_call_expr): Use baselink_for_fns.
1024 (baselink_for_fns): New function.
1025 (finish_id_expression): Use it.
1026 * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
1029 * pt.c (tsubst): Issue errors about attempts to create VLAs at
1030 template-instantiation time.
1032 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1035 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
1036 template parameters. Improve error message for template type
1040 * cp-tree.h (grok_op_properties): Return bool instead of void.
1041 * decl.c (grokfndecl): Discard invalid operator declarations.
1042 (copy_fn_p): Revert change for PR 27547.
1043 (grok_op_properties): Return error status (true on success).
1044 * pt.c (tsubst_decl): Discard invalid operator declarations.
1046 2006-08-25 Mark Mitchell <mark@codesourcery.com>
1049 * decl.c (grokdeclarator): Disallow declarations with qualified
1050 names in local scopes.
1052 2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
1055 * decl.c (make_typename_type): Only try and resolve it when
1056 context is not dependent. Refactor.
1057 * decl2.c (check_classfn): Push to class scope before looking for
1060 2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
1063 * g++spec.c (lang_specific_driver): Always check if we need to
1064 swallow a space-separated arg to '-x'.
1065 * lang-specs.h: Don't create ouput files for '-xc++-header'
1068 2006-08-23 Jason Merrill <jason@redhat.com>
1071 * pt.c (push_template_decl_real): A friend template with class
1072 scope isn't primary.
1074 2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
1077 * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
1078 Move -fno-rtti check to be more specific.
1080 2006-08-22 Jason Merrill <jason@redhat.com>
1083 * call.c (build_over_call): Don't make a copy here if build_call
1086 2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
1089 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
1092 2006-08-22 Simon Martin <simartin@users.sourceforge.net>
1095 * parser.c (cp_parser_postfix_expression): Make sure that the
1096 saved value for parser->type_definition_forbidden_message is
1097 restored before returning to avoid an invalid free().
1099 2006-08-22 Jason Merrill <jason@redhat.com>
1102 * typeck.c (merge_types): If either of the types have the right
1103 attributes, return that one.
1105 * tree.c (cp_build_type_attribute_variant): Make sure we aren't
1106 doing this to class types.
1107 * typeck.c (original_type): Deal with type quals properly.
1109 2006-08-21 Jason Merrill <jason@redhat.com>
1112 * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
1113 just leave the expression as it is.
1114 (finish_stmt_expr): If the statement-expression has class type,
1115 wrap it in a TARGET_EXPR.
1116 * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
1118 * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
1120 2006-08-21 Lee Millward <lee.millward@codesourcery.com>
1123 * decl.c (duplicate_decls): Return early if either
1124 newdecl or olddecl is error_mark_node.
1127 * decl.c (grokdeclarator): Return early after
1128 issuing diagnostic about an incomplete type.
1131 * tree.c (decl_anon_ns_mem_p): Robustify.
1132 * decl2.c (determine_visibility): Likewise.
1134 2006-08-20 Mark Mitchell <mark@codesourcery.com>
1137 * tree.c (cast_valid_in_integral_constant_expression_p): New
1139 * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
1140 * pt.c (tsubst_expr): Add integral_constant_expression_p
1142 (fold_non_dependent_expr): Adjust callers of
1143 tsubst_{expr,copy_and_build}.
1144 (tsubst_friend_function): Likewise.
1145 (tsubst_template_arg): Likewise.
1146 (tsubst_default_argument): Likewise.
1147 (tsubst_decl): Likewise.
1149 (tsubst_omp_clasuses): Likewise.
1150 (regenerate_decl_fromp_template): Likewise.
1151 (instantiate_decl): Likewise.
1152 (tsubst_initializer_list): Likewise.
1153 (tsubst_enum): Likewise.
1154 (tsubst_expr): Use RECUR throughout.
1155 (tsubst_copy_and_build): Change definition of RECUR. Do not allow
1156 invalid casts in integral constant expressions.
1157 * parser.c (cp_parser_postfix_expression): Use
1158 cast_valid_in_integral_constant_expression_p.
1159 (cp_parser_cast_expression): Likewise.
1160 (cp_parser_functional_cast): Likewise.
1163 * pt.c (tsubst_qualified_id): Do not strip references from
1166 2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1169 * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
1171 (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
1172 for valid type-names.
1173 (cp_parser_unqualified_id): Fix error handling for destructors.
1176 * decl.c (xref_tag): Improve error message. Return early on error.
1179 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
1181 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1184 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1186 2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
1189 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
1190 perform_integral_promotions for non integral type.
1192 2006-08-16 Jason Merrill <jason@redhat.com>
1195 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
1196 if arg is a function.
1198 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1201 * init.c (build_new): Return early on invalid placement.
1203 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
1206 * pt.c (process_template_parm): Robustify.
1208 2006-08-14 Steve Ellcey <sje@cup.hp.com>
1212 * operators.def: Remove <?, ?>, <?=, and >?= operators.
1213 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
1214 (cp_parser_warn_min_max): Remove.
1216 2006-08-11 Jason Merrill <jason@redhat.com>
1219 * parser.c (cp_parser_elaborated_type_specifier): Also ignore
1220 attributes applied to a TYPENAME_TYPE.
1222 2006-08-09 Lee Millward <lee.millward@codesourcery.com>
1225 * pt.c (coerce_template_parms): Copy across the
1226 invalid template arguments to the new template inner arguments.
1227 (retrieve_specialization): Robustify.
1230 * pt.c (coerce_template_template_parms): Robustify.
1233 * error.c (dump_template_parms): Robustify.
1236 * pt.c (redeclare_class_template): Robustify.
1239 * pt.c (type_unification_real): Robustify.
1241 2006-08-03 Lee Millward <lee.millward@codesourcery.com>
1244 * decl.c (start_decl): Return error_mark_node if a
1245 diagnostic was issed for an invalid typedef initialization.
1247 2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1250 * parser.c (cp_parser_unqualified_id): Check for invalid scopes
1251 when parsing destructor names.
1254 * decl.c (duplicate_decls): Call check_default_args here.
1255 (start_preparsed_function): Do not call check_default_args.
1256 * name-lookup.c (pushdecl_maybe_friend): Only call
1257 check_default_args if duplicate_decls got bypassed.
1259 2006-08-02 Richard Guenther <rguenther@suse.de>
1263 2006-07-05 Richard Guenther <rguenther@suse.de>
1264 Andrew Pinski <pinskia@gcc.gnu.org>
1267 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1268 top level qualifiers for pointer type comparisons.
1270 2006-08-02 Mark Mitchell <mark@codesourcery.com>
1273 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1275 2006-07-31 Mark Mitchell <mark@codesourcery.com>
1278 * tree.c (stabilize_expr): Tweak documentation. Add assertion.
1279 (stabilize_call): Tweak documentation.
1280 (stabilize_init): Only call stabilize_call for calls.
1282 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1285 * decl2.c (check_classfn): Remove early return.
1286 * search.c (lookup_member): Return NULL with bad type.
1288 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1291 * decl.c (check_initializer): Check for 1 initializer on scalar types.
1293 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1296 * pt.c (tsubst_copy_and_build): Mark used enum types.
1297 * semantics.c (finish_id_expression): Likewise.
1299 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1302 * decl.c (grokdeclarator): Check whether "long" or "short" was
1303 specified for non-integral types.
1305 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1307 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1309 2006-07-28 Lee Millward <lee.millward@codesourcery.com>
1313 * pt.c (process_template_parm) Store invalid template
1314 parameters as error_mark_node in the paramater list.
1315 (push_inline_template_parms_recursive): Handle invalid
1316 template parameters.
1317 (comp_template_parms): Likewise.
1318 (check_default_tmpl_arg): Likewise.
1319 (coerce_template_template_parms): Likewise.
1320 (mangle_class_name_for_template): Likewise.
1321 (tsubst_template_parms): Likewise.
1322 * error.c (dump_template_argument_list): Likewise.
1324 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
1326 * cp-tree.h: Fix a comment typo.
1328 2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1331 * decl.c (grokdeclarator): Return error_mark_node after invalid
1334 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
1337 * decl.c (grokvardecl): Use FROB_CONTEXT.
1338 * pt.c (register_specialization): Likewise.
1340 2006-07-23 Mark Mitchell <mark@codesourcery.com>
1343 * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
1344 * name-lookup.c (unqualified_namespace_lookup): There is no way to
1345 have a hidden name in non-namespace scopes.
1346 * pt.c (tsubst_friend_class): Look for hidden names.
1347 * decl.c (lookup_and_check_tag): Fix typo in comment.
1349 * semantics.c (finish_compound_literal): Fix typo in comment.
1351 2006-07-21 Jason Merrill <jason@redhat.com>
1353 * decl2.c (determine_visibility): Don't propagate visibility from
1355 (constrain_class_visibility): Don't warn in system headers.
1356 Don't warn about pointer fields.
1358 2006-07-20 Mike Stump <mrs@apple.com>
1360 * decl2.c (determine_visibility_from_class): Don't use hidden
1361 visibility for explicit instantiations.
1363 2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1366 * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
1367 valid decls. Cleanup.
1370 * semantics.c (check_template_template_default_arg): Simplify
1373 2006-07-20 Jason Merrill <jason@redhat.com>
1376 * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
1377 const variables with implicit internal linkage.
1378 * tree.c (decl_linkage): Only return lk_external if it's set.
1381 * decl2.c (constrain_visibility): Ignore the anonymous namespace
1382 for extern "C" decls.
1383 (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
1385 * decl2.c (constrain_visibility): Remove specified and reason
1386 parameters. Don't touch decls that already have explicit visibility.
1387 (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
1389 (determine_visibility_from_class): Reverse sense of
1390 DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
1391 (constrain_class_visibility): Only complain about member visibility
1392 if the member type is another class. Don't change visibility of the
1395 2006-07-19 Mark Mitchell <mark@codesourcery.com>
1398 * decl.c (layout_var_decl): Don't call push_local_name here.
1399 (initialize_artificial_var): Assert artificiality.
1400 (cp_finish_decl): Call push_local_name here.
1402 2006-07-18 Mark Mitchell <mark@codesourcery.com>
1405 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
1408 2006-07-18 Mark Mitchell <mark@codesourcery.com>
1411 * semantics.c (check_accessibility_of_qualified_id): Robustify.
1414 * pt.c (tsubst_decl): Handling substitutions into a static data
1415 member from within the scope of the tempalte itself.
1417 2006-07-18 Lee Millward <lee.millward@gmail.com>
1420 * method.c (locate_copy): Check for non_reference
1421 returning error_mark_node.
1424 * decl.c (duplicate_decls): Return error_mark_node
1425 on ambiguous declaration.
1427 2006-07-18 Steve Ellcey <sje@cup.hp.com>
1430 * search.c (adjust_result_of_qualified_name_lookup): Change
1431 assert to part of if statement.
1433 2006-07-17 Steve Ellcey <sje@cup.hp.com>
1436 * decl.c (reshape_init_class): Return error_mark_node on error.
1438 2006-07-17 Steve Ellcey <sje@cup.hp.com>
1441 * decl2.c (check_classfn): Return NULL_TREE on error.
1443 2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1446 * name-lookup.c (pushdecl_maybe_friend): Return early on
1448 * except.c (expand_start_catch_block): Use error_mark_node instead
1449 of NULL_TREE for invalid decls.
1450 * parser.c (cp_parser_exception_declaration): Return error_mark_node
1451 on invalid catch parameter. Simplify.
1453 2006-07-16 Jakub Jelinek <jakub@redhat.com>
1456 * decl2.c (note_vague_linkage_var): Removed.
1457 (finish_static_data_member_decl): Add decl to pending_statics vector
1458 directly. Do it even for non-public decls.
1460 2006-07-15 Lee Millward <lee.millward@gmail.com>
1463 * decl2.c (acceptable_java_type): Robustify. Use
1464 proper Boolean return type instead of return 1.
1465 (check_java_method): Don't issue error about
1466 type not being an acceptable Java parameter if
1467 it's error_mark_node.
1470 * parser.c (cp_parser_elaborated_type_specifier):
1471 Return early if an invalid type was detected.
1473 2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1476 * parser.c (cp_parser_check_decl_spec): New function.
1477 (cp_parser_decl_specifier_seq): Factor out check for repeated
1478 decl-specifiers into cp_parser_check_decl_spec. Use it.
1479 (cp_parser_type_specifier_seq): Use it.
1482 * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
1486 * decl2.c (cplus_decl_attributes): Check for invalid decls.
1488 2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1491 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
1492 * decl2.c (grokfield): Likewise.
1494 2006-07-12 Geoffrey Keating <geoffk@apple.com>
1496 * decl2.c (determine_visibility): Don't change visibility of
1497 function locals because of -fvisibility-inlines-hidden.
1499 2006-07-12 Jason Merrill <jason@redhat.com>
1502 * semantics.c (note_decl_for_pch): Don't premangle templates.
1504 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
1506 * typeck.c (string_conv_p): Remove spurious quotation mark in
1509 2006-07-07 Lee Millward <lee.millward@gmail.com>
1510 Andrew Pinski <pinskia@gmail.com>
1513 * decl.c (define_label): Return error_mark_node on error.
1514 * semantics.c (finish_label_stmt): Don't call
1515 add_stmt for invalid labels.
1517 2006-07-06 Jason Merrill <jason@redhat.com>
1520 * decl2.c (finish_static_data_member_decl): Don't assert
1523 2006-07-05 Jason Merrill <jason@redhat.com>
1527 * class.c (check_field_decls): Check TYPE_PACKED after
1528 stripping array types.
1529 (finish_struct_bits): Don't copy TYPE_SIZE here.
1532 * friend.c (is_friend): Fix DR 45 implementation.
1534 2006-07-05 Richard Guenther <rguenther@suse.de>
1535 Andrew Pinski <pinskia@gcc.gnu.org>
1538 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1539 top level qualifiers for pointer type comparisons.
1541 2006-07-01 Jason Merrill <jason@redhat.com>
1544 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
1547 2006-06-30 Jason Merrill <jason@redhat.com>
1550 * call.c (build_new_method_call): Force evaluation of the
1551 instance pointer, not the object.
1553 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
1555 * decl2.c: Fix a comment typo.
1557 2006-06-30 Jason Merrill <jason@redhat.com>
1560 * decl2.c (grokfield): Only try to treat the decl as an access
1561 declaration if the scope is a class.
1563 2006-06-29 Jason Merrill <jason@redhat.com>
1570 * decl2.c (determine_visibility): Overhaul.
1571 (determine_visibility_from_class): Likewise.
1572 (min_vis_r, type_visibility, constrain_visibility): New fns.
1573 (constrain_visibility_for_template): Likewise.
1574 (constrain_class_visibility): Likewise.
1575 * decl.c (cp_finish_decl): Call determine_visibility for function
1577 * name-lookup.c (pushtag): Call determine_visibility.
1578 * decl.c (duplicate_decls): Don't copy visibility from template to
1580 * pt.c (check_explicit_specialization): Likewise.
1581 (lookup_template_class, tsubst_decl): Call determine_visibility.
1582 * class.c (finish_struct_1): Call constrain_class_visibility.
1587 * parser.c (cp_parser_explicit_instantiation): Pass the attributes
1589 (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
1590 (cp_parser_enum_specifier): Likewise.
1591 (cp_parser_elaborated_type_specifier): Apply attributes if this
1592 declares only the class.
1593 (cp_parser_class_specifier): Apply leading attributes immediately.
1594 * semantics.c (begin_class_definition): Add attributes parameter,
1595 apply them to the type.
1599 * tree.c (decl_anon_ns_mem_p): New function.
1600 * cp-tree.h: Declare it.
1601 * decl2.c (determine_visibility): Make anonymous namespace
1603 (min_vis_r, constrain_visibility): Likewise.
1604 * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
1606 * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
1608 * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
1609 on anonymous namespaces.
1611 2006-06-28 Jason Merrill <jason@redhat.com>
1614 * pt.c (convert_template_argument): Pass all template arguments
1615 on to coerce_template_template_parms.
1617 2006-06-25 Lee Millward <lee.millward@gmail.com>
1618 Mark Mitchell <mark@codesuorcery.com>
1621 * decl2.c (grokbitfied): Remove check for grokdeclarator
1622 returning NULL_TREE, instead check for error_mark_node
1623 to indicate failure.
1624 * decl.c (grokdeclarator): Adjust block comment.
1626 2006-06-25 Lee Millward <lee.millward@gmail.com>
1629 * mangle.c (mangle_conv_op_name_for_type): Check for
1631 * name-lookup.c (push_class_level_binding): Robustify.
1632 (do_class_using_decl): Return early if name is error_mark_node.
1634 2006-06-23 Steve Ellcey <sje@cup.hp.com>
1637 * name-lookup.c (pushtag): Return if we have error_mark_node.
1639 2006-06-23 Steve Ellcey <sje@cup.hp.com>
1642 * typeck2.c (process_init_constructor_array): Set ce->value on errors.
1644 2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1647 * parser.c (cp_parser_attribute_list): Skip attributes with invalid
1648 arguments. Fix comment.
1651 * init.c (build_new_1): Handle error_mark_nodes returned by
1652 build_java_class_ref.
1653 (build_java_class_ref): Do not abort compilation, but return
1654 error_mark_node. Improve error message. Fix indentation.
1656 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
1659 * decl.c (start_decl): Check that dllimports are not initialized.
1661 2006-06-22 Lee Millward <lee.millward@gmail.com>
1664 * typeck2.c (build_m_component_ref): Use error_operand_p.
1667 * decl.c (grokdeclarator): Return error_mark_node on
1668 invalid uses of the scope resolution operator.
1670 2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1673 * pt.c (determine_specialization): Check for invalid decls.
1676 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
1680 * rtti.c (get_tinfo_decl_dynamic): Robustify.
1682 2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1685 * init.c (push_base_cleanups): Skip members with invalid types.
1686 * typeck.c (build_class_member_access_expr): Robustify.
1688 2006-06-19 Mark Mitchell <mark@codesourcery.com>
1690 * pt.c (instantiate_template): Fix typo in comment.
1692 2006-06-19 Richard Guenther <rguenther@suse.de>
1694 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
1695 power-of-two token vector size.
1697 2006-06-16 Mark Mitchell <mark@codesourcery.com>
1700 * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
1704 * call.c (standard_conversion): Strip cv-qualifiers from bitfield
1708 * decl.c (have_extern_spec): Remove.
1709 (start_decl): Do not check have_extern_spec.
1710 (start_function): Likewise.
1711 * cp-tree.h (have_extern_spec): Remove.
1712 * parser.c (cp_parser_linkage_specification): Don't set
1714 (cp_parser_init_declarator): Likewise.
1715 (cp_parser_parameter_declaration): Do not treat parameters as
1716 within the scope of an unbraced linkage specification.
1718 2006-06-15 Mark Mitchell <mark@codesourcery.com>
1721 * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
1723 * pt.c (unify): Use it.
1726 * call.c (build_conditional_expr): Robustify.
1729 * pt.c (instantiate_template): Set processing_template_decl to
1730 zero while performing substitutions.
1732 2006-06-14 Mark Mitchell <mark@codesourcery.com>
1735 * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
1736 identify destructors.
1737 (cp_parser_nested_name_specifier_opt): Remove invalid
1739 (cp_parser_template_id): Refine heuristic for determining whether
1740 we are entering a scope.
1743 * parser.c (cp_parser_declarator): Robustify.
1746 * pt.c (tsubst_expr): Use finish_omp_atomic.
1747 (value_dependent_expression_p): All CALL_EXPRs are dependent.
1748 * semantics.c (finish_omp_atomic): Rework to use standard
1749 paradigms for handling non-dependent expressions.
1751 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1753 * typeck.c (build_modify_expr): Tidy diagnostic message.
1755 2006-06-14 Mark Mitchell <mark@codesourcery.com>
1758 * typeck.c (build_modify_expr): Disallow array assignment.
1760 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1762 * cp-tree.def: Fix typo.
1764 2006-06-13 Mark Mitchell <mark@codesourcery.com>
1767 * decl.c (decls_match): Allow an extern "C" variable declarations
1768 from different namespaces to match.
1769 (duplicate_decls): Disallow redeclaring a variable with a
1770 different linkage specification.
1772 2006-06-13 Jakub Jelinek <jakub@redhat.com>
1775 * cp-tree.h (cxx_int_tree_map): New struct.
1776 (struct language_function): Add extern_decl_map field.
1777 * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
1778 to cp_function_chain->extern_decl_map hash table instead of
1779 copying over DECL_UID.
1780 * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
1782 (cp_genericize_r): Remap DECL_EXTERN local decls using
1783 cp_function_chain->extern_decl_map hash table.
1784 * decl.c (finish_function): Clear extern_decl_map.
1786 2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1789 * semantics.c (finish_offsetof): Handle pseudo-destructors.
1792 * name-lookup.c (lookup_qualified_name): Always return error_mark_node
1796 * decl2.c (finish_anon_union): Return early if build_anon_union_vars
1799 2006-06-12 Roger Sayle <roger@eyesopen.com>
1802 * typeck2.c (build_functional_cast): Use cp_convert to construct
1803 non-aggregate initializers instead of the user-level build_c_cast.
1805 2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1808 * cp-tree.h (finish_offsetof): Add prototype.
1809 * semantics.c (finish_offsetof): New function.
1810 * parser.c (cp_parser_builtin_offsetof): Call it instead of
1812 * pt.c (tsubst_copy_and_build): Likewise.
1814 2006-06-06 Mark Mitchell <mark@codesourcery.com>
1817 * call.c (standard_conversion): Require that the derived type be
1818 complete when performing a derived-to-base conversion.
1820 2006-06-04 Mark Mitchell <mark@codesourcery.com>
1823 * decl.c (cp_finish_decl): Process initializers for static data
1824 members with non-dependent initializers, even in templates.
1827 * decl.c (maybe_deduce_size_from_array_init): If the declaration
1828 is erroneous, give it an erroneous type.
1829 (layout_var_decl): If the type is erroneous, give up.
1830 (check_initializer): Likewise.
1833 * cp-tree.h (TYPE_OBJ_P): New macro.
1834 (TYPE_PTROB_P): Use it.
1835 (TYPE_REF_OBJ_P): Likewise.
1836 * semantics.c (finish_compound_literal): Do not permit compound
1837 literals of non-object types.
1840 * typeck.c (original_type): Robustify.
1842 2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1845 * init.c (constant_value_1): Return decl instead of error_mark_node
1846 for invalid initializers.
1848 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
1851 * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
1852 on operand of the COND_EXPR for the null pointer check.
1854 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
1857 * typeck.c (build_unary_op): Mark the function as being used.
1859 2006-06-01 Alexandre Oliva <aoliva@redhat.com>
1862 * parser.c (cp_parser_initial_pragma): Read one more token for
1863 caller after reading PCH file in.
1865 2006-05-31 Mark Mitchell <mark@codesourcery.com>
1868 * call.c (perform_implicit_conversion): Do not actually perform
1869 conversions in templates.
1872 * call.c (resolve_args): Check for invalid uses of bound
1873 non-static member functions.
1874 * init.c (build_offset_ref): Return error_mark_node for errors.
1877 * decl.c (reshape_init): Robustify.
1878 (reshape_init_array_1): Likewise.
1880 2006-05-30 Mark Mitchell <mark@codesourcery.com>
1883 * parser.c (cp_parser_decl_specifier_seq): Issue errors about
1884 "friend" specifiers that do not appear in class scopes.
1887 * class.c (check_bitfield_decl): Ensure that all bitfields have
1890 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
1892 * pt.c (convert_nontype_argument): Fix a typo in an error
1895 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
1897 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
1898 spelling conventions.
1900 2006-05-24 Mark Mitchell <mark@codesourcery.com>
1903 * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
1904 error_mark_node to indicate an initialization is OK.
1905 (start_decl): Likewise. Adjust call to start_decl_1.
1906 (start_decl_1): Add initialized parameter. Simplify.
1907 * except.c (initialize_handler_parm): Adjust call to
1909 (expand_start_catch_block): Let cp_finish_decl initialize catch
1911 * cp-tree.h (start_decl_1): Adjust prototype.
1912 * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
1913 (instantiate_decl): Let cp_finish_decl handle initialization.
1914 * semantics.c (finish_compound_literal): Create a temporary
1915 variable for the literal.
1916 * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
1918 * decl2.c (finish_static_data_member_decl): Don't set
1920 (grokfield): Do not try to initialize functions.
1922 2006-05-23 Mark Mitchell <mark@codesourcery.com>
1925 * pt.c (determine_specialization): Disallow partial
1926 specializations of templates.
1928 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1931 * typeck.c (build_modify_expr): Test arguments for error_operand_p.
1933 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
1935 2006-05-21 Mark Mitchell <mark@codesourcery.com>
1938 * cp-tree.h (cp_save_expr): New function.
1939 * init.c (build_new): Correct logic for zero-element array
1940 warning. Use cp_save_expr.
1941 * tree.c (cp_save_expr): New function.
1943 2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1946 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
1949 2006-05-19 Mike Stump <mrs@apple.com>
1951 * typeck.c (default_conversion): Remove static.
1953 2006-05-19 Mark Mitchell <mark@codesourcery.com>
1956 * cp-tree.h (begin_function_try_block): Change prototype.
1957 (finish_function_handler_sequence): Likewise.
1958 * parser.c (cp_parser_function_try_block): Adjust calls.
1959 * pt.c (tsubst_expr): Adjust calls.
1960 * semantics.c (begin_function_try_block): Create an artificial
1962 (finish_function_handler_sequence): Close it.
1964 2006-05-18 Mark Mitchell <mark@codesourcery.com>
1968 * typeck.c (decay_conversion): Convert bitfields to their declared
1969 types here. Improve documentation. Avoid use of cp_convert.
1970 (default_conversion): Make it static. Perform integral promotions
1971 before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
1973 * init.c (build_init): Remove.
1974 (expand_default_init): Do not call rvalue.
1975 * call.c (null_ptr_cst_p): Robustify.
1976 (build_conditional_expr): Tidy.
1977 * except.c (build_throw): Do not perform lvalue-to-rvalue
1978 conversion on operand before initializing temporary.
1979 * tree.c (convert.h): Include it.
1980 (convert_bitfield_to_declared_type): Use convert_to_integer, not
1982 (rvalue): Don't convert bitfields to their declared type here.
1983 * cp-tree.h (build_init): Remove.
1984 (default_conversion): Likewise.
1985 * typeck2.c (build_m_component_ref): Do not perform
1986 lvalue-to-rvalue, function-to-pointer, or array-to-pointer
1987 conversions here. Correct error message.
1989 2006-05-17 Mark Mitchell <mark@codesourcery.com>
1992 * decl2.c (check_member_template): Remove checks for virtual
1994 * parser.c (cp_parser_function_specifier_opt): Complain about
1996 (cp_parser_pure_specifier): Likewise.
1999 * parser.c (cp_parser_set_storage_class): Check for
2000 invalid uses of storage classes on unbraced linkage
2002 (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
2003 to cp_parser_set_storage_class.
2005 2006-05-17 Jakub Jelinek <jakub@redhat.com>
2008 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
2012 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
2013 on combined parallel workshare constructs.
2014 * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
2016 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
2019 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
2021 2006-05-15 Mark Mitchell <mark@codesourcery.com>
2024 * cp-tree.h (perform_access_checks): New function.
2025 * semantics.c (perform_access_checks): New function.
2026 (perform_deferred_access_checks): Use it.
2027 * parser.c (cp_parser_simple_declaration): Adjust call to
2028 cp_parser_init_declarator.
2029 (cp_parser_type_parameter): Do not defer checks in default
2031 (cp_parser_explicit_specialization): Adjust call to
2032 cp_parser_single_declaration.
2033 (cp_parser_init_declarator): Perform template-parameter access
2035 (cp_parser_parameter_declaration): Do not defer checks for
2036 template parameter default arguments.
2037 (cp_parser_template_declaration_after_export): Gather access
2038 checks for template parameters, and pass them to
2039 cp_parser_single_declaration.
2040 (cp_parser_template_parameter_access_checks): New function.
2041 (cp_parser_single_declaration): Add checks parameter.
2044 * call.c (convert_like_real): Convert bitfields to their declared
2045 types when forming an rvalue.
2046 * tree.c (convert_bitfield_to_declared_type): New function.
2048 * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
2050 2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2053 * pt.c (any_dependent_template_arguments_p): Return early on invalid
2057 * search.c (adjust_result_of_qualified_name_lookup): Skip on
2058 invalid context_class.
2061 * pt.c (do_decl_instantiation): Return early on invalid decl.
2064 * pt.c (push_template_decl_real): Return error_mark_node instead
2068 * pt.c (tsubst_friend_class): Return early on invalid friend
2071 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2073 * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
2074 (cp/decl2.o): Likewise.
2075 (cp/typeck.o): Likewise.
2076 (cp/cvt.o): Likewise.
2077 (cp/parser.o): Likewise.
2078 (cp/call.o): Replace target.h with $(TARGET_H).
2080 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
2082 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2083 COMPONENT_REF alone.
2085 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2088 * decl.c (copy_fn_p): Return early on non-member functions.
2090 2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2093 * decl2.c (build_memfn_type): Skip invalid functions and class types.
2095 2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2098 * pt.c (convert_nontype_argument): Return early on invalid arguments.
2100 * pt.c (process_template_parm): Remove superfluous temporary.
2103 * pt.c (process_template_parm): Handle erroneous non-type parameters.
2106 * typeck.c (convert_for_initialization): Skip erroneous types.
2109 * typeck.c (convert_arguments): Return early on args with
2112 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
2115 * typeck.c (build_static_cast_1): Save casted types in used types
2117 (build_reinterpret_cast_1): Same.
2118 * rtti.c (build_dynamic_cast_1): Same.
2120 2006-05-04 Jakub Jelinek <jakub@redhat.com>
2123 * parser.c (cp_parser_omp_for_loop): Only call
2124 cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
2127 2006-05-02 Mark Mitchell <mark@codesourcery.com>
2130 * decl.c (grokdeclarator): Robustify checks for defining members
2131 of incomplete types.
2134 * class.c (add_method): Call grok_special_member_properties.
2135 * decl.c (grokdeclarator): Don't call it here.
2136 (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
2137 assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
2139 (start_method): Don't call grok_special_member_properties.
2140 * method.c (implicitly_declare_fn): Likewise.
2141 * pt.c (instantiate_class_template): Likewise.
2142 * decl2.c (grokfield): Likewise.
2144 2006-05-02 Jakub Jelinek <jakub@redhat.com>
2147 * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
2148 * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
2149 * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
2151 2006-04-30 Mark Mitchell <mark@codesourcery.com>
2154 * pt.c (tsubst_default_argument): Increment function_depth around
2155 call to tsubst_expr.
2156 * parser.c (cp_parser_parameter_declaration): Likewise.
2157 * decl2.c (mark_used): Tidy.
2159 2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2162 * decl.c (grok_op_properties): Skip operators with invalid args
2163 when checking for class-type or enum-type args.
2165 2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2168 * decl.c (copy_fn_p): Skip functions with invalid first arg.
2170 2006-04-27 Mark Mitchell <mark@codesourcery.com>
2173 * tree.c (rvalue): Convert bitfields to their declared types.
2176 * typeck2.c (cxx_incomplete_type_diagnostic): Handle
2179 2006-04-24 Mark Mitchell <mark@codesourcery.com>
2182 * typeck.c (decay_conversion): Don't adjust bitfield types.
2183 (perform_integral_promotions): Treat bitfield enums as enums, not
2184 as short integer types.
2185 * tree.c (rvalue): Convert bitfields to their correct types.
2187 2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2190 * class.c (layout_class_type): Skip fields with invalid types.
2192 2006-04-23 Mark Mitchell <mark@codesourcery.com>
2195 * cp-tree.h (build_this_parm): Declare.
2196 (grok_method_quals): Remove.
2197 (build_memfn_type): Declare.
2198 (build_artificial_parm): Declare.
2199 (do_friend): Remove quals parameter.
2200 * decl.c (build_this_parm): New function.
2201 (grokfndecl): Use it. Do not pass quals to grokclassfn.
2202 (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
2203 unnecessary TYPE_DECLs. Correct qualification of member function
2205 * method.c (implicitly_declare_fn): Use build_this_parm.
2206 * friend.c (do_friend): Remove quals parameter.
2207 * decl2.c (grok_method_quals): Remove.
2208 (build_memfn_type): New function.
2209 (build_artificial_parm): Give it external linkage.
2210 (grokclassfn): Remove quals parameter. Do not build "this"
2214 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
2215 * typeck.c (is_bitfield_expr_with_lowered_type): New function.
2216 (decay_conversion): Convert bitfield expressions to the correct
2218 (build_modify_expr): Remove spurious conversions.
2219 * class.c (layout_class_type): Modify the type of bitfields to
2220 indicate a limited range.
2221 * call.c (standard_conversion): Adjust the type of bitfield
2222 expressions used in an rvalue context.
2223 (build_conditional_expr): Likewise.
2225 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
2227 * decl.c: Fix comment typos.
2229 2006-04-21 Eric Christopher <echristo@apple.com>
2231 * decl.c: Fix typo in function name.
2233 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2236 * parser.c (cp_parser_class_name): Check for invalid typenames.
2240 * pt.c (tsubst_friend_function): Return early if
2241 pushdecl_namespace_level fails.
2244 * typeck.c (convert_arguments): Return error_mark_node instead of
2246 * cp-tree.h (error_mark_list): Remove declaration.
2247 * decl.c (error_mark_list): Remove definition.
2248 (cxx_init_decl_processing): Do not initialize error_mark_list.
2251 * rtti.c (build_dynamic_cast_1): Check for invalid conversions
2252 before calling convert_to_reference.
2253 * cvt.c (convert_to_reference): Assert that reftype is a
2256 2006-04-19 Mark Mitchell <mark@codesourcery.com>
2259 * class.c (currently_open_class): Tidy.
2260 * decl.c (grokdeclarator): If we encounter an erroneous
2261 declarator, assume that we have already issued an error message
2262 and return. Return error_mark_node instead of NULL_TREE in more
2263 places. Issue errors about function definitions that do not have
2264 a function declarator. Check for complete types for all function
2266 * cp-tree.h (cp_error_declarator): Remove.
2267 (currently_open_class): Change return type.
2268 * parser.c (cp_parser_id_expression): Add optional_p parameter.
2269 (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
2270 (cp_parser_id_expression): Likewise.
2271 (cp_parser_unqualified_id): If the name is optional, return
2273 (cp_parser_postfix_dot_deref_expression): Adjust calls.
2274 (cp_parser_type_parameter): Likewise.
2275 (cp_parser_unqualified_id): Likewise.
2276 (cp_parser_direct_declarator): Likewise.
2277 (cp_parser_declarator_id): Add optional_p parameter.
2278 (cp_parser_function_definition_from_specifiers_and_declarator):
2279 Assume that start_function indicates failure only if it has issued
2281 (cp_parser_omp_var_list_no_open): Adjust calls.
2283 2006-04-17 Janis Johnson <janis187@us.ibm.com>
2285 PR c++/26114, c++/26115
2286 * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
2287 * class.c (check_field_decls): Ditto.
2289 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2291 * init.c (build_offset_ref): Remove superfluous temporary.
2293 2006-04-16 Mark Mitchell <mark@codesourcery.com>
2296 * typeck.c (finish_class_member_access_expr): Robustify
2298 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
2300 * Make-lang.in (cp/pt.o): Depend on vecprim.h.
2301 * pt.c: Include vecprim.h.
2302 (inline_parm_levels): Change the type to VEC(int,heap) *.
2303 (inline_parm_levels_used): Remove.
2304 (maybe_begin_member_template_processing,
2305 maybe_end_member_template_processing): Use VEC instead of
2308 * cp/call.c: Fix comment typos.
2310 2006-04-12 Mark Mitchell <mark@codesourcery.com>
2312 * parser.c (cp_parser_init_declarator): Initialize local variables
2315 2006-04-12 Roger Sayle <roger@eyesopen.com>
2317 * parser.c (cp_parser_init_declarator): Initialise
2318 is_parenthesized_init to false to avoid compiler warning.
2320 2006-04-11 Mark Mitchell <mark@codesourcery.com>
2322 * cp-tree.h (build_operator_new_call): Adjust prototype.
2323 (build_new_method_call): Likewise.
2324 (build_op_delete_call): Likewise.
2325 * init.c (build_raw_new_expr): New function.
2326 (build_new_1): Pass information as parameters, rather than
2327 bundling it into a NEW_EXPR.
2328 (build_new): Adjust accordingly.
2329 (build_vec_delete_1): Adjust for changes to build_op_delete_call.
2330 (build_delete): Likewise.
2331 * decl.c (finish_destructor_body): Likewise.
2332 * call.c (build_operator_new_call): Return the allocation function
2334 (build_op_delete_call): Take allocation function as parameter.
2335 (build_special_member_call): Adjust call to build_new_method_call.
2336 (build_new_method_call): Return function called.
2337 * pt.c (tsubst_copy_and_build): Adjust call to
2338 build_new_method_call.
2339 * semantics.c (finish_call_expr): Likewise.
2340 * parser.c (cp_parser_postfix_expression): Likewise.
2341 * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
2342 "incomplete", not "undefined", types.
2345 * decl.c (grokdeclarator): Remove namespace-handling code for
2346 pointers-to-members.
2347 * parser.c (cp_parser_ptr_operator): Check for qualified names
2351 * parser.c (cp_parser_init_declarator): Adjust logic for deciding
2352 whether or not to look for a pure-specifier.
2353 (cp_parser_member_declaration): Likewise.
2355 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2357 * decl2.c, pt.c, semantics.c: Fix comment typos.
2359 2006-04-06 Roger Sayle <roger@eyesopen.com>
2361 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
2363 2006-04-05 Jason Merrill <jason@redhat.com>
2365 * name-lookup.c (push_namespace_with_attribs): Temporarily disable
2366 default hidden visibility for anonymous namespace.
2368 2006-03-29 Roger Sayle <roger@eyesopen.com>
2371 * init.c (build_vec_delete_1): Convert BASE pointer's type to
2372 the base pointer type to avoid a type mismatch in the EQ_EXPR.
2374 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2376 * search.c (maybe_suppress_debug_info): If
2377 flag_emit_class_debug_always then don't suppress.
2379 2006-03-22 Jason Merrill <jason@redhat.com>
2381 * name-lookup.c (push_namespace_with_attribs): Only apply hidden
2382 visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
2384 2006-03-21 Jakub Jelinek <jakub@redhat.com>
2387 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
2389 2006-03-21 Jason Merrill <jason@redhat.com>
2392 * parser.c (cp_parser_declaration): Support attributes on
2393 anonymous namespaces.
2394 * name-lookup.c (push_namespace_with_attribs): Anonymous
2395 namespaces default to hidden visibility.
2397 2006-03-20 Jason Merrill <jason@redhat.com>
2399 PR c++/21764, c++/19238
2400 * decl.c (cp_finish_decl): Call determine_visibility later.
2401 (start_preparsed_function): Likewise.
2402 * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
2403 (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
2404 * name-lookup.h (struct cp_binding_level): Add has_visibility
2406 * name-lookup.c: Include c-pragma.h.
2407 (push_namespace_with_attribs): Split out from push_namespace.
2408 Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
2409 (leave_scope): Pop visibility if appropriate.
2410 * decl2.c (determine_visibility_from_class): Split out from...
2411 (determine_visibility): ...here. Handle function scope and
2413 (import_export_decl): Move visibility handling to
2414 determine_visibility_from_class.
2415 * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
2416 attributes on namespace declarations.
2418 2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2421 * decl.c (grokdeclarator): Do not accept long long double.
2422 Reorganize checks for invalid (combinations of) type modifiers.
2423 Quote modifiers in messages.
2425 2006-03-09 Jason Merrill <jason@redhat.com>
2427 PR c++/16387, c++/16389
2428 * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
2429 (cxx_sizeof_or_alignof_expr): Split out from here.
2431 2006-03-09 Diego Novillo <dnovillo@redhat.com>
2433 Merge from gomp-20050608-branch
2435 2006-02-02 Diego Novillo <dnovillo@redhat.com>
2437 * decl.c (pop_labels_1): Use appropriate pointer casting.
2438 (poplevel_named_label_1): Likewise.
2439 (named_label_entry_hash): Likewise.
2440 (named_label_entry_eq): Likewise.
2441 (check_goto): Likewise.
2442 (define_label): Likewise.
2444 2006-01-26 Diego Novillo <dnovillo@redhat.com>
2446 * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
2448 * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
2449 instead of TREE_CODE/TREE_OPERAND.
2450 * semantics.c: Likewise.
2451 * parser.c: Likewise.
2453 2005-11-10 Diego Novillo <dnovillo@redhat.com>
2455 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
2456 target does not support TLS.
2458 2005-11-09 Jakub Jelinek <jakub@redhat.com>
2460 * decl.c (redeclaration_error_message): Don't error about
2461 DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
2464 2005-11-08 Jakub Jelinek <jakub@redhat.com>
2467 * semantics.c (finish_omp_barrier, finish_omp_flush): New
2469 * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
2470 (cp_parser_omp_flush): Call finish_omp_flush.
2471 * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
2475 * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
2477 2005-11-03 Jakub Jelinek <jakub@redhat.com>
2479 * semantics.c (finish_omp_threadprivate): Error on class-scope
2482 2005-11-02 Jakub Jelinek <jakub@redhat.com>
2484 * parser.c (cp_parser_omp_all_clauses): If some clause
2485 type is not allowed, don't remove just one of the
2486 clauses, but all clauses added in that loop round.
2488 * semantics.c (finish_omp_clauses): Fix function
2489 comment. Don't handle non-const or mutable specially,
2490 as const and not mutable is predetermined shared and
2491 that leads to double error. Don't ICE if copyin var is
2495 * parser.c (cp_parser_pragma): Diagnose
2496 PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
2499 * semantics.c (finish_omp_threadprivate): Error if V
2500 is automatic variable or has incomplete type.
2502 2005-11-01 Diego Novillo <dnovillo@redhat.com>
2504 * parser.c (cp_parser_omp_all_clauses): Use
2505 OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
2507 2005-11-01 Diego Novillo <dnovillo@redhat.com>
2509 * parser.c (cp_parser_omp_all_clauses): When emitting an
2510 error message, remove the invalid clause from the list.
2512 2005-10-31 Diego Novillo <dnovillo@redhat.com>
2514 * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
2515 combined parallel+workshare directives.
2517 2005-10-31 Richard Henderson <rth@redhat.com>
2519 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
2520 Use cxx_omp_clause_dtor.
2521 * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
2522 (cxx_omp_clause_dtor): New.
2523 * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
2524 (cxx_omp_clause_default_ctor): Use it.
2525 (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
2527 (cxx_omp_clause_dtor): New.
2528 * semantics.c (finish_omp_clauses): Rewrite cdtor
2529 checking to fill in CP_OMP_CLAUSE_INFO. Don't
2530 specialcase LASTPRIVATE for removal.
2531 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
2532 cxx_omp_clause_assign_op): Move to cp-gimplify.c.
2534 2005-10-28 Jakub Jelinek <jakub@redhat.com>
2536 * semantics.c (finish_omp_threadprivate): If
2537 DECL_RTL_SET_P, call make_decl_rtl again so that
2538 encode_section_info can update SYMBOL_REF's flags.
2540 2005-10-26 Jakub Jelinek <jakub@redhat.com>
2542 * semantics.c (finish_omp_for): Don't segfault if COND
2543 or INCR is NULL. If not calling c_finish_omp_for
2544 right away and one of COND and INCR is NULL, issue
2545 error and don't expand anything.
2548 * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
2549 * semantics.c (finish_omp_for): Likewise. Set
2550 OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
2551 into the current statement list if not processing
2552 template decl or pass it to c_finish_omp_for.
2554 * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
2555 into PRE_BODY statement list. Pass it to finish_omp_for.
2556 * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
2557 OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
2558 finish_omp_for. Put all the statements into sk_omp
2561 2005-10-25 Jakub Jelinek <jakub@redhat.com>
2564 * parser.c (struct cp_parser): Rename in_iteration_statement
2565 field to in_statement.
2566 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
2567 (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
2568 (cp_parser_new, cp_parser_begin_omp_structured_block,
2569 cp_parser_end_omp_structured_block,
2570 cp_parser_omp_for_loop): Adjust for
2571 in_iteration_statement renaming.
2572 (cp_parser_selection_statement): Save
2573 parser->in_iteration, or it temporarily with
2574 IN_SWITCH_STMT for the
2575 cp_parser_implicitly_scoped_statement call.
2576 (cp_parser_iteration_statement): Adjust for
2577 in_iteration_statement renaming. Use
2578 IN_ITERATION_STMT rather than true.
2579 (cp_parser_jump_statement): Adjust for
2580 in_iteration_statement renaming and new values. Don't
2581 error on break in a switch statement within OMP_FOR or
2582 OpenMP structured block.
2585 * parser.c (cp_parser_cache_group): Don't stop if next
2586 token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
2587 well. If current token is CPP_PRAGMA, consume
2588 everything until CPP_PRAGMA_EOL inclusive.
2590 2005-10-24 Jakub Jelinek <jakub@redhat.com>
2593 * semantics.c (finish_omp_for): Handle MODOP_EXPR in
2594 addition to MODIFY_EXPR.
2596 2005-10-23 Richard Henderson <rth@redhat.com>
2598 * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
2600 (begin_bc_block, finish_bc_block): Use it.
2601 (push_context, pop_context): Remove.
2602 (cp_genericize): Don't use them. Assert bc_label is null.
2603 * semantics.c (finish_omp_clauses): Create a fake data
2604 element of TYPE for probing ctors.
2606 2005-10-23 Richard Henderson <rth@redhat.com>
2608 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
2609 (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
2610 (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
2611 (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
2612 * semantics.c (finish_omp_clauses): Look through
2613 arrays when looking up special member calls. Also
2614 remove FIRSTPRIVATE when LASTPRIVATE fails.
2615 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
2616 (cxx_omp_clause_assign_op): New.
2617 * cp-tree.h: Declare them.
2619 2005-10-21 Richard Henderson <rth@redhat.com>
2621 * decl.c (check_previous_goto_1): Return false if error.
2622 (check_switch_goto): Likewise.
2623 (finish_case_label): Don't emit the case label on error.
2624 * parser.c (struct cp_parser): Revert
2625 in_switch_statement_p changes.
2626 (cp_parser_labeled_statement,
2627 cp_parser_selection_statement): Likewise.
2628 (cp_parser_begin_omp_structured_block): Don't save...
2629 (cp_parser_end_omp_structured_block): or restore
2630 in_switch_statement_p.
2632 2005-10-21 Richard Henderson <rth@redhat.com>
2634 * semantics.c (finish_omp_threadprivate): Set
2635 decl_flags.u2sel when necessary.
2637 2005-10-21 Richard Henderson <rth@redhat.com>
2639 * decl.c (poplevel_named_label_1): Restore creation of the
2641 (decl_jump_unsafe): Check for error_mark_node types.
2642 (check_goto): Don't check cdtor_label. Don't use identify_goto.
2643 * semantics.c (finish_return_stmt): Do check_omp_return before
2644 converting to cdtor_label goto.
2646 2005-10-21 Richard Henderson <rth@redhat.com>
2649 * decl.c (check_omp_return): Return false on error.
2650 * cp-tree.h (check_omp_return): Update decl.
2651 * semantics.c (finish_return_stmt): Avoid adding
2654 2005-10-21 Richard Henderson <rth@redhat.com>
2656 * cp-tree.h (struct language_function): Remove
2658 Change x_named_labels to a hashtable.
2659 (check_omp_return): Declare.
2660 * decl.c (struct named_label_use_entry): Rename from
2661 named_label_use_list. Remove label_decl.
2662 (struct named_label_entry): Rename from
2663 named_label_list. Remove old_value and next. Change
2664 in_try_scope and in_catch_scope to bool. Add
2666 (pop_labels_1): New.
2667 (pop_labels): Use it.
2668 (pop_local_label, poplevel_named_label_1): New.
2669 (poplevel): Use them.
2670 (named_label_entry_hash, named_label_entry_eq): New.
2671 (make_label_decl): Create named_labels. Move label
2672 creation bits from lookup_label.
2673 (declare_local_label): Tidy.
2674 (identify_goto): Split out from ...
2675 (check_previous_goto_1): Add exited_omp argument.
2678 (use_label): Merge into...
2679 (check_goto): ... here. Handle omp scopes.
2680 (check_omp_return): New.
2681 (check_previous_gotos): Merge into...
2682 (define_label): ... here.
2683 (save_function_data): Remove x_named_label_uses reference.
2684 (finish_function): Likewise.
2685 * name-lookup.h (sk_omp): New.
2686 * name-lookup.c (begin_scope): Handle it.
2687 * parser.c (cp_parser_omp_for): Don't create extra
2690 (cp_parser_omp_sections): Likewise.
2691 * semantics.c (finish_return_stmt): Call check_omp_return.
2692 (begin_omp_structured_block): Use sk_omp.
2693 (finish_omp_structured_block): Use do_poplevel. Don't build a
2694 MUST_NOT_THROW expression here.
2695 (begin_omp_parallel, finish_omp_parallel): Don't create extra
2696 compound statements.
2698 2005-10-21 Diego Novillo <dnovillo@redhat.com>
2701 * cp/cp-tree.h (struct lang_decl_flags): Add field
2703 (CP_DECL_IS_THREADPRIVATE): Define.
2704 * cp/semantics.c (finish_omp_threadprivate): Set. Do
2705 not error out if CP_DECL_IS_THREADPRIVATE is set
2707 * cp/decl.c (duplicate_decls): Merge
2708 CP_DECL_THREADPRIVATE_P.
2710 2005-10-20 Richard Henderson <rth@redhat.com>
2712 * cp-gimplify.c (cp_gimplify_omp_for): New.
2713 (cp_gimplify_expr): Call it.
2714 * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
2715 * parser.c (struct cp_parser): Rename
2716 in_iteration_statement_p to in_iteration_statement and
2717 change to unsigned char. Similarly with
2718 in_switch_statement. Update all users.
2719 (IN_OMP_BLOCK, IN_OMP_FOR): New.
2720 (cp_parser_labeled_statement): Diagnose case labels
2721 binding closer to an openmp block nested than the
2723 (cp_parser_jump_statement): Diagnose break and
2724 continue labels binding closer to an openmp block than
2725 an iteration or switch.
2726 (cp_parser_omp_for_loop): Mark in_iteration_statement
2728 (cp_parser_begin_omp_structured_block): New.
2729 (cp_parser_end_omp_structured_block): New.
2730 (cp_parser_omp_structured_block): Use them.
2731 (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
2732 (cp_parser_omp_parallel): Likewise.
2734 2005-10-20 Richard Henderson <rth@redhat.com>
2736 * semantics.c (begin_omp_structured_block): New.
2737 (finish_omp_structured_block): New.
2738 (begin_omp_parallel, finish_omp_parallel): Use them.
2739 * parser.c (cp_parser_omp_structured_block): Likewise.
2740 (cp_parser_omp_for): Likewise.
2741 (cp_parser_omp_sections_scope): Likewise.
2742 * cp-tree.h: Declare them.
2744 2005-10-20 Richard Henderson <rth@redhat.com>
2746 * parser.c (cp_parser_omp_master): Return the statement.
2747 (cp_parser_omp_ordered): Likewise.
2748 (cp_parser_omp_construct): Set the locus for them.
2750 2005-10-19 Richard Henderson <rth@redhat.com>
2752 * semantics.c (finish_omp_atomic): Revert to
2753 uses_template_parms.
2755 2005-10-19 Richard Henderson <rth@redhat.com>
2757 * semantics.c (finish_omp_clauses): Avoid
2758 DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
2759 stub asserts guaranteed to fail.
2761 2005-10-19 Richard Henderson <rth@redhat.com>
2763 * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
2764 (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
2765 * parser.c (cp_parser_omp_clause_copyin): Remove.
2766 (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
2767 Call finish_omp_clauses.
2768 (cp_parser_omp_clause_if): Don't do error checking here.
2769 (cp_parser_omp_clause_num_threads): Likewise.
2770 (cp_parser_omp_clause_schedule): Likewise.
2771 (cp_parser_omp_atomic): Use finish_omp_atomic.
2772 (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
2773 Don't decompose assignment statment here. Use
2776 * pt.c (tsubst_omp_clauses): New.
2777 (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2778 OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
2779 * semantics.c (finish_omp_clauses): New.
2780 (begin_omp_parallel, finish_omp_parallel): Know Less about the
2781 internals of the stmt_list stack.
2782 (finish_omp_for, finish_omp_atomic): New.
2784 2005-10-18 Jakub Jelinek <jakub@redhat.com>
2786 * semantics.c (cxx_omp_predetermined_sharing): New function.
2787 * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
2789 (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
2791 2005-10-18 Richard Henderson <rth@redhat.com>
2793 * parser.c (cp_parser_omp_single): Use make_node and accessors
2796 2005-10-17 Richard Henderson <rth@redhat.com>
2798 * parser.c (cp_parser_omp_for_loop): Handle declarations.
2800 2005-10-12 Richard Henderson <rth@redhat.com>
2802 * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
2803 * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
2804 (finish_omp_threadprivate): Declare.
2805 * parser.c (struct cp_lexer): Add in_pragma.
2806 (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
2808 (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
2809 (cp_parser_skip_to_end_of_statement): Likewise.
2810 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
2811 (cp_parser_skip_to_closing_brace): Likewise.
2812 (cp_parser_skip_to_pragma_eol): Reset in_pragma.
2813 (cp_parser_require_pragma_eol): New.
2814 (cp_parser_statement): Add in_compound argument;
2816 Restart if a non-statement pragma seen outside a
2818 (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
2819 (cp_parser_declaration_seq_opt): Likewise.
2820 (cp_parser_member_specification_opt): Likewise.
2821 (cp_parser_function_definition_after_decl): Likewise.
2822 (cp_parser_skip_until_found): Likewise.
2823 (cp_parser_cache_group): Likewise.
2824 (enum pragma_omp_clause, cp_parser_omp_clause_name,
2825 check_no_duplicate_clause,
2826 cp_parser_omp_var_list_no_open,
2827 cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
2828 cp_parser_omp_clause_default, cp_parser_omp_clause_if,
2829 cp_parser_omp_clause_nowait,
2830 cp_parser_omp_clause_num_threads,
2831 cp_parser_omp_clause_ordered,
2832 cp_parser_omp_clause_reduction,
2833 cp_parser_omp_clause_schedule,
2834 cp_parser_omp_all_clauses,
2835 cp_parser_omp_structured_block, cp_parser_omp_atomic,
2836 cp_parser_omp_barrier, cp_parser_omp_critical,
2837 cp_parser_omp_flush, cp_parser_omp_for_loop,
2838 cp_parser_omp_for, cp_parser_omp_master,
2839 cp_parser_omp_ordered, cp_parser_omp_sections_scope,
2840 cp_parser_omp_sections, cp_parser_omp_parallel,
2841 cp_parser_omp_single, cp_parser_omp_threadprivate,
2842 cp_parser_omp_construct): New.
2843 (cp_parser_pragma): Handle OpenMP pragmas.
2844 * semantics.c (finish_omp_threadprivate): New.
2845 (begin_omp_parallel, finish_omp_parallel): New.
2847 2005-10-11 Richard Henderson <rth@redhat.com>
2849 * parser.c (struct cp_token): Add pragma_kind.
2850 (eof_token): Initialize it.
2851 (cp_lexer_handle_pragma): Remove.
2852 (cp_parser_initial_pragma): New.
2853 (cp_lexer_new_main): Use it.
2854 (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
2855 (cp_lexer_print_token): Don't handle CPP_PRAGMA.
2856 (cp_parser_skip_to_pragma_eol): New.
2857 (cp_parser_error): Use it.
2860 2005-10-09 Richard Henderson <rth@redhat.com>
2862 * lex.c (parse_strconst_pragma): Update for c_lex name change.
2863 (handle_pragma_java_exceptions): Likewise.
2864 * parser.c (cp_lexer_new_main): Likewise.
2866 2005-10-06 Richard Henderson <rth@redhat.com>
2868 * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
2869 (cp_lexer_handle_pragma): Comment out
2870 cpp_handle_deferred_pragma.
2872 2005-10-01 Richard Henderson <rth@redhat.com>
2874 * name-lookup.c (lookup_name): Remove prefer_type argument.
2875 (lookup_name_prefer_type): New function.
2876 * name-lookup.h (lookup_name_prefer_type): Declare it.
2877 * decl.c (lookup_and_check_tag): Use it.
2878 * pt.c (tsubst_friend_class): Likewise. Update for
2880 (lookup_template_class, tsubst_copy_and_build): Likewise.
2882 2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2885 * tree.c (bot_manip): Don't call mark_used.
2887 2006-03-02 Mike Stump <mrs@apple.com>
2889 * decl2.c (import_export_decl): Remove redundant call to
2890 targetm.cxx.key_method_may_be_inline ().
2892 2006-03-02 Richard Sandiford <richard@codesourcery.com>
2894 * decl.c (start_decl): Use have_global_bss_p when deciding
2895 whether to make the decl common.
2897 2006-03-01 Mike Stump <mrs@apple.com>
2900 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
2902 2006-02-24 Geoffrey Keating <geoffk@apple.com>
2904 * except.c (expand_start_catch_block): Handle
2905 flag_use_cxa_get_exception_ptr.
2907 2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2910 * decl.c (grok_op_properties): Check for ellipsis in arguments of
2913 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2915 * Make-lang.in (C++): Remove.
2916 (.PHONY): Remove C++.
2918 2006-02-18 Mark Mitchell <mark@codesourcery.com>
2921 * cp-tree.h (cp_finish_decl): Adjust declaration.
2922 (grokbitfield): Likewise.
2923 (finish_static_data_member_decl): Likewise.
2924 * init.c (constant_value_1): Ensure processing_template_decl when
2925 folding non-dependent initializers for static data members of
2926 dependent types. Return error_mark_node for erroneous
2928 * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
2929 * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
2930 (cp_finish_decl): Add init_const_expr_p parameter. Set
2931 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2932 (finish_decl): Adjust call to cp_finish_decl.
2933 (compute_array_index_type): Robustify.
2934 (start_method): Use finish_decl, not cp_finish_decl.
2935 * rtti.c (emit_tinfo_decl): Likewise.
2936 * except.c (initialize_handler_parm): Adjust call to
2938 (expand_start_catch_block): Likewise.
2939 * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
2940 * pt.c (instantiate_class_template): Adjust call to
2941 finish_static_data_member_decl.
2942 (tsubst_expr): Use finish_decl, not cp_finish_decl.
2943 (instantiate_decl): Adjust call to cp_finish_decl.
2944 * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
2946 * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
2948 (grokfield): Likewise.
2949 * parser.c (cp_parser_condition): Check for constant initializers.
2950 (cp_parser_init_declarator): Adjust calls to grokfield and
2951 cp_finish_decl. Don't set
2952 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2953 (cp_parser_member_declaration): Likewise.
2954 (cp_parser_objc_class_ivars): Likewise.
2956 2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2958 * call.c (standard_conversion): Return NULL instead of 0.
2959 (build_user_type_conversion_1): Likewise.
2960 (tourney): Likewise.
2961 * decl.c (redeclaration_error_message): Likewise.
2962 * error.c (language_to_string): Likewise.
2964 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2966 * cp-tree.h (warn_hidden): Remove prototype.
2967 * class.c (warn_hidden): Make static.
2969 * cp-tree.h (build_type_conversion): Remove prototype.
2970 * cvt.c (build_type_conversion): Add prototype, make static.
2972 * cp-tree.h (push_tinst_level): Remove prototype.
2973 (pop_tinst_level): Likewise.
2974 * pt.c (push_tinst_level): Add prototype, make static.
2975 (pop_tinst_level): Likewise.
2977 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2979 * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
2980 * typeck.c (unary_complex_lvalue): Likewise.
2982 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2984 * lex.c (parse_strconst_pragma): Return error_mark_node instead of
2985 "(tree)-1" to indicate failure. Simplify.
2986 (handle_pragma_interface): Test for error_mark_node instead of
2988 (handle_pragma_implementation): Likewise.
2990 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2993 * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
2994 decl-specifiers. Remove extra check for duplicate 'friend'.
2995 * decl.c (grokdeclarator): Remove check for duplicate
2996 decl-specifiers. Set longlong together with long_p.
2998 2006-02-12 Jason Merrill <jason@redhat.com>
3001 * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
3002 TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
3004 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3006 * class.c (debug_class): Remove extern.
3007 (debug_thunks): Likewise.
3009 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
3011 * typeck.c (string_conv_p): Don't test for flag_const_strings.
3013 2006-02-08 Jason Merrill <jason@redhat.com>
3016 * cp-gimplify.c (cp_gimplify_expr): Don't call
3017 cp_gimplify_init_expr for MODIFY_EXPRs.
3018 * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
3020 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3023 * decl.c (grokdeclarator): Set dname also for destructor.
3026 * decl.c (grokdeclarator): Clear storage_class together with staticp.
3028 2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
3030 * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
3031 (cp_build_qualified_type): Propogate renaming.
3032 * call.c (convert_like_real): Likewise.
3033 * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
3034 * decl.c (make_typename_type, grokdeclarator): Likewise.
3035 * pt.c (tsubst_friend_function, instantiate_class_template,
3036 tsubst_default_argument, instantiate_decl,
3037 tsubst_initializer_list, tsubst_enum): Likewise.
3038 * semantics.c (finish_template_type): Likewise.
3039 * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
3041 2006-02-07 Dirk Mueller <dmueller@suse.com>
3043 * typeck.c (build_binary_op): Annotate div-by-zero
3044 warnings to make -Wno-div-by-zero have an effect.
3046 2006-02-07 Mark Mitchell <mark@codesourcery.com>
3049 * pt.c (coerce_template_template_parms): Do not templates with
3050 excess default arguments to match template template parameters
3051 with fewer parameters.
3052 (coerce_template_parms): Add use_default_args parameter; use
3053 default arguments only when true.
3054 (lookup_template_class): Adjust call to coerce_template_parms.
3055 (fn_type_unification): Likewise.
3057 (get_bindings): Likewise.
3058 (dependent_type_p): Add assertions.
3060 2006-02-06 Roger Sayle <roger@eyesopen.com>
3062 * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
3063 * rtti.c (typeinfo_in_lib_p): Likewise.
3064 * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
3065 * name-lookup.c (arg_assoc_type): Likewise.
3067 2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3069 * cp-tree.h (tf_warn_or_error): New substituion flag.
3070 (cp_build_qualified_type): Use it.
3071 * call.c (convert_like_real): Likewise.
3072 * cvt.c (cp_convert_to_pointer): Likewise.
3073 (convert_to_reference): Likewise.
3074 * decl.c (make_typename_type): Likewise.
3075 (grokdeclarator): Likewise.
3076 * pt.c (tsubst_friend_function): Likewise.
3077 (tsubst_friend_class): Likewise.
3078 (instantiate_class_template): Likewise.
3079 (tsubst_default_argument): Likewise.
3080 (instantiate_decl): Likewise.
3081 (tsubst_initializer_list): Likewise.
3082 (tsubst_enum): Likewise.
3083 * semantics.c (finish_template_type): Likewise.
3084 * typeck.c (build_ptrmemfunc): Likewise.
3085 (convert_for_assignment): Likewise.
3087 2006-02-03 Lee Millward <lee.millward@gmail.com>
3089 * typeck.c (string_conv_p): Pass appropiate
3090 OPT_Wxxxx values when calling warning().
3091 (build_array_ref, cxx_mark_addressable): Likewise.
3092 (check_return_expr): Likewise.
3094 * init.c (perform_member_init): Likewise.
3095 (sort_mem_initializers, emit_mem_initializers): Likewise.
3097 * class.c (check_field_decls): Likewise.
3098 (warn_about_ambiguous_bases): Likewise.
3100 * decl.c (pop_label, poplevel): Likewise.
3101 (duplicate_decls, grok_op_properties): Likewise.
3102 (start_preparsed_function, finish_function): Likewise.
3104 * name-lookup.c (pushdecl_maybe_friend): Likewise.
3105 (pushdecl_maybe_friend): Likewise.
3107 * parser.c (cp_parser_warn_min_max): Likewise.
3108 (cp_parser_cast_expression): Likewise.
3110 * method.c (lazily_declare_fn): Likewise.
3111 * cvt.c (convert_to_void): Likewise.
3112 * mangle.c (finish_mangling): Likewise.
3113 * cp-gimplify.c (gimplify_expr_stmt): Likewise.
3115 2006-02-03 Mark Mitchell <mark@codesourcery.com>
3117 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
3118 not IDENTIFIER_OPNAME_P.
3120 2006-01-31 Mark Mitchell <mark@codesourcery.com>
3123 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
3125 * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
3127 (instantiate_class_template): Simplify.
3128 (verify_class_unification): Remove.
3129 (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
3130 permit multiple levels of template arguments.
3131 (more_specialized_class): Simplify.
3132 (get_class_bindings): Pass full arguments to unify. Fold
3133 verify_class_unification into this function. Return full
3135 (most_specialized_class): Adjust for changes to
3136 get_class_bindings. Issue errors here for ambiguity. Return the
3137 fully deduced arguments for the most specialized class, in
3138 addition to the partial specialization.
3140 2006-01-31 Ben Elliston <bje@au.ibm.com>
3142 * mangle.c: Comment fix.
3144 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3146 * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
3147 * repo.c (extract_string, afgets): Use cast when converting from
3150 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3152 * call.c (alloc_conversion): Use cast when converting from void *.
3153 (alloc_conversions): Likewise.
3154 (add_candidate): Likewise.
3155 (print_z_candidates): Likewise.
3156 (add_warning): Likewise.
3157 * pt.c (retrieve_local_specialization): Likewise.
3158 (process_partial_specialization): Likewise.
3159 (mangle_class_name_for_template): Likewise.
3160 (tsubst_template_args): Likewise.
3161 * typeck2.c (pat_calc_hash): Likewise.
3162 (pat_compare): Likewise.
3163 (abstract_virtuals_error): Likewise.
3164 * class.c (method_name_cmp): Likewise.
3165 (resort_method_name_cmp): Likewise.
3166 (get_vfield_name): Likewise.
3167 * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
3168 * lex.c (init_reswords): Likewise.
3169 * rtti.c (create_pseudo_type_info): Likewise.
3170 * search.c (dfs_lookup_base): Likewise.
3171 (dfs_dcast_hint_pre): Likewise.
3172 (dfs_dcast_hint_post): Likewise.
3173 * tree.c (hash_tree_cons): Likewise.
3174 * repo.c (extract_string): Likewise.
3176 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
3177 * g++spec.c (lang_specific_driver): Likewise.
3179 2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3181 * call.c (joust): Pass option code to warning. Use inform for
3183 * class.c (check_bases): Likewise.
3184 (maybe_warn_about_overly_private_class): Likewise.
3185 (check_field_decls): Likewise.
3186 (layout_empty_base): Likewise.
3187 (layout_virtual_bases): Likewise.
3188 (layout_class_type): Likewise.
3190 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3193 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
3195 (start_function): ... here.
3197 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3200 * class.c (resolve_address_of_overloaded_function): Adjust use of
3201 return value from most_specialized_instantiation.
3202 * pt.c (determine_specialization): Avoid multiple calls to
3204 (most_specialized_instantiation): When a tie occurs, set the
3205 current presumed champion to the next template. Return the
3206 TREE_LIST node containing the template, rather than the template
3208 (most_specialized): Remove.
3209 * name-lookup.c (push_overloaded_decl): When duplicate_decls
3210 indicates a failed redeclaration, report that to callers.
3212 2006-01-26 Jason Merrill <jason@redhat.com>
3215 * name-lookup.c (parse_using_directive): Require strong using to
3216 name a nested namespace.
3218 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3221 * cp-tree.h (do_poplevel): Remove prototype.
3222 * semantics.c (do_poplevel): Add prototype. Make static.
3225 * cp-tree.h (default_conversion): Remove prototype.
3226 * typeck.c (default_conversion): Make static.
3228 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3230 * cp-tree.h (get_primary_binfo): Remove prototype.
3231 (push_using_decl): Likewise.
3232 (current_template_args): Likewise.
3233 (more_specialized_class): Likewise.
3234 (mark_class_instantiated): Likewise.
3235 (default_conversion): Likewise.
3236 (pfn_from_ptrmemfunc): Likewise.
3237 * class.c (get_primary_binfo): Add prototype, make static, simplify.
3238 * name-lookup.c (push_using_decl): Make static.
3239 * pt.c (current_template_args): Likewise.
3240 (more_specialized_class): Likewise.
3241 (mark_class_instantiated): Likewise.
3242 * typeck.c (default_conversion): Make static.
3243 (pfn_from_ptrmemfunc): Add prototype, make static.
3245 2006-01-24 Dirk Mueller <dmueller@suse.de>
3247 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3249 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3252 * parser.c (cp_parser_unqualified_id): Check that destructor name
3254 * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
3255 Adjust comment. Return early if possible.
3256 Use same_type_p to compare types.
3257 * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
3259 2006-01-24 Mark Mitchell <mark@codesourcery.com>
3261 * semantics.c: Remove outdated comment.
3263 2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3265 * cp-tree.h (do_poplevel): Remove prototype.
3266 * semantics.c (do_poplevel): Add prototype. Make static.
3268 * cp-tree.h (original_type): Remove prototype.
3269 * typeck.c (original_type): Make static.
3271 * cp-tree.h (declare_global_var): Remove prototype.
3272 * decl.c (declare_global_var): Make static.
3274 * cp-tree.h (implicitly_declare_fn): Remove prototype.
3275 * method.c (implicitly_declare_fn): Make static.
3277 * cp-tree.h (fold_decl_constant_value): Remove prototype.
3278 * pt.c (fold_decl_constant_value): Make static.
3280 * cp-tree.h (build_x_delete): Remove prototype.
3281 * init.c (build_vec_delete_1): Call build_op_delete_call directly
3282 and not via build_x_delete.
3283 (build_x_delete): Remove.
3285 * cp-tree.h (get_vtt_name): Remove prototype.
3286 * class.c (get_vtt_name): Remove.
3287 (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
3289 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3291 * rtti.c (build_dynamic_cast): Fix comment.
3293 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3296 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
3299 2006-01-21 Mark Mitchell <mark@codesourcery.com>
3302 * class.c (build_base_path): Generate a NOP_EXPR instead of a
3303 COMPONENT_REF if the base and derived classes are at the same
3307 * decl.c (begin_destructor_body): Robustify.
3310 * parser.c (cp_parser_direct_declarator): Robustify.
3312 2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3314 * parser.c (cp_lexer_next_token_is_keyword): Simplify.
3316 * parser.c (clear_decl_specs): Remove prototype.
3318 * parser.c (cp_parser_expression_fn): Remove.
3320 * call.c (add_builtin_candidates): Remove superfluous return.
3321 * name-lookup.c (do_toplevel_using_decl): Likewise.
3322 * parser.c (cp_parser_type_specifier_seq): Likewise.
3323 (cp_parser_save_default_args): Likewise.
3325 2006-01-20 Dirk Mueller <dmueller@suse.com>
3328 * semantics.c (finish_if_stmt): Call empty_body_warning.
3329 * parser.c (cp_parser_implicitly_scoped_statement):
3330 Mark empty statement with an empty stmt.
3332 2006-01-19 Mark Mitchell <mark@codesourcery.com>
3335 * name-lookup.c (do_class_using_decl): Don't try to look up base
3336 classes in templates with dependent base types.
3338 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3341 * pt.c (maybe_process_partial_specialization): Return early on
3344 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3347 * decl.c (start_preparsed_function): Check default arguments
3349 * name-lookup.c (pushdecl_maybe_friend): Check default arguments
3350 of all functions and function templates.
3351 * parser.c (cp_parser_late_parsing_default_args): Check default
3353 * decl2.c (check_default_args): Set missing default arguments to
3356 2006-01-18 Mark Mitchell <mark@codesourcery.com>
3359 * cp-tree.h (push_class_stack): New function.
3360 (pop_class_stack): Likewise.
3361 * class.c (class_stack_node): Add hidden field.
3362 (pushclass): Clear it.
3363 (push_class_stack): New function.
3364 (pop_class_stack): Likewise.
3365 (currently_open_class): Ignore hidden classes.
3366 (currently_open_derived_class): Likewise.
3367 * name-lookup.c (push_to_top_level): Call push_class_stack.
3368 (pop_from_top_level): Call pop_class_stack.
3370 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
3372 * tree.c (find_tree_t, find_tree): Remove.
3373 * cp-tree.h: Remove the prototype for find_tree.
3375 2006-01-18 Jakub Jelinek <jakub@redhat.com>
3377 * search.c (lookup_conversions_r): Fix a pasto.
3379 2006-01-17 Eric Christopher <echristo@apple.com>
3381 * call.c (convert_like_real): When issuing conversion
3382 warnings, depend on OPT_Wconversion.
3383 * cvt.c (build_expr_type_conversion): Ditto.
3385 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
3387 * name-lookup.c (lookup_namespace_name): Remove.
3388 * name-lookup.h: Remove the prototype for
3389 lookup_namespace_name.
3391 2006-01-17 Jakub Jelinek <jakub@redhat.com>
3394 * decl.c (compute_array_index_type): After issuing not an integral
3395 constant-expression error, set size to 1 to avoid ICEs later on.
3397 2006-01-16 Ian Lance Taylor <ian@airs.com>
3399 * parser.c: Include "cgraph.h".
3400 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
3403 2006-01-16 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
3405 * g++spec.c (lang_specific_spec_functions): Remove.
3407 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
3409 * decl.c (check_initializer): Fix thinko.
3411 2006-01-14 Mark Mitchell <mark@codesourcery.com>
3414 * parser.c (cp_parser_direct_declarator): Use cp_parser_error
3417 2006-01-13 Jason Merrill <jason@redhat.com>
3419 * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
3421 * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
3422 * pt.c (check_explicit_specialization): Likewise.
3424 2006-01-12 Jason Merrill <jason@redhat.com>
3427 * pt.c (check_explicit_specialization): Handle namespace
3429 * name-lookup.c (set_decl_namespace): Likewise.
3431 2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
3434 * class.c (handle_using_decl): Pass correct scope to
3435 cp_emit_debug_info_for_using.
3437 2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
3440 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
3443 2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
3445 * parser.c (cp_parser_primary_expression): Document the grammar
3446 for the built-in offsetof, a GNU extension.
3448 2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
3451 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
3454 2006-01-04 Chris Lattner <sabre@gnu.org>
3456 * typeck2.c: update copyright to 2006
3457 (split_nonconstant_init_1): Set TREE_CONSTANT to true.
3459 2006-01-04 Mark Mitchell <mark@codesourcery.com>
3462 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
3463 checks, even when parsing tentatively.
3465 2006-01-04 Richard Henderson <rth@redhat.com>
3467 Merge from gomp branch.
3468 * lex.c (handle_pragma_java_exceptions): Fix whitespace.
3469 * parser.c (struct cp_token): Add pragma_kind.
3470 (eof_token): Update to match.
3471 (struct cp_lexer): Add in_pragma; rearrange next for better packing.
3472 (cp_parser_initial_pragma): New.
3473 (cp_lexer_new_main): Use it. Don't bother clearing
3474 c_lex_return_raw_strings.
3475 (cp_lexer_get_preprocessor_token): Always initialize keyword
3476 and pragma_kind fields. Handle CPP_PRAGMA.
3477 (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
3479 (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
3480 (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
3481 (cp_parser_skip_to_pragma_eol): New.
3482 (cp_parser_error): Use it.
3483 (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
3484 rearrange with switch statement.
3485 (cp_parser_skip_to_end_of_statement): Likewise.
3486 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
3487 (cp_parser_skip_to_closing_brace): Likewise.
3488 (cp_parser_skip_until_found): Likewise.
3489 (cp_parser_statement): Add in_compound argument; update callers.
3490 Use it to decide how to handle pragma parsing.
3491 (cp_parser_labeled_statement): Add in_compound argument; pass
3492 it on to cp_parser_statement.
3493 (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
3494 (cp_parser_declaration_seq_opt): Likewise.
3495 (cp_parser_parameter_declaration): Likewise.
3496 (cp_parser_member_specification_opt): Likewise.
3497 (cp_parser_function_definition_after_decl): Likewise.
3498 (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
3499 (cp_parser_pragma): New.
3502 2006-01-04 Dirk Mueller <dmueller@suse.com>
3504 * decl.c (finish_constructor_body): create simple
3505 compound stmt instead of a if(1) { } construct.
3507 2006-01-03 Mark Mitchell <mark@codesourcery.com>
3510 * name-lookup.c (push_class_level_binding): When a derived class
3511 provides a type binding, eliminate any type binding from a base
3515 * repo.c (repo_emit_p): Always instantiate static data members
3516 initialized by constant expressions, so that there values are
3519 2006-01-02 Mark Mitchell <mark@codesourcery.com>
3522 * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
3523 conversion operator.
3524 * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
3527 * class.c (add_method): Never associate more than one destructor
3528 with a single class.
3531 * cp-tree.h (do_friend): Adjust prototype.
3532 * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
3533 (grokdeclarator): Likewise. Refine check for invalid
3534 declarations/definitions of member functions outside of their own
3536 * friend.c (do_friend): Make funcdef_flag a bool, not an int.
3539 * parser.c (cp_parser_mem_initializer_list): Check result of
3540 cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
3541 (cp_parser_mem_initializer): Return error_mark_node for failure.
3544 * parser.c (cp_parser_template_parameter_list): Call
3545 begin_template_parm_list and end_template_parm_list here.
3546 (cp_parser_type_parameter): Not here.
3547 (cp_parser_template_declaration_after_export): Or here.
3548 (cp_parser_elaborated_type_specifier): Call
3549 cp_parser_check_template_parameters.
3551 * tree.c (build_target_expr_with_type): Use force_target_expr.
3553 * decl2.c (mark_used): Fix typo in comment.
3555 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3557 * parser.c (cp_parser_using_declaration): Skip name-lookup on
3560 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
3562 * cxx-pretty-print.c (pp_cxx_constant): New. Print
3563 string-literal in parens if input program says so.
3564 (pp_cxx_primary_expression): Hand off constant printing to
3566 (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
3567 (pp_cxx_expression): Use pp_cxx_constant for literals.
3568 * error.c (dump_expr): Use pp_constant for literals.
3570 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
3572 * method.c (make_thunk): Don't set comdat_linkage here.
3573 (use_thunk): Make thunk one only here, if thunk target is
3576 2005-12-26 Mark Mitchell <mark@codesourcery.com>
3579 * decl.c (grokdeclarator): Remove dead code.
3580 * ptree.c (cxx_print_xnode): Handle BASELINK.
3581 * parser.c (make_id_declarator): Add sfk parameter.
3582 (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
3584 (cp_parser_declarator_id): Simplify BASELINKs here.
3585 (cp_parser_member_declaration): Adjust calls to
3588 2005-12-26 Mark Mitchell <mark@codesourcery.com>
3590 PR c++/23171, c++/23172, c++/25417.
3591 * typeck.c (build_unary_op): Create temporary variables for
3592 compound literals whose addresses are taken.
3593 * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
3594 * decl.c (reshape_init_vector): Likewise.
3595 (reshape_init): Give it external linkage.
3596 (check_initializer): Use COMPOUND_LITERAL_P.
3597 (initialize_artificial_var): Allow the initializer to be a
3599 * call.c (make_temporary_var_for_ref_to_temp): Use
3600 create_temporary_var.
3601 * cp-tree.h (COMPOUND_LITERAL_P): New macro.
3602 (rehape_init): Declare.
3603 * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
3604 * semantics.c (finish_compound_literal): Use reshape_init.
3606 2005-12-23 Mark Mitchell <mark@codesourcery.com>
3609 * pt.c (instantiate_template): Handle SFINAE.
3611 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3613 * decl.c (grokdeclarator): Improve diagnostic for friend
3614 declarations of class members.
3616 2005-12-22 Mark Mitchell <mark@codesourcery.com>
3619 * tree.c (really_overloaded_fn): Tweak comment.
3620 * pt.c (tsubst_call_declarator_parms): Remove.
3621 (tsubst_copy): Call mark_used on the member referenced by an
3623 * semantics.c (finish_qualified_id_expr): Simplify.
3624 * decl2.c (mark_used): Accept BASELINKs.
3627 * typeck.c (build_unary_op): Pass DECLs not names to
3629 * init.c (build_offset_ref): Do not do name lookup. Do not call
3631 * call.c (build_call): Simplify and tidy.
3632 * semantics.c (finish_qualified_id_expr): Call mark_used.
3634 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3637 * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
3638 identify a single '0'.
3640 2005-12-20 Mark Mitchell <mark@codesourcery.com>
3643 * decl.c (use_eh_spec_block): New function.
3644 (store_parm_decls): Use it.
3645 (finish_function): Likewise.
3647 2005-12-19 Mark Mitchell <mark@codesourcery.com>
3650 * init.c (expand_member_init): Print messages about baseclasses
3651 using %T rather than %D.
3654 * class.c (add_method): Do not treat templates as identical unless
3655 their return types are the same.
3657 2005-12-12 Mark Mitchell <mark@codesourcery.com>
3660 * tree.c (build_qualified_name): Return error_mark_node for
3663 2005-12-10 Mark Mitchell <mark@codesourcery.com>
3666 * pt.c (tsubst_copy_and_build): Permit dependent types for the
3667 object in a class member access expression.
3669 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
3672 * mangle.c (write_bare_function_type): Mangle return type for
3673 methods of Java classes
3675 2005-12-08 Th�dore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3677 * call.c (build_conditional_expr): Print types in error messages.
3679 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3681 * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
3683 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3685 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
3687 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
3689 * Make-lang.in (c++.all.build, c++.install-normal): Remove.
3691 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
3693 * Make-lang.in: Remove all dependencies on s-gtype.
3695 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
3698 * decl.c (reshape_init_array_1): Handle max_index of -1.
3700 2005-12-06 Roger Sayle <roger@eyesopen.com>
3702 * typeck.c (build_binary_op): Issue warning if either operand of a
3703 comparison operator is a string literal, except for testing equality
3704 or inequality against NULL.
3706 2005-12-06 Roger Sayle <roger@eyesopen.com>
3709 * decl.c (compute_array_index_type): Check that itype is an
3710 INTEGER_CST node before testing/clearing TREE_OVERFLOW.
3712 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
3714 * ptree.c (cxx_print_decl): Update to check for decl_common
3717 2005-12-02 Mark Mitchell <mark@codesourcery.com>
3720 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
3723 2005-12-02 Richard Guenther <rguenther@suse.de>
3725 * semantics.c (simplify_aggr_init_expr): Use buildN instead
3728 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3730 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
3732 (cp_parser_template_argument_list): Use XRESIZEVEC instead of
3734 * class.c (pushclass): Likewise.
3736 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3738 * decl2.c (get_priority_info): Use XNEW, not xmalloc.
3739 * decl.c (push_switch): Likewise.
3740 * lex.c (handle_pragma_implementation): Likewise.
3741 * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
3743 (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
3744 * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
3745 * g++spec.c (lang_specific_driver): Likewise.
3746 * mangle.c (save_partially_mangled_name): Likewise.
3747 * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
3748 (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
3749 (cp_parser_sizeof_operand): Likewise.
3750 * repo.c (open_repo_file, open_repo_file): Likewise.
3752 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
3754 * parser.c (cp_parser_make_typename_type): Call make_typename_type
3755 with tf_none instead of magic value 0.
3756 (cp_parser_explicit_instantiation): Call do_type_instantiation
3757 with tf_error instead of magic value 1.
3758 (cp_parser_elaborated_type_specifier): Call make_typename_type
3759 with tf_error instead of magic value 1.
3760 (cp_parser_class_name): Likewise.
3761 (cp_parser_lookup_name): Likewise.
3763 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
3765 * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
3768 2005-11-30 Jason Merrill <jason@redhat.com>
3771 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
3774 2005-11-30 Ben Elliston <bje@au.ibm.com>
3776 * typeck.c (build_x_unary_op): Correct spelling in error message.
3778 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
3781 * class.c (check_field_decls): Only set DECL_PACKED on a field
3782 when its natural alignment is > BITS_PER_UNIT.
3784 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3787 * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
3789 2005-11-26 Richard Henderson <rth@redhat.com>
3791 * lex.c: Update for pragma_lex rename.
3792 * parser.c: Likewise.
3794 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3797 * decl.c (grokparms): Do not allow typedef-names in a '(void)'
3800 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3802 * typeck2.c (process_init_constructor_union): Remove check for
3803 unnamed union members.
3805 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3807 * name-lookup.c (lookup_name_real): Merge two if's.
3809 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3811 * pt.c (instantiate_class_template): Clean-up.
3813 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3815 * pt.c (template_class_depth_real): Remove. Move functionality to ...
3816 (template_class_depth): ... here, replacing count_specializations
3817 with 0. Adjust comment.
3819 2005-11-24 Richard Guenther <rguenther@suse.de>
3820 Dirk Mueller <dmueller@suse.de>
3823 * typeck.c (build_reinterpret_cast_1): Use
3824 strict_aliasing_warning.
3826 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3829 * pt.c (check_instantiated_args): Reword diagnostic message about
3830 template argument involving local types.
3832 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3835 * typeck.c (build_array_ref): Avoid code duplicate. Use common
3836 C/C++ diagnostic function warn_array_subscript_with_type_char.
3838 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
3841 * error.c (resolve_virtual_fun_from_obj_type_ref): New.
3842 (dump_expr): Use it in <case CALL_EXPR>.
3844 2005-11-21 Richard Henderson <rth@redhat.com>
3846 * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
3848 * name-lookup.c (lookup_name): Remove prefer_type argument.
3849 (lookup_name_prefer_type): New.
3850 * decl.c (lookup_and_check_tag): Use them.
3851 * pt.c (tsubst_friend_class): Likewise.
3852 (lookup_template_class): Likewise.
3853 (tsubst_copy_and_build): Likewise.
3854 * name-lookup.h (lookup_name_prefer_type): New.
3855 (lookup_name): Remove declaration.
3857 2005-11-18 Mark Mitchell <mark@codesourcery.com>
3860 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
3862 * name-lookup.c (set_decl_namespace):
3864 2005-11-18 Mike Stump <mrs@apple.com>
3866 * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3867 * name-lookup.c (lookup_name_two): Remove.
3868 (lookup_name_one): Add.
3869 * name-lookup.h (lookup_name_two): Remove.
3870 (lookup_name_one): Add.
3872 2005-11-15 Jason Merrill <jason@redhat.com>
3875 * method.c (locate_copy): Also use skip_artificial_parms here.
3876 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
3878 (locate_ctor): Abort if we fail to find a default constructor.
3880 2005-11-15 Mike Stump <mrs@apple.com>
3882 * name-lookup.c (lookup_name_two): Add.
3883 * name-lookup.h: Likewise.
3885 2005-11-15 Mark Mitchell <mark@codesourcery.com>
3888 * typeck.c (check_for_casting_away_constness): Use the diag_fn.
3889 (build_const_cast_1): Call it, for C-style casts.
3891 2005-11-14 Mark Mitchell <mark@codesourcery.com>
3894 * pt.c (check_explicit_specialization): Don't check for C linkage.
3895 (push_template_decl_real): Likewise.
3896 * parser.c (cp_parser_explicit_specialization): Check here.
3897 (cp_parser_template_declaration_after_export): And here.
3899 * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
3902 2005-11-14 Jason Merrill <jason@redhat.com>
3905 * method.c (locate_ctor): Skip all artificial parms, not just
3908 2005-11-14 Mark Mitchell <mark@codesourcery.com>
3910 * parser.c (eof_token): Add initializer for ambiguous_p.
3912 2005-11-13 Mark Mitchell <mark@codesourcery.com>
3915 * decl.c (check_redeclaration_exception_specification): New
3917 (duplicate_decls): Use it.
3918 * error.c (fndecl_to_string): Print the template parameter list.
3921 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
3923 (pp_cxx_original_namespace_definition): Likewise.
3924 * name-lookup.c (ambiguous_decl): Don't issue error messages;
3925 instead return lists of ambiguous candidates.
3926 (select_decl): Handle ambiguous namespace lookups.
3927 * parser.c (cp_token): Add ambiguous_p.
3928 (cp_lexer_get_preprocessor_token): Set it.
3929 (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
3930 when a qualified name uses an invalid scope.
3931 (cp_parser_primary_expression): Print ambiguous candidates.
3932 (cp_parser_type_parameter): Adjust comment to reflect new
3933 parameter name for cp_parser_lookup_name.
3934 (cp_parser_template_argument): Likewise.
3935 (cp_parser_elaborated_type_specifier): Likewise.
3936 (cp_parser_namespace_name): Likewise.
3937 (cp_parser_class_name): Print ambiguous candidates.
3938 (cp_parser_lookup_name): Rename ambiguous_p parameter to
3939 ambiguous_decls. Use it to return a list of ambiguous candiates
3940 when a lookup is ambiguous.
3941 (cp_parser_lookup_name_simple): Adjust comment to reflect new
3942 parameter name for cp_parser_lookup_name.
3944 2005-11-12 Jakub Jelinek <jakub@redhat.com>
3947 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
3948 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
3952 * pt.c (tsubst_copy_asm_operands): New function.
3953 (tsubst_expr) <case ASM_EXPR>: Use it.
3955 2005-11-08 Jakub Jelinek <jakub@redhat.com>
3958 * decl.c (redeclaration_error_message): Issue diagnostics about
3959 olddecl and newdecl disagreement on __thread property.
3960 (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
3962 2005-11-08 Jason Merrill <jason@redhat.com>
3965 * method.c (use_thunk): Use build_cplus_new instead of
3968 2005-11-06 Jason Merrill <jason@redhat.com>
3969 James A. Morrison <phython@gcc.gnu.org>
3972 * decl2.c (cp_finish_file): Fix conditions for undefined warning.
3973 Set TREE_NO_WARNING instead of TREE_PUBLIC.
3974 * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
3975 a warning on a function we didn't instantiate because of excessive
3978 2005-11-06 Mark Mitchell <mark@codesourcery.com>
3980 * class.c (record_subobject_offsets): Don't record offsets past
3981 biggest empty class for non-empty base classes.
3982 (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
3983 keeping track of the size of emptyclasses.
3986 * class.c (sizeof_biggest_empty_class): New variable.
3987 (record_subobject_offsets): Don't record offsets past biggest
3988 empty class for data members. Replace vbases_p parameter with
3989 is_data_member parameter.
3990 (build_base_field): Adjust call.
3991 (layout_class_type): Likewise. Maintain
3992 sizeof_biggest_empty_class.
3994 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
3996 * decl2.c, init.c, typeck.c: Fix comment typos.
3998 2005-11-04 Richard Guenther <rguenther@suse.de>
4001 * init.c (build_vec_init): Build comparison of matching
4004 2005-11-03 Josh Conner <jconner@apple.com>
4007 pt.c (tsubst): Accept zero-length array if tf_error is set
4008 in complain flags. Change error message for negative-
4011 2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
4013 * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
4016 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
4019 * error.c (cp_cpp_error): New function.
4020 * cp-tree.h (cp_cpp_error): Declare.
4021 * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
4022 and error callback after lexing.
4024 2005-11-03 Mark Mitchell <mark@codesourcery.com>
4027 * pt.c (register_specialization): Update inline flags on clones.y
4029 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
4032 * decl.c (declare_local_label): Return 0 for variables
4033 with error_mark_node as their types.
4035 2005-11-02 Mark Mitchell <mark@codesourcery.com>
4038 * call.c (build_conditional_expr): Do bad conversions, if there's
4042 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
4043 message for use of overloaded functions on LHS of "." operator.
4046 * parser.c (cp_parser_postfix_expression): Use
4047 cp_parser_elaborated_type_specifier to handle typename-types in
4049 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
4050 template argument list if the closing ">" is not found.
4053 * pt.c (instantiate_decl): Use cp_finish_decl, not
4054 finish_static_data_member_decl.
4056 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4058 * decl.c (grokfndecl): Remove the setting
4059 of the return type of the function type
4060 of main after erroring about must returning
4063 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4066 * decl.c (grokfndecl): Create a new function type
4067 after erroring out about main not returning int.
4069 2005-10-28 Josh Conner <jconner@apple.com>
4072 * parser.c (cp_parser_member_declaration): Detect and handle
4073 a template specialization.
4075 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
4078 * decl.c (start_decl): Check that the decl is an
4079 error_mark_node before getting the type.
4080 Remove the check for the decl's type being an
4083 2005-10-21 Mark Mitchell <mark@codesourcery.com>
4086 * parser.c (cp_parser_init_declarator): Pass attributes to
4089 2005-10-20 Mark Mitchell <mark@codesourcery.com>
4092 * search.c (accessible_p): Check access in the outermost set of
4093 template parameters.
4095 2005-10-20 Richard Guenther <rguenther@suse.de>
4097 * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
4099 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4102 * decl.c (grokdeclarator): Reject unqualified destructors in
4103 friend declarations.
4105 2005-10-18 Mark Mitchell <mark@codesourcery.com>
4108 * pt.c (convert_template_argument): Use canonical type variants in
4109 template specializations.
4111 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
4114 * name-lookup.c (arg_assoc): Template args can be null in a
4118 * class.c (update_vtable_entry_for_fn): Don't process invalid
4119 covariant overriders.
4122 * cp-tree.h (add_method): Add return value.
4123 * class.c (add_method): Return success indicator.
4124 * semantics.c (finish_member_declaration): Don't add an invalid
4125 method to the method list.
4127 2005-10-17 Mark Mitchell <mark@codesourcery.com>
4130 * call.c (build_new_method_call): Do not show VTT parameters to
4133 2005-10-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4136 * parser.c (cp_parser_statement): If the parser reached CPP_EOF,
4137 only complain about missing statement.
4139 2005-10-17 Nathan Sidwell <nathan@codesourcery.com>
4142 * cp-tree.h (BASELINK_QUALIFIED_P): New.
4143 * pt.c (tsubst_copy_and_build): <CALL_EXPR case>: Use it.
4144 * typeck.c (finish_class_member_access_expr): Set it.
4147 * decl.c (check_default_argument): Don't check
4148 processing_template_decl or uses_template_parms here.
4149 (grokparms): Only call check_default_argument when not processing
4151 * parser.c (cp_parser_late_parsing_default_arg): Call
4152 check_default_argument when not processing a template decl.
4154 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4157 * decl2.c (mark_used): Use uses_template_parms instead of
4159 * init.c (constant_value_1): Handle uninstantiated templates
4161 * pt.c (instantiate_decl): Add sanity check.
4163 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4166 * typeck.c (check_template_keyword): Fix thinko.
4168 2005-10-16 Andrew Pinski <pinskia@physics.uc.edu>
4171 * decl.c (pop_switch): Only call c_do_switch_warnings
4172 when not processing templates.
4174 2005-10-16 Mark Mitchell <mark@codesourcery.com>
4177 * cp-tree.h (QUALIFIED_NAME_IS_TEMPLATE): New macro.
4178 (check_template_keyword): New function.
4179 (finish_id_expression): Change prototoype.
4180 (finish_qualified_id_expr): Change prototype.
4181 (build_qualified_name): New function.
4182 (finish_class_member_access_expr): Change prototype.
4183 * init.c (build_offset_ref): Use build_qualified_name.
4184 * mangle.c (write_expression): Likewise.
4185 * parser.c (cp_parser_primary_expression): Remove qualifying_class
4186 parameter. Add address_p and template_arg_p. Use
4187 build_qualified_name.
4188 (cp_parser_id_expression): Default *template_p to
4189 template_keyword_p. Check for invalid uses of the template
4191 (cp_parser_postfix_expression): Eliminate special handling for
4192 qualified names. Adjust call to cp_parser_primary_expression.
4193 (cp_parser_postfix_dot_deref_expression): Adjust call to
4194 cp_parser_id_expression and finish_class_member_access_expr.
4195 (cp_parser_template_argument_list): Add comment.
4196 (cp_parser_template_argument): Adjust use of
4197 cp_parser_primary_expression. Remove call to
4198 finish_qualified_id_expr.
4199 (cp_parser_lookup_name): Use build_qualified_name.
4200 * pt.c (tsubst): Use build_qualified_name.
4201 (tsubst_qualified_id): Likewise. Adjust call to
4202 finish_qualified_id_expr.
4203 (tsubst_copy): Use build_qualified_name.
4204 (tsubst_copy_and_build): Adjusts call to finish_id_expression and
4205 finish_class_member_access_expr.
4206 * semantics.c (finish_non_static_data_member): Use
4207 build_qualified_name.
4208 (finish_qualified_id_expr): Add template_p and template_arg_p
4210 (finish_id_expression): Remove qualifiying_class parameter. Add
4211 template_p, done, address_p, and template_arg_p. Use
4212 build_qualified_name. Adjust calls to
4213 finish_class_member_acess_expr.
4214 * tree.c (build_qualified_name): New function.
4215 * typeck.c (check_template_keyword): New function.
4216 (finish_class_member_access_expr): Add template_p argument. Check
4217 for invalid uses of the template keyword.
4219 2005-10-15 Mark Mitchell <mark@codesourcery.com>
4222 * class.c (maybe_warn_about_overly_private_class): Lazy
4223 constructors are public.
4225 2005-10-14 Mark Mitchell <mark@codesourcery.com>
4228 * call.c (convert_like_real): Rely on convert_and_check to issue
4229 warnings about overflow and conversion to unsigned.
4230 * decl.c (finish_enum): Use the location of the enumerators, not
4231 the closing brace of the enumeration, when reporting warnings
4233 (build_enumerator): Use error_mark_node for erroneous values.
4234 * typeck2.c (digest_init): Remove reference to "signature pointer"
4237 2005-10-14 Nathan Sidwell <nathan@codesourcery.com>
4240 * optimize.c (update_cloned_parm): Add FIRST parameter. Use it.
4241 (maybe_clone_body): Track the first clone.
4243 2005-10-13 Nathan Sidwell <nathan@codesourcery.com>
4246 * class.c (build_base_path): The vtable is always the first thing
4249 2005-10-13 Mark Mitchell <mark@codesourcery.com>
4252 * cp-tree.h (DECL_NONTRIVIALLY_INITIALIZED_P): New macro.
4253 * decl.c (duplicate_decls): Merge it into new declarations.
4254 (decl_jump_unsafe): Use it, rather than DECL_INITIAL.
4255 (cp_finish_decl): Set it, when appropriate.
4258 * call.c (build_new_method_call): Correct pretty-printing of
4260 * pt.c (tsubst_qualified_id): Recognize invalid uses of "~T" as an
4264 * decl.c (start_method): Return error_mark_node for errors.
4267 * pt.c (push_template_decl_real): Complain about attempts to
4268 declare template variables.
4271 * pt.c (tsubst_template_parms): Set processing_template_decl while
4272 processing the parameters.
4273 (tsubst_decl): Set processing_template_decl when substituting into
4277 * pt.c (most_specialized_instantiation): Robustify.
4280 * semantics.c (finish_id_expression): Issue errors about uses of
4281 local variables in containing functions even in templates.
4283 2005-10-12 Danny Smith <dannysmith@users.sourceforge.net>
4287 * class.c (finish_struct_1): Call
4288 targetm.cxx.adjust_class_at_definition.
4291 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
4294 * pt.c (build_non_dependent_expr): Don't wrap a COMPONENT_REF
4295 with already looked up member functions. Assert we're not
4296 returning a NON_DEPENDENT_EXPR with unknown type.
4297 * typeck.c (finish_class_member_access_expr): We can get
4298 non-template-id-expr baselinks. If the lookup finds a baselink,
4299 remember it even inside templates.
4302 * parser.c (cp_parser_functional_cast): Cope when TYPE is not a
4303 TYPE_DECL. Use dependent_type_p to check type.
4304 * pt.c (uses_template_parms_p): Use dependent_type_p for a
4306 (type_dependent_expression_p): Assert we've not been given a
4310 * decl.c (check_function_type): Correctly overwrite incomplete
4311 return type with void type.
4312 * typeck.c (check_return_expr): If the function's return type is
4313 void, don't try and convert a return expr.
4315 2005-10-12 David Edelsohn <edelsohn@gnu.org>
4318 * call.c (build_object_call): If BINFO is NULL, bypass
4319 lookup_fnfields and set fns to NULL_TREE.
4321 2005-10-12 Paolo Bonzini <bonzini@gnu.org>
4324 * error.c (dump_expr): Pass LABEL_DECL to dump_decl. Print
4325 an ADDR_EXPR of a LABEL_DECL as &&.
4327 2005-10-12 Nathan Sidwell <nathan@codesourcery.com>
4330 * class.c (walk_subobject_offsets): Don't walk error_mark_node.
4332 2005-10-11 Ian Lance Taylor <ian@airs.com>
4335 * cvt.c (convert_to_void): Don't warn about unused values when
4336 processing a template declaration.
4338 2005-10-11 Mark Mitchell <mark@codesourcery.com>
4341 * call.c (convert_like_real): Use decl_constant_value, not
4342 integral_constant_value.
4343 * init.c (constant_value_1): New function.
4344 (integral_constant_value): Use it.
4345 (decl_constant_value): Likewise.
4346 * typeck.c (decay_conversion): Use decl_constant_value, not
4347 integral_constant_value.
4350 * parser.c (cp_parser_elaborated_type_specifier): Don't treat
4351 class types as templates if the type is not appearing as part of a
4352 type definition or declaration.
4354 2005-10-10 Mark Mitchell <mark@codesourcery.com>
4357 * pt.c (instantiate_decl): Call finish_static_data_member_decl for
4358 static data members.
4360 2005-10-10 Giovanni Bajo <giovannibajo@gcc.gnu.org>
4361 Mark Mitchell <mark@codesourcery.com>
4364 * parser.c (cp_parser_template_argument_list): Do not treat
4365 contents of argument list as part of a constant expression.
4367 2005-10-10 Mark Mitchell <mark@codesourcery.com>
4370 * decl.c (grokdeclarator): Do not require template parameter lists
4371 for explicitly specialized class.
4372 * error.c (dump_aggr_type): Do not dump template arguments for
4373 non-primary specializations.
4374 (dump_function_name): Likewise.
4377 * pt.c (instantiate_decl): Instantiate the initializer of
4378 a static data member in the namespace containing the class
4379 containing the static data member.
4381 2005-10-08 James A. Morrison <phython@gcc.gnu.org>
4384 * parser.c (cp_parser_postfix_expression) <RID_TYPENAME>: Treat nontype
4385 scopes as nondependent.
4387 2005-10-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4389 * call.c (resolve_args): Remove redundant test.
4391 2005-10-05 Paolo Bonzini <bonzini@gnu.org>
4393 PR tree-optimization/21419
4394 PR tree-optimization/24146
4395 PR tree-optimization/24151
4397 * semantics.c (finish_asm_stmt): Call readonly_error if outputs are
4398 read-only. Set ASM_VOLATILE_P for asms without outputs.
4400 2005-10-05 Nathan Sidwell <nathan@codesourcery.com>
4403 * call.c (joust): Adjust length count to more_specialized_fn.
4404 * pt.c (more_specialized_fn): Cope with non-static member vs
4407 2005-10-04 Andrew Pinski <pinskia@physics.uc.edu>
4410 * decl.c (make_rtl_for_nonlocal_decl): Use set_user_assembler_name
4411 instead of change_decl_assembler_name.
4413 2005-10-03 Alexandre Oliva <aoliva@redhat.com>
4415 * error.c (dump_type) <UNKNOWN_TYPE>: Print reworded message.
4417 2005-10-03 Mark Mitchell <mark@codesourcery.com>
4420 * repo.c: Include flags.h.
4421 (finish_repo): Add -frandom-seed to the arguments.
4423 2005-10-02 Mark Mitchell <mark@codesourcery.com>
4426 * parser.c (cp_parser_template_argument): Don't turn "T::f" into
4428 * pt.c (convert_nontype_argument): Remove ??? comment.
4431 * tree.c (lvalue_p_1): A VA_ARG_EXPR with class type is an lvalue,
4432 when class rvalues are lvalues.
4434 2005-09-28 Mark Mitchell <mark@codesourcery.com>
4437 * decl.c (grokdeclarator): Always pedwarn about overqualified
4440 2005-09-27 Mark Mitchell <mark@codesourcery.com>
4443 * name-lookup.c (maybe_process_template_type_declaration): Don't
4444 treat forward declarations of classes as templates just because
4445 we're processing_template_decl.
4446 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INFO for friend
4449 2005-09-26 Jason Merrill <jason@redhat.com>
4452 * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): New macro.
4453 * name-lookup.c (pushdecl_maybe_friend): Check it.
4454 * decl.c (begin_function_body): Do nothing if it's false.
4455 (finish_function_body): Ditto.
4456 (outer_curly_brace_block): New fn.
4457 (finish_function): Use it.
4459 2005-09-26 Richard Guenther <rguenther@suse.de>
4462 * decl2.c (do_static_destruction): Remove.
4463 (finish_static_initialization_or_destruction): Likewise.
4464 (DECL_EFFECTIVE_INIT_PRIORITY): New macro.
4465 (NEEDS_GUARD_P): Likewise.
4466 (do_static_initialization): Rename to
4467 do_static_initialization_or_destruction. Process all
4468 initializers/destructors and handle common conditionalizing.
4469 (start_static_initialization_or_destruction): Rename to
4470 one_static_initialization_or_destruction. Handle only
4471 decl-specific conditionalizing.
4472 (cp_finish_file): Call do_static_initialization_or_destruction.
4474 2005-09-22 Jakub Jelinek <jakub@redhat.com>
4477 * class.c (find_final_overrider): Move diagnostic about no unique final
4479 (update_vtable_entry_for_fn): ... here.
4481 2005-09-21 Mark Mitchell <mark@codesourcery.com>
4484 * init.c (integral_constant_value): Use DECL_INTEGRAL_CONSTANT_VAR_P.
4486 2005-09-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4489 * call.c (resolve_args): Return error_mark_node on arguments
4490 whose TREE_TYPE is error_mark_node.
4492 2005-09-20 Jakub Jelinek <jakub@redhat.com>
4495 * rtti.c (get_pseudo_ti_init): Recompute ti pointer after
4496 get_tinfo_ptr calls.
4498 2005-09-16 Mark Mitchell <mark@codesourcery.com>
4501 * parser.c (cp_parser_enclosed_template_argument_list): Make sure
4502 skip_evaluation is false when processing template arguments.
4505 * pt.c (check_instantiated_args): Treat uses of anonymous types as
4506 causing type-deduction failure.
4508 2005-09-15 Jason Merrill <jason@redhat.com>
4511 * cp-tree.def (SIZEOF_EXPR, ALIGNOF_EXPR): Change code class to
4514 2005-09-15 Mark Mitchell <mark@codesourcery.com>
4517 * pt.c (tsubst_aggr_type): Make sure skip_evaluation is false when
4518 processing template arguments.
4520 * pt.c (check_explicit_instantiation_namespace): Fix typo.
4523 * decl.c (check_class_member_definition_namespace): New function.
4524 (grokfndecl): Use it.
4525 (grokvardecl): Likewise.
4526 (grokdecl): Improve documentation.
4527 * pt.c (check_explicit_instantiation_namespace): New function.
4528 (register_specialization): Call check_specialization_namespace
4529 when replacing an implicitly instantiated function.
4530 (check_explicit_specialization): Ensure that DECL_CONTEXT is set
4531 correctly for namespace-scope specializations.
4532 (do_decl_instantiation): Use
4533 check_explicit_instantiation_namespace.
4534 (do_type_instantiation): Likewise.
4536 2005-09-15 Nathan Sidwell <nathan@codesourcery.com>
4539 * error.c (dump_decl): <USING_DECL case> Use USING_DECL_SCOPE.
4541 2005-09-13 Bastian Blank <waldi@debian.org>
4544 * mangle.c (find_substitution): Do not use special substitutions
4545 for identifiers not in std::.
4547 2005-09-13 Mark Mitchell <mark@codesourcery.com>
4550 * typeck.c (cxx_mark_addressable): Only check DECL_HARD_REGISTER
4553 2005-09-13 Mark Mitchell <mark@codesourcery.com>
4556 * pt.c (tsubst_default_argument): Do treat default argument
4557 expressions as occurring in the context of the function called.
4559 2005-09-12 Mark Mitchell <mark@codesourcery.com>
4562 * parser.c (cp_parser_primary_expression): Recognize the closing
4563 ">" of a template-argument-list after a floating-point literal as
4564 the end of a cast expression.
4566 2005-09-12 Mark Mitchell <mark@codesourcery.com>
4569 * cvt.c (perform_qualification_conversions): Don't create
4570 unnecessary NOP_EXPRs.
4571 * pt.c (tsubst_template_arg): Use fold_non_dependent_expr.
4573 2005-09-12 Ian Lance Taylor <ian@airs.com>
4576 * cp-tree.h (struct lang_decl_flags): Add hidden_friend_p
4577 bitfield. Make dummy bitfield one bit smaller.
4578 (DECL_HIDDEN_FRIEND_P): Define.
4579 (pushdecl_maybe_friend): Declare.
4580 (pushdecl_top_level_maybe_friend): Declare.
4581 * decl.c (duplicate_decls): Add newdecl_is_friend parameter.
4582 Change prototype and all callers. Add assertion that a
4583 DECL_ARTIFICIAL FUNCTION_DECL is not DECL_HIDDEN_FRIEND_P. Set
4584 DECL_ANTICIPATED and DECL_HIDDEN_FRIEND_P in duplicated decl if
4586 * name-lookup.c (supplement_binding): Don't ignore a
4587 DECL_HIDDEN_FRIEND_P.
4588 (pushdecl_maybe_friend): Break out contents of pushdecl. Add
4589 is_friend parameter. Set DECL_ANTICIPATED and
4590 DECL_HIDDEN_FRIEND_P for a friend function.
4591 (pushdecl): Just call pushdecl_maybe_friend.
4592 (pushdecl_with_scope): Add is_friend parameter. Change prototype
4594 (pushdecl_namespace_level): Likewise.
4595 (push_overloaded_decl): Likewise. Check DECL_HIDDEN_FRIEND_P as
4596 well as DECL_ANTICIPATED when checking for a builtin.
4597 (do_nonmember_using_decl): Check DECL_HIDDEN_FRIEND_P as well as
4598 DECL_ANTICIPATED when checking for a builtin.
4599 (do_nonmember_using_decl): Likewise.
4600 (pushdecl_top_level_1): Add is_friend parameter. Change all
4602 (pushdecl_top_level_maybe_friend): New function.
4603 (remove_hidden_names): New function.
4604 (struct arg_lookup): Add args field.
4605 (friend_of_associated_class_p): New static function.
4606 (arg_assoc_namespace): Ignore hidden functions which are not
4607 friends of an associated class of some argument.
4608 (lookup_arg_dependent): Remove hidden functions from list passed
4609 in. Initialize k.args.
4610 * name-lookup.h (remove_hidden_names): Declare.
4611 * friend.c (do_friend): Call pushdecl_maybe_friend instead of
4613 * call.c (add_function_candidate): Change DECL_ANTICIPATED test to
4614 an assertion, with a check for DECL_HIDDEN_FRIEND_P.
4615 (build_new_function_call): Add koenig_p parameter. Change
4616 prototype and callers.
4617 * pt.c (register_specialization): Add is_friend parameter. Change
4619 (push_template_decl_real): Change is_friend parameter to bool.
4620 Change prototype and all callers.
4621 (tsubst_friend_class): Call pushdecl_top_level_maybe_friend
4622 instead of pushdecl_top_level.
4624 2005-09-11 Richard Henderson <rth@redhat.com>
4626 * decl2.c (build_anon_union_vars): Copy attributes from the base addr.
4627 * pt.c (tsubst_decl): Substitute in DECL_VALUE_EXPR.
4629 2005-09-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
4631 * parser.c (cp_parser_translation_unit): Simplify. The while-block
4632 was actually executed at most once.
4634 2005-09-09 Richard Henderson <rth@redhat.com>
4637 * cp-tree.def (ALIAS_DECL): Remove.
4638 * cp-lang.c (cp_init_ts): Remove support for it.
4639 * error.c (dump_decl): Likewise.
4640 * name-lookup.c (pushdecl): Likewise.
4641 * semantics.c (finish_id_expression): Likewise.
4642 * decl2.c (build_anon_union_vars): Use a VAR_DECL with
4643 DECL_VALUE_EXPR instead.
4645 2005-09-09 Mark Mitchell <mark@codesourcery.com>
4648 * decl.c (start_preparsed_function): Do not pay attention to
4649 #pragma interface for implicitly-defined methods.
4650 * decl2.c (cp_finish_file): Do not complain about uses of inline
4651 functions that have bodies, even if we decided not to emit the
4652 body in this translation unit.
4653 * semantics.c (note_decl_for_pch): Do not mess with linkage.
4654 (expand_or_defer_fn): Make inline, non-template functions COMDAT
4657 2005-09-08 Richard Henderson <rth@redhat.com>
4660 * decl.c (wrapup_globals_for_namespace): Call
4661 emit_debug_global_declarations.
4662 * decl2.c (cp_finish_file): Likewise.
4664 2005-09-08 Mark Mitchell <mark@codesourcery.com>
4667 * decl2.c (mark_used): Instantiate static data members initialized
4668 by constants, even in a template.
4670 2005-09-08 Andrew Pinski <pinskia@physics.uc.edu>
4673 * parser.c (cp_parser_objc_selector_expression): Treat CPP_SCOPE as
4676 2005-09-07 Richard Guenther <rguenther@suse.de>
4678 * cp-gimplify.c (cp_gimplify_expr): Create empty CONSTRUCTOR
4679 for EMPTY_CLASS_EXPR.
4681 2005-09-06 Jakub Jelinek <jakub@redhat.com>
4684 * typeck.c (check_return_expr): Add no_warning argument. Set
4685 *no_warning to true if "return-statement with no value, in function
4686 returning" warning has been issued.
4687 * cp-tree.h (check_return_expr): Adjust prototype.
4688 * semantics.c (finish_return_stmt): Set TREE_NO_WARNING if
4689 check_return_expr set *no_warning to true.
4691 2005-09-06 Mark Mitchell <mark@codesourcery.com>
4693 * cp-tree.h (rvalue): New function.
4694 * call.c (build_conditional_expr): Use it.
4695 * init.c (build_new_1): Likewise.
4696 * rtti.c (build_dynamic_cast_1): Likewise.
4697 * tree.c (rvalue): New function.
4698 * typeck.c (build_unary_op): Use it.
4699 (build_static_cast_1): Likewise.
4702 * init.c (build_new_1): Make sure the entire array type is
4703 complete, not just its element types.
4705 2005-09-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4707 * decl.c (check_elaborated_type_specifier): Remove redundant check.
4709 2005-09-06 Jakub Jelinek <jakub@redhat.com>
4712 * typeck.c (ignore_overflows): New helper function.
4713 (build_static_cast_1): Use it.
4715 2005-09-06 Kazu Hirata <kazu@codesourcery.com>
4717 * cp-tree.h, decl.c, decl2.c, semantics.c: Fix comment typos.
4718 Follow spelling conventions.
4720 2005-09-05 Mark Mitchell <mark@codesourcery.com>
4723 * pt.c (tsubst_decl): Clear DECL_TEMPLATE_INSTANTIATED when
4726 2005-09-05 Mark Mitchell <mark@codesourcery.com>
4729 * semantics.c (finish_stmt_expr_expr): Add an explicit
4730 initialization to the last statement in the statement-expression.
4731 * (finish_stmt_expr): Adjust accordingly.
4733 2005-09-03 Mark Mitchell <mark@codesourcery.com>
4736 * decl2.c (mark_used): Always instantiate static data members
4737 initialized by constant expressions.
4738 * pt.c (instantiate_decl): Instantiate the initializers for static
4739 data members initialized by constant expressions.
4742 * semantics.c (expand_or_defer_fn): Do not call ggc_collect when
4743 finishing processing for a template function in a local class.
4745 2005-09-02 Mark Mitchell <mark@codesourcery.com>
4746 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
4747 around functions in local classes.
4749 2005-09-02 Mark Mitchell <mark@codesourcery.com>
4752 * parser.c (cp_parser_class_specifier): Push/pop GC contexts
4753 around functions in local classes.
4755 2005-08-31 Andrew Pinski <pinskia@physics.uc.edu>
4758 * decl2.c (cp_finish_file): If this is obj-c++ and we need a static
4759 init, call generate_ctor_or_dtor_function.
4761 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4764 * parser.c (cp_parser_lookup_name): Pass LOOKUP_COMPLAIN to
4765 lookup_name_real on final parse.
4767 2005-08-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4770 * semantics.c (qualified_name_lookup_error): Do not complain again
4773 2005-08-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4776 * parser.c (cp_parser_namespace_name): Move diagnostic for
4777 invalid namespace-name to here from ...
4778 * name-lookup.c (do_namespace_alias): ... here and ...
4779 (do_using_directive): ... here. Remove dead code.
4781 2005-08-28 Mark Mitchell <mark@codesourcery.com>
4784 * cp-tree.h (saved_scope): Add skip_evaluation.
4785 * decl.c (start_decl): Use DECL_INITIALIZED_IN_CLASS_P, not
4786 DECL_INITIAL, to determine whether or not a static data member was
4787 initialized in the class-specifier.
4788 (cp_finish_decl): Add comment.
4789 * init.c (integral_constant_value): Subtitute into the
4790 initializers for static data members in templates.
4791 * name-lookup.c (push_to_top_level): Save skip_evaluation.
4792 (pop_from_top_level): Restore it.
4793 * pt.c (instantiate_class_template): Do not substitute into the
4794 intializers of static data members when instantiating a class.
4795 (regenerate_decl_from_template): Simplify.
4796 (instantiate_decl): Tidy. Substitute into the initializer for a
4797 static data member even when the definition of the data member is
4800 2005-08-26 Mark Mitchell <mark@codesourcery.com>
4803 * pt.c (uses_template_parms): Handle IDENTIFIER_NODE.
4804 (type_dependent_expression_p): Allow BASELINKs whose associated
4805 functions are simply a FUNCTION_DECL.
4808 * cp-tree.h (build_vec_init): Adjust prototype.
4809 * init.c (perform_member_init): Adjust call to build_vec_init.
4810 (build_aggr_init): Likewise.
4811 (build_new_1): Do not call build_default_init for array types.
4812 (build_vec_init): Add explicit_default_init_p parameter. Perform
4813 default initialization of vector elements when set.
4814 * typeck.c (build_modify_expr): Adjust call to build_vec_init.
4816 2005-08-25 Nathan Sidwell <nathan@codesourcery.com>
4819 * typeck.c (build_x_unary_op): Make sure OFFSET_REF is not for a
4822 2005-08-24 Nathan Sidwell <nathan@codesourcery.com>
4825 * parser.c (cp_lexer_peek_nth_token): Relax assert.
4827 2005-08-23 Nathan Sidwell <nathan@codesourcery.com>
4830 * pt.c (tsubst_qualified_id): A SCOPE_REF can still remain.
4832 2005-08-22 James E Wilson <wilson@specifix.com>
4834 PR tree-optimization/23426
4835 * decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE for
4838 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4841 * pt.c (push_template_decl_real): Return error_mark_node if the
4842 number of template parameters does not match previous definition.
4844 2005-08-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4847 * decl.c (require_complete_types_for_parms): Mark incomplete types
4850 2005-08-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4852 * parser.c (cp_parser_nth_token_starts_template_argument_list_p):
4853 Fix typo in leading comment.
4855 2005-08-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4857 * name-lookup.c, ptree.c: Delete HOST_PTR_PRINTF.
4859 2005-08-15 Fariborz Jahanian <fjahanian@apple.com>
4861 * cp-tree.h (can_convert_arg, fn_type_unification): New argument.
4862 * call.c (add_template_candidate_real): Pass down 'flags' to
4863 fn_type_unification.
4864 (can_convert_arg): New 'flags' argument. Pass it to call to
4865 implicit_conversion instead of LOOKUP_NORMAL.
4866 (can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
4867 * class.c (resolve_address_of_overloaded_function): Ditto.
4868 (resolve_address_of_overloaded_function): Ditto.
4869 * decl.c (reshape_init, check_default_argument): Ditto.
4870 * typeck.c (build_ptrmemfunc): Ditto.
4871 * pt.c (type_unification_real): Add 'flags' argument.
4872 (fn_type_unification): Pass 'flags' to type_unification_real.
4873 (type_unification_real): Pass new 'flags' argument to call to
4876 2005-08-12 Giovanni Bajo <giovannibajo@libero.it>
4877 Nathan Sidwell <nathan@codesourcery.com>
4881 * pt.c (unify) <METHOD_TYPE>: Check this-pointer cv-qualifiers
4884 2005-08-12 Nathan Sidwell <nathan@codesourcery.com>
4887 Revert my 2005-07-08 patch
4888 * pt.c (type_unification_real): Remove is_method_argument and
4890 (fn_type_unification, unify): Adjust type_unification_real calls.
4892 2005-08-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4895 * decl2.c (grokfield): Check that method is not static before
4898 2005-08-11 Nathan Sidwell <nathan@codesourcery.com>
4901 * name-lookup.c (pushtag): Process the template type before
4902 altering the identifier lookup fields. Remove unreachable code
4903 creating an empty stub decl.
4905 2005-08-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4908 * decl.c (grokdeclarator): Reset storage_class after error.
4910 2005-08-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4913 * init.c (build_new_1): Check for empty candidate list.
4915 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4918 * pt.c (tsubst) <case METHOD_TYPE>: Check for error_mark_node
4919 before calling build_exception_variant.
4921 2005-08-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4924 * pt.c (tsubst_decl) <case TEMPLATE_DECL>: Return ERROR_MARK_NODE
4925 if substitution of template args did not succeed.
4927 2005-08-06 Michael Matz <matz@suse.de>
4929 * method.c (use_thunk): Call init_insn_lengths.
4931 2005-08-05 James A. Morrison <phython@gcc.gnu.org>
4934 * name-lookup.c (cp_emit_debug_info_for_using): Do nothing if
4935 sorrycount or errorcount are nonzero.
4937 2005-08-05 Mark Mitchell <mark@codesourcery.com>
4939 * name-lookup.c (pushtag): Remove accidental commit from:
4940 2004-12-21 Mark Mitchell <mark@codesourcery.com>
4942 * decl.c (grokdeclarator): Return error_mark_node, not
4943 void_type_node, to indicate errors.
4944 * parser.c (cp_parser_template_parameter_list): Robustify.
4945 (cp_parser_template_parameter): Likewise.
4947 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
4949 * class.c, decl.c, name-lookup.c, pt.c, typeck.c, typeck2.c:
4952 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
4954 * method.c: Fix a comment typo.
4956 2005-07-28 Mark Mitchell <mark@codesourcery.com>
4959 * call.c (add_builtin_candidate): Adjust for changes in
4960 representation of pointer-to-member types.
4962 2005-07-28 Mike Stump <mrs@apple.com>
4964 * pt.c (check_explicit_specialization): Add visibility logic.
4965 (lookup_template_class): Likewise.
4966 (instantiate_class_template): Likewise.
4968 2005-07-27 Devang Patel <dpatel@apple.com>
4970 * name-lookup.c (pushtag): Do no set DECL_IGNORED_P bit.
4972 2005-07-25 Ian Lance Taylor <ian@airs.com>
4974 * ptree.c (cxx_print_identifier): Print a leading space if the
4977 2005-07-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4979 * call.c (convert_for_arg_passing): Check function pointers when
4980 -Wmissing-format-attribute is activated.
4981 * typeck.c (convert_for_assignment): Likewise.
4983 2005-07-22 Manfred Hollstein <mh@suse.com>
4985 * parser.c (cp_parser_declaration): Fix unitialised warnings.
4987 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
4989 * class.c (build_base_path): Fix typo.
4991 2005-07-21 Andrew Pinski <pinskia@physics.uc.edu>
4994 * class.c (build_base_path): Convert BINFO_OFFSET to the correct type.
4996 2005-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
4998 * call.c: Fix comment typo(s).
4999 * cxx-pretty-print.h: Likewise.
5000 * name-lookup.c: Likewise.
5001 * parser.c: Likewise.
5003 2005-07-20 Douglas Gregor <doug.gregor@gmail.com>
5006 * semantics.c (perform_koenig_lookup): For dependent calls, just
5007 return the set of functions we've found so far. Later, it will be
5008 augmented by those found through argument-dependent lookup.
5009 * name-lookup.c (lookup_arg_dependent): Implement DR 164 by removing
5010 the optimization that skips namespaces where the functions were
5013 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
5015 Make CONSTRUCTOR use VEC to store initializers.
5016 * call.c (convert_default_arg): Update call to digest_init.
5017 * class.c (dump_class_hierarchy, dump_array): Update to cope with
5018 VEC in CONSTRUCTOR_ELTS.
5019 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Likewise.
5020 (finish_compound_literal, digest_init): Update declaration.
5021 * decl.c (struct reshape_iter): New data type.
5022 (reshape_init_array): Rename to...
5023 (reshape_init_array_1): Update to cope with VEC in CONSTRUCTOR_ELTS.
5024 (reshape_init): Rewrite from scratch. Split parts into...
5025 (reshape_init_array, reshape_init_vector, reshape_init_class,
5026 reshape_init_r): New functions.
5027 (check_initializer): Update call to reshape_init. Remove obsolete
5029 (initialize_artificial_var, cp_complete_array_type): Update to cope
5030 with VEC in CONSTRUCTOR_ELTS.
5031 * decl2.c (grokfield): Update calls to digest_init.
5032 (mark_vtable_entries): Update to cope with VEC in CONSTRUCTOR_ELTS.
5033 * error.c (dump_expr_init_vec): New function.
5034 (dump_expr): Use dump_expr_init_vec.
5035 * init.c (build_zero_init, build_vec_init): Update to cope with VEC
5036 in CONSTRUCTOR_ELTS.
5037 (expand_default_init): Update call to digest_init.
5038 * parser.c (cp_parser_postfix_expression): Use a VEC for the
5040 (cp_parser_initializer_list): Build a VEC of initializers.
5041 * pt.c (tsubst_copy, tsubst_copy_and_build): Update to cope with VEC
5042 in CONSTRUCTOR_ELTS.
5043 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer,
5044 ptm_initializer, class_initializer, get_pseudo_ti_init): Use
5045 build_constructor_from_list instead of build_constructor.
5046 * semantics.c (finish_compound_literal): Update call to digest_init.
5047 * tree.c (stabilize_init): Update to cope with VEC in
5049 * typeck.c (build_ptrmemfunc1): Likewise.
5050 * typeck2.c: (cxx_incomplete_type_error, split_nonconstant_init_1):
5052 (store_init_value): Use build_constructor_from_list and update call
5054 (digest_init): Rewrite.
5055 (process_init_constructor): Rewrite from scratch. Split into...
5056 (process_init_constructor_array, picflag_from_initializer,
5057 process_init_constructor_record, process_init_constructor_union):
5059 (PICFLAG_ERRONEOUS, PICFLAG_NOT_ALL_CONSTANT, PICFLAG_NOT_ALL_SIMPLE):
5061 (build_functional_cast): Use build_constructor_from_list instead of
5064 2005-07-18 Mark Mitchell <mark@codesourcery.com>
5067 * cp-tree.h (instantiate_decl): Change prototype.
5068 * decl2.c (mark_used): Adjust accordingly.
5069 * pt.c (do_decl_instantiation): Likewise.
5070 (instantiate_class_member): Likewise.
5071 (instantiate_decl): Rename undefined_ok as expl_inst_class_mem_p.
5072 Clear DECL_INTERFACE_KNOWN for an explicitly instantiated template
5073 that has no definition available.
5074 (instantiate_pending_templates): Adjust call to instantiate_decl.
5076 2005-07-17 Mark Mitchell <mark@codesourcery.com>
5079 * cp-tree.h (DECL_TEMPLATE_INFO): Improve documentation.
5080 * decl.c (duplicate_decls): Re-register template specializations
5081 for functions that have DECL_TEMLPLATE_INFO, even if they do not
5082 have DECL_TEMPLATE_INSTANTIATION set.
5084 2005-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5086 * call.c (diagnostic_fn_t): New.
5087 (build_temp, convert_like_real): Use diagnostic_fn_t.
5089 2005-07-15 Mark Mitchell <mark@codesourcery.com>
5092 * repo.c (repo_emit_p): Robustify.
5094 2005-07-14 Daniel Berlin <dberlin@dberlin.org>
5097 * tree.c (decl_linkage): Don't check DECL_COMDAT on CONST_DECL.
5099 2005-07-15 Mark Mitchell <mark@codesourcery.com>
5102 * call.c (implicit_conversion): Add c_cast_p parameter.
5103 (standard_conversion): Likewise. Allow conversions between
5104 differently-qualified pointer types when performing a C-style
5106 (add_function_candidate): Adjust callee.
5107 (build_builtin_candidate): Likewise.
5108 (build_user_type_conversion_1): Likewise.
5109 (conditional_conversion): Likewise.
5110 (can_convert_arg): Likewise.
5111 (can_convert_arg_bad): Likewise.
5112 (perform_implicit_conversion): Likewise.
5113 * cp-tree.h (comp_ptr_ttypes_const): Declare.
5114 * typeck.c (comp_ptr_ttypes_const): Give it external linkage.
5117 2005-07-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5118 Nathan Sidwell <nathan@codesourcery.com>
5121 * pt.c (tsubst_template_parms): Check for invalid non-type
5124 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
5126 * cp-lang.c (shadowed_var_for_decl, decl_shadowed_for_var_lookup,
5127 decl_shadowed_for_var_insert): Move over to cp-objcp-common.c.
5128 (cp_init_ts): Call init_shadowed_var_for_decl.
5129 Remove include of gt-cp-cp-lang.h.
5130 * cp-objcp-common.c (shadowed_var_for_decl,
5131 decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Moved from
5133 (init_shadowed_var_for_decl): New function to initialize
5134 shadowed_var_for_decl.
5135 Include gt-cp-cp-objcp-common.h.
5136 * Make-lang.in (gt-cp-lang.h): Remove.
5137 (gt-cp-cp-objcp-common.h): Add.
5138 (cp/cp-lang.o): Remove dependancy on gt-cp-lang.h.
5139 (cp/cp-objcp-common.o): Add dependancy on gt-cp-cp-objcp-common.h.
5140 * config-lang.in (gtfiles): Remove cp-lang.c and Add cp-objcp-common.c.
5141 * cp-tree (init_shadowed_var_for_decl): Add prototype.
5143 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
5145 * Make-lang.in: Add gt-cp-lang.h.
5147 * class.c (create_vtable_ptr): Stop setting DECL_ASSEMBLER_NAME on
5149 * config-lang.in: Add cp-lang.c to gtfiles.
5150 * cp-lang.c: Include hashtab.h.
5151 (cp_init_ts): New function.
5152 (LANG_HOOK_INIT_TS): Use macro.
5153 (decl_shadowed_for_var_lookup): New function.
5154 (decl_shadowed_for_var_insert): Ditto.
5155 * cp-tree.h (THUNK_FUNCTION_CHECK): Use decl_common.
5156 (NON_THUNK_FUNCTION_CHECK): Ditto.
5157 (DECL_NAMESPACE_ASSOCIATIONS): Use decl_non_common.
5158 (DECL_INIT_PRIORITY): Ditto.
5159 (DECL_HAS_SHADOWED_FOR_VAR_P): Ditto.
5160 (DECL_SHADOWED_FOR_VAR): Use hashtable.
5161 (SET_DECL_SHADOWED_FOR_VAR): Ditto.
5162 * decl.c (duplicate_decls): Update for new/updated structures.
5163 (poplevel): Use SET_DECL_SHADOWED_FOR_VAR.
5164 * decl2.c (start_static_initialization_or_destruction): Deal with
5166 * pt.c (tsubst_decl): Check TS_DECL_WRTL before doing
5168 * tree.c (handle_init_priority_attribute): Handle priority.
5170 2005-07-08 Nathan Sidwell <nathan@codesourcery.com>
5173 * pt.c (type_unification_real): Add is_method argument. Use it
5174 for this pointer unification.
5175 (fn_type_unification): Adjust type_unification_real call.
5178 2005-07-07 Nathan Sidwell <nathan@codesourcery.com>
5180 * pt.c (type_unification_real): Remove allow_incomplete argument.
5181 Remove unreachable code.
5182 (fn_type_unification): Adjust call to type_unification_real.
5185 2005-07-05 Paolo Bonzini <bonzini@gnu.org>
5187 * Makefile.in (class.o, decl2.o): Adjust dependencies.
5188 * class.c: Include tree-dump.h.
5189 * decl2.c: Include tree-dump.h.
5191 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
5193 * dump.c: Use dump_string_field.
5195 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
5197 * cp-tree.h (GCC_DIAG_STYLE): #undef before defining. Change
5198 minimum GCC version for format checking to 4.1.
5200 2005-07-02 Kazu Hirata <kazu@codesourcery.com>
5202 * Make-lang.in (cc1plus-checksum.c): Use
5203 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
5205 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
5207 * name-lookup.c, parser.c: Use %q, %< and %> to quote in
5210 2005-07-02 Zack Weinberg <zack@codesourcery.com>
5211 Joseph S. Myers <joseph@codesourcery.com>
5213 * error.c (location_of): Add comment.
5214 (locate_error, cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
5215 * cp-tree.h (cp_error_at, cp_warning_at, cp_pedwarn_at): Remove.
5216 * call.c, class.c, decl.c, decl2.c, friend.c, init.c,
5217 name-lookup.c, parser.c, pt.c, search.c, semantics.c, typeck.c,
5218 typeck2.c: Use '+' flag instead of %J, cp_error_at, cp_warning_at
5219 or cp_pedwarn_at. Mark up some diagnostic strings with N_.
5221 2005-06-30 Daniel Berlin <dberlin@dberlin.org>
5223 * decl.c (require_complete_types_for_parms): Call relayout_decl
5224 instead of layout_decl.
5226 2005-06-30 Zack Weinberg <zack@codesourcery.com>
5227 Jakub Jelinek <jakub@redhat.com>
5229 * cp-lang.c: No need to include cxx-pretty-print.h.
5230 * error.c (cp_printer): Update signature. No need to process
5232 (print_instantiation_partial_context): Output last newline
5233 with pp_base_newline.
5234 * Make-lang.in: Update dependencies.
5236 2005-06-30 Steven Bosscher <stevenb@suse.de>
5238 * decl.c (start_decl): Replace DECL_THREAD_LOCAL with
5239 DECL_THREAD_LOCAL_P.
5240 (cp_finish_decl): Likewise.
5241 (grokvardecl): Set the default DECL_TLS_MODEL here.
5243 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
5245 * cvt.c (ocp_convert): Use invalid_conversion hook.
5246 * typeck.c (build_binary_op): Use invalid_binary_op hook.
5247 (build_unary_op): Use invalid_unary_op hook.
5249 2005-06-28 Paul Brook <paul@codesourcery.com>
5251 * Make-lang.in (cp/except.o): Depend on $(TARGET_H)
5252 * except.c: Include target.h.
5253 (init_exception_processing): Initialize unwind_resume_libfunc.
5254 * doc/tm.texi: Document TARGET_ASM_TTYPE
5256 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5258 * call.c (build_over_call): Pass in named argument list to
5259 `check_function_arguments'.
5260 * typeck.c (build_function_call): Likewise.
5262 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5264 * cp-tree.h (lang_check_failed): Add noreturn attribute.
5266 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
5268 * all files: Update FSF address in copyright headers.
5270 2005-06-23 Jason Merrill <jason@redhat.com>
5273 * semantics.c (simplify_aggr_init_expr): Use
5274 CALL_EXPR_RETURN_SLOT_OPT, not CALL_EXPR_HAS_RETURN_SLOT_ADDR.
5276 2005-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5278 * pt.c (register_specialization): Remove superfluous assertion.
5280 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5282 * call.c (convert_like_real): Add format attribute.
5283 * typeck.c (check_for_casting_away_constness,
5284 build_static_cast_1): Likewise.
5285 * typeck2.c (readonly_error, cxx_incomplete_type_diagnostic):
5288 2005-06-17 Geoffrey Keating <geoffk@apple.com>
5291 * pt.c (type_unification_real): Apply template type deduction even
5292 to procedure parameters that are not dependent on a template
5295 2005-06-16 Nathan Sidwell <nathan@codesourcery.com>
5297 * rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
5299 (create_pseudo_type_info): First parameter is an int.
5301 2005-06-15 Nathan Sidwell <nathan@codesourcery.com>
5304 * error.c (dump_expr) <COMPONENT_REF case>: Check DECL_NAME is not
5307 * Make-lang.in: Reformat some long lines.
5308 (gt-cp-rtti.h): New target.
5309 (cp/rtti.o): Add dependency.
5310 * config-lang.in (gtfiles): Add cp/rtti.c.
5311 * cp-tree.h (CPTI_TI_DESC_TYPE, CPTI_BLTN_DESC_TYPE,
5312 CPTI_PTR_DESC_TYPE, CPTI_ARY_DESC_TYPE, CPTI_FUNC_DESC_TYPE,
5313 CPTI_ENUM_DESC_TYPE, CPTI_CLASS_DESC_TYPE,
5314 CPTI_SI_CLASS_DESC_TYPE, CPTI_VMI_CLASS_DESC_TYPE,
5315 CPTI_PTM_DESC_TYPE, CPTI_BASE_DESC_TYPE): Remove.
5316 (ti_desc_type_node, bltn_desc_type_node, ptr_desc_type_node,
5317 ary_desc_type_node, func_desc_type_node, enum_desc_type_node,
5318 class_desc_type_node, si_class_desc_type_node,
5319 vmi_class_desc_type_node, ptm_desc_type_node,
5320 base_desc_type_node): Remove.
5321 * decl.c: Adjust documentation of global trees.
5322 * rtti.c (TINFO_PSEUDO_TYPE, TINFO_VTABLE_DECL,
5323 TINFO_REAL_NAME): Remove.
5324 (struct tinfo_s): New.
5325 (enum tinfo_kind): New.
5327 (get_tinfo_decl): Adjust use of tinfo descriptor.
5328 (tinfo_base_init, generic_initializer, ptr_initializer,
5329 ptm_initializer, class_initializer): Likewise.
5330 (get_pseudo_ti_init): Take descriptor index. Adjust.
5331 (create_pseudo_type_info): Likewise.
5332 (get_pseudo_ti_desc): Return descriptor index. Adjust.
5333 (create_tinfo_types): Adjust use of create_pseudo_type_info.
5334 (emit_tinfo_decl): Adjust use of tinfo descriptor.
5336 2005-06-14 Roger Sayle <roger@eyesopen.com>
5338 * decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST.
5340 2005-06-13 Geoffrey Keating <geoffk@apple.com>
5342 * Make-lang.in (c++.install-man): Doesn't really depend on installdirs.
5343 (rule for installing g++.1 manpage): Does depend on installdirs.
5345 2005-06-13 Nathan Sidwell <nathan@codesourcery.com>
5348 * decl.c (cp_finish_decl): Clear runtime runtime initialization if
5349 in-class decl's initializer is bad.
5352 * parser.c (struct cp_parser): Document that scope could be
5354 (cp_parser_diagnose_invalid_type_name): Cope with error_mark for
5356 (cp_parser_nested_name_specifier): Return NULL_TREE on error.
5357 (cp_parser_postfix_expression): Deal with null or error_mark
5359 (cp_parser_elaborated_type_specifier): Adjust
5360 cp_parser_nested_name_specifier call.
5362 * parser (cp_parser_skip_to_end_of_block_or_statement): Cleanup.
5364 2005-06-12 Roger Sayle <roger@eyesopen.com>
5367 * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types.
5368 Treat CONVERT_EXPR identically to NOP_EXPR.
5370 2005-06-10 Aldy Hernandez <aldyh@redhat.com>
5373 * cvt.c (build_expr_type_conversion): Same.
5374 * typeck.c (build_binary_op): Handle vectors.
5375 (common_type): Same.
5376 (type_after_usual_arithmetic_conversions): Same.
5378 2005-06-08 Nathan Sidwell <nathan@codesourcery.com>
5381 * cp-tree.def (USING_DECL): Update documentation.
5382 * cp-tree.h (DECL_DEPENDENT_P): New.
5383 (USING_DECL_DECLS, USING_DECL_SCOPE): New.
5384 * class.c (handle_using_decl): Move most of the processing to ...
5385 * name-lookup.c (do_class_using_decl): ... here. Make stricter.
5386 (push_using_decl): Use USING_DECL_SCOPE.
5387 (cp_emit_debug_info_for_using): Make extern.
5388 * cxx-pretty-print.c (pp_cxx_statement) <USING_DECL case>: Adjust.
5389 * name-lookup.h (cp_emit_debug_info_for_using): Declare.
5390 * pt.c (tsubst_decl) <USING_DECL case>: Use do_class_using_decl
5392 (tsubst_expr): Use USING_DECL_SCOPE.
5393 * search.c (lookup_field_1): Use DECL_DEPENDENT_P.
5394 * semantics.c (finish_member_declaration): Likewise.
5396 2005-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5399 * pt.c (tsubst): Reject pointer-to-member of type void.
5402 * parser.c (cp_parser_label_declaration): Deal with invalid/missing
5405 2005-06-07 Nathan Sidwell <nathan@codesourcery.com>
5407 * cp-tree.def (DEFAULT_ARG): Adjust documentation.
5408 * cp-tree.h (DEFARG_INSTANTIATIONS): New.
5409 (struct tree_default_arg): Add instantiations member.
5410 * parser.c (cp_parser_late_parsing_default_args): Adjust to use a
5412 * pt.c (tsubst_arg_types): Likewise.
5414 * parser.c (cp_parser_late_parsing_default_args): Fix overeager
5415 assert in previous patch.
5417 2005-06-06 Jakub Jelinek <jakub@redhat.com>
5419 * error.c (locate_error): Use gmsgid instead of msgid for argument
5421 (cp_error_at, cp_warning_at, cp_pedwarn_at): Likewise.
5423 2005-06-06 Nathan Sidwell <nathan@codesourcery.com>
5426 * cp-tree.def (DEFAULT_ARG): Document TREE_CHAIN use.
5427 * parser.c (cp_parser_late_parsing_default_args): Propagate parsed
5428 argument to any early instantiations.
5429 * pt.c (tsubst_arg_types): Chain early instantiation of default arg.
5432 * cp-tree.h (add_method): Add using_decl parameter.
5433 * class.c (add_method): Add using_decl parameter. Adjust error
5435 (handle_using_decl): Pass the using decl to add_method.
5436 (clone_function_decl): Adjust add_member calls.
5437 * decl2.c (check_classfn): Likewise.
5438 * method.c (lazily_declare_fn): Likewise.
5439 * semantics.c (finish_member_declaration): Likewise.
5441 * method.c (synthesize_method): Use inform, not warning.
5443 2005-06-06 Hans-Peter Nilsson <hp@axis.se>
5445 * config-lang.in (target_libs): Remove target-gperf.
5447 2005-06-05 Mark Mitchell <mark@codesourcery.com>
5450 * cp-tree.h (DECL_IS_BUILTIN_CONSTANT_P): New macro.
5451 * parser.c (cp_parser_postfix_expression): Allow non-constant
5452 expressions as arguments to __builtin_constant_p.
5453 * tree.c (builtin_valid_in_constant_expr_p): Use
5454 DECL_IS_BUILTIN_CONSTANT_P.
5456 2005-06-03 Mark Mitchell <mark@codesourcery.com>
5459 * typeck.c (casts_away_constness_r): Do not drop cv-qualifiers on
5460 the pointed-to type for a pointer-to-member.
5463 * cp-tree.h (grok_op_properties): Remove friendp parameter.
5464 * decl.c (grokfndecl): Adjust call.
5465 (grok_op_properties): Determine the class of which the function is
5466 a member by looking at its DECL_CONTEXT, not current_class_type.
5467 * pt.c (tsubst_decl): Adjust call to grok_op_properties.
5469 2005-06-02 Nathan Sidwell <nathan@codesourcery.com>
5471 * method.c (synthesize_method): Add addtional arg to warning call.
5474 * Make-lang.in (method.o): Add diagnostic.h
5475 * decl.c (start_preparsed_function): Use decl's location for file
5477 * decl2.c (cp_finish_file): Set input_location before synthesizing
5479 (mark_used): When deferring a synthesized function, save current
5480 location. Do not set function's location when actually
5482 * method.c: #include diagnostic.h.
5483 (synthesize_method): Set the functions source location. Show
5484 needed location if errors are emitted.
5486 * decl.c (start_decl): Simplify specialization handling. Remove
5487 unneeded CLASSTYPE_TEMPLATE_INSTANTIATION check.
5488 * mangle.c (discriminator_for_local_entity): Use VEC_index.
5491 * decl.c (duplicate_decls): Copy all of DECL_USE_TEMPLATE.
5494 * name-lookup.c (pushtag): Push local class even in a template.
5496 2005-05-31 Nathan Sidwell <nathan@codesourcery.com>
5499 * init.c (integral_constant_value): Check the type of the
5500 initializer, not the decl.
5502 2005-05-30 Mark Mitchell <mark@codesourcery.com>
5505 * name-lookup.c (do_nonmember_using_decl): Ignore builtin
5506 functions, even when the used name is not a function.
5508 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
5510 * operators.def, optimize.c: Update copyright.
5512 2005-05-28 Mark Mitchell <mark@codesourcery.com>
5515 * call.c (standard_conversion): Permit conversions to complex
5516 types if conversion to the corresponding scalar type would be
5520 * method.c (implicitly_declare_fn): Clear processing_template_decl
5521 when generating implicit declaration.
5523 2005-05-27 Mark Mitchell <mark@codesourcery.com>
5526 * typeck.c (get_member_function_from_ptrfunc): Do not attempt
5527 conversions to base classes of incomplete types.
5529 2005-05-27 Ian Lance Taylor <ian@airs.com>
5531 * semantics.c (add_stmt): Add C++ frontend specific version.
5532 * cp-tree.h (STMT_IS_FULL_EXPR_P): Define.
5533 (stmts_are_full_exprs_p): Declare.
5535 2005-05-27 Roger Sayle <roger@eyesopen.com>
5536 Giovanni Bajo <giovannibajo@gcc.gnu.org>
5538 * cp-tree.def (UNARY_PLUS_EXPR): New C++ unary tree code.
5539 * parser.c (cp_parser_unary_expression): Use UNARY_PLUS_EXPR instead
5541 (cp_parser_unary_expression): Likewise.
5542 * typeck.c (build_unary_op): Likewise.
5543 * call.c (add_builtin_candidate, build_new_op): Likewise.
5544 * error.c (dump_expr): Likewise.
5545 * pt.c (tsubst_copy, tsubst_copy_and_build): Likewise.
5546 * decl.c (ambi_op_p, grok_op_properties): Likewise.
5547 * dump.c (dump_op): Likewise.
5548 * lex.c (init_operators): Likewise.
5549 * operators.def ("+"): Likewise.
5550 * cp-gimplify.c (cp_gimplify_expr): Handle UNARY_PLUS_EXPR like a
5551 conversion, if the result and argument types differ.
5552 * tree.c (fold_if_not_in_template): Fold UNARY_PLUS_EXPR much
5553 like a NOP_EXPR when !processing_template_decl.
5555 * cxx-pretty-print.c (pp_cxx_cast_expression): Prototype.
5556 (pp_cxx_unary_expression): Handle new UNARY_PLUS_EXPR tree code.
5558 2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
5561 * typeck.c (get_delta_difference): Cope with incomplete but equal
5562 classes. Reorder if.
5565 * parser.c (cp_parser_late_parsing_for_member): Disable access
5566 checking for template functions.
5568 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5571 * pt.c (redeclare_class_template): Change error message according
5572 to coding conventions.
5574 2005-05-26 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5576 * call.c (build_op_delete_call): Fix quoting in error message.
5578 2005-05-25 Richard Henderson <rth@redhat.com>
5581 * cp-tree.h (make_alias_for): Declare.
5582 * decl2.c (build_java_method_aliases): New.
5583 (cp_finish_file): Call it.
5584 * method.c (make_alias_for): Split out from ...
5585 (make_alias_for_thunk): ... here.
5587 2005-05-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
5590 * semantics.c (finish_id_expression): Fix quoting in error message.
5592 2005-05-25 DJ Delorie <dj@redhat.com>
5594 * decl.c (duplicate_decls): Move warning control from if() to
5596 * name-lookup.c (parse_using_directive): Likewise.
5597 * parser.c (cp_parser_elaborated_type_specifier): Likewise.
5598 (cp_parser_init_declarator): Likewise.
5599 * tree.c (handle_com_interface_attribute): Likewise.
5601 2005-05-24 Ziemowit Laski <zlaski@apple.com>
5603 * class.c (layout_class_type): Do not issue C++ ABI warnings
5605 * decl.c (objc_mark_locals_volatile): Streamline by calling
5606 objc_volatilize_decl().
5607 * parser.c (cp_parser_objc_message_expression): Allow simple
5608 type specifiers (instead of merely type names) as message
5610 * pt.c (template_args_equal): Do not call objc_comptypes().
5611 * typeck.c (composite_pointer_type): If both pointers are
5612 ObjC-esque, arbitrarily choose the first; do not call
5614 (comptypes): Do not call objc_comptypes().
5615 (convert_for_assignment): Call objc_compare_types().
5616 (comp_ptr_ttypes_real): Call objc_type_quals_match() before
5617 concluding that types do not match.
5619 2005-05-24 Andrew Pinski <pinskia@physics.uc.edu>
5622 * optimize.c (update_cloned_parm): Copy the TYPE also from the
5625 2005-05-19 Jakub Jelinek <jakub@redhat.com>
5628 * decl.c (grokdeclarator): Fix "storage class specified for"
5631 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
5633 * parser.c: Fix comment typos.
5635 2005-05-18 Geoffrey Keating <geoffk@apple.com>
5637 * Make-lang.in (cc1plus-dummy): New.
5638 (cc1plus-checksum.c): New.
5639 (cc1plus-checksum.o): New.
5640 (cc1plus): Add cc1plus-checksum.o.
5642 2005-05-17 H.J. Lu <hongjiu.lu@intel.com>
5645 * decl2.c (determine_visibility): Don't set visibility to
5646 hidden if it has been set explicitly by user.
5648 2005-05-17 Ziemowit Laski <zlaski@apple.com>
5649 Mike Stump <mrs@apple.com>
5651 Yet more Objective-C++...
5653 * cp-objcp-common.h (cxx_get_alias_set): Move from
5655 (cxx_warn_unused_global_decl): Likewise.
5656 (cp_expr_size): Likewise.
5657 (cp_tree_size): Likewise.
5658 (cp_var_mod_type_p): Likewise.
5659 (cxx_initialize_diagnostics): Likewise.
5660 (cxx_types_compatible_p): Likewise.
5661 * cp-tree.h: to here.
5663 * lex.c (D_OBJC): Add.
5664 (init_reswords): Add.
5665 * Make-lang.in (cp/pt.o): Add cp/cp-objcp-common.h.
5666 * parser.c: Add c-common.h include.
5667 * pt.c: Add c-common.h and cp-objcp-common.h includes.
5668 (template_args_equal): Use objc_comptypes as well.
5669 (tsubst_copy_and_build): Use objcp_tsubst_copy_and_build as well.
5670 * semantics.c (do_poplevel): Remove static.
5672 * decl.c (objc_mark_locals_volatile): Don't change decls that are
5674 * decl2.c (generate_ctor_or_dtor_function): Add code to initialize
5675 Objective C++ early enough.
5676 * lex.c (struct resword reswords): Add Objective-C++ support.
5677 * parser.c (cp_lexer_get_preprocessor_token): Add Objective-C++.
5678 (cp_parser_objc_message_receiver): Add.
5679 (cp_parser_objc_message_args): Likewise.
5680 (cp_parser_objc_message_expression): Likewise.
5681 (cp_parser_objc_encode_expression): Likewise.
5682 (cp_parser_objc_defs_expression): Likewise.
5683 (cp_parser_objc_protocol_expression): Likewise.
5684 (cp_parser_objc_selector_expression): Likewise.
5685 (cp_parser_objc_expression): Likewise.
5686 (cp_parser_objc_visibility_spec): Likewise.
5687 (cp_parser_objc_method_type): Likewise.
5688 (cp_parser_objc_protocol_qualifiers): Likewise.
5689 (cp_parser_objc_typename): Likewise.
5690 (cp_parser_objc_selector_p): Likewise.
5691 (cp_parser_objc_selector): Likewise.
5692 (cp_parser_objc_method_keyword_params): Likewise.
5693 (cp_parser_objc_method_tail_params_opt): Likewise.
5694 (cp_parser_objc_interstitial_code): Likewise.
5695 (cp_parser_objc_method_signature): Likewise.
5696 (cp_parser_objc_method_prototype_list): Likewise.
5697 (cp_parser_objc_method_definition_list): Likewise.
5698 (cp_parser_objc_class_ivars): Likewise.
5699 (cp_parser_objc_identifier_list): Likewise.
5700 (cp_parser_objc_alias_declaration): Likewise.
5701 (cp_parser_objc_class_declaration): Likewise.
5702 (cp_parser_objc_protocol_declaration): Likewise.
5703 (cp_parser_objc_protocol_refs_opt): Likewise.
5704 (cp_parser_objc_superclass_or_category): Likewise.
5705 (cp_parser_objc_class_interface): Likewise.
5706 (cp_parser_objc_class_implementation): Likewise.
5707 (cp_parser_objc_end_implementation): Likewise.
5708 (cp_parser_objc_declaration): Likewise.
5709 (cp_parser_objc_try_catch_finally_statement): Likewise.
5710 (cp_parser_objc_synchronized_statement): Likewise.
5711 (cp_parser_objc_throw_statement): Likewise.
5712 (cp_parser_objc_statement): Likewise.
5713 (cp_parser_primary_expression): Add Objective-C++.
5714 (cp_parser_statement): Likewise.
5715 (cp_parser_declaration): Likewise.
5716 (cp_parser_simple_type_specifier): Likewise.
5717 (cp_parser_type_name): Likewise.
5718 (cp_parser_parameter_declaration_list): Likewise.
5719 (cp_parser_member_declaration) Likewise.
5720 * tree.c: Include debug.h.
5721 * typeck.c (composite_pointer_type): Add Objective-C++ support.
5722 (finish_class_member_access_expr): Likewise.
5723 (build_function_call): Allow objc to rewrite FUNCTION_DECLs.
5724 (build_modify_expr): Allow objc to generate write barriers.
5726 * Make-lang.in (cp/tree.o): Add debug.h.
5727 * tree.c (lvalue_p_1, case CONST_DECL): Add.
5729 2005-05-18 Jan Hubicka <jh@suse.cz>
5731 * method.c: Include tree-pass.h
5732 (use_thunk): Lower body before expanding.
5734 2005-05-17 Jakub Jelinek <jakub@redhat.com>
5737 * decl.c (maybe_deduce_size_from_array_init): Call
5738 cp_apply_type_quals_to_decl after completing array type.
5740 2005-05-16 Richard Henderson <rth@redhat.com>
5742 * decl.c (build_library_fn_1): Move setting TREE_NOTHROW ...
5743 (build_library_fn): ... here.
5745 2005-05-12 Ian Lance Taylor <ian@airs.com>
5747 * cp-tree.h (cp_stmt_codes): Don't define.
5748 (statement_code_p): Declare.
5749 (STATEMENT_CODE_P): Define.
5750 * lex.c (statement_code_p): Define.
5751 (cxx_init): Use actual codes in stmt_codes initializer, not
5752 cp_stmt_codes macro. Initialize statement_code_p directly, rather
5753 than using INIT_STATEMENT_CODES.
5755 2005-05-09 Mark Mitchell <mark@codesourcery.com>
5757 * typeck.c (build_unary_op): Do not resort to address arithmetic
5758 when taking the address of a COMPONENT_REF.
5760 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
5762 * class.c (vtbl_init_data_s): Change the type of fns to
5764 (build_vtbl_initializer, add_vcall_offset, add_vcall_offset):
5765 Use VEC instead of VARRAY.
5767 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
5769 * mangle.c: Remove a reference to the MIPS -mint64 option.
5771 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
5773 * decl.c (wrapup_globals_for_namespace): Use VEC instead of
5775 * name-lookup.c (add_decl_to_level, begin_scope): Likewise.
5776 * name-lookup.h (cp_binding_level): Change the type of
5777 static_decls to VEC(tree,gc)*.
5779 * mangle.c (globals): Change the type of substitutions to
5781 (dump_substitution_candidates, add_substitution,
5782 find_substitution, finish_mangling, init_mangle): Use VEC
5785 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
5787 * decl2.c (spew_debug): Remove.
5789 * decl2.c (ssdf_decls, start_static_storage_duration_function,
5790 generate_ctor_or_dtor_function): Use VEC instead of VARRAY.
5792 * decl2.c (pending_statics, note_vague_linkage_var,
5793 cp_finish_file): Use VEC instead of VARRAY.
5794 (pending_statics_used): Remove.
5796 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
5798 * decl2.c (deferred_fns, note_vague_linkage_fn,
5799 cp_finish_file): Use VEC instead of VARRAY.
5801 2005-05-05 Mark Mitchell <mark@codesourcery.com>
5804 * pt.c (build_non_dependent_expr): Use is_overloaded_fn.
5806 2005-05-05 Kazu Hirata <kazu@cs.umass.edu>
5808 * pt.c: Fix a comment typo.
5810 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
5812 * cp-tree.h (language_function): Change the type of
5813 x_local_names to VEC.
5814 * decl.c (push_local_name): Adjust uses of local_names.
5816 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
5818 * friend.c, lex.c, mangle.c, repo.c: Update copyright.
5820 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
5822 * class.c (local_classes, init_class_processing): Use VEC
5824 * cp-tree.h (local_classes): Likewise.
5825 * mangle.c (discriminator_for_local_entity): Likewise.
5826 * name-lookup.c (pushtag): Likewise.
5828 * class.c (current_lang_depth, push_lang_context,
5829 pop_lang_context): Use VEC instead of VARRAY.
5830 * cp-tree.h (saved_scope): Use VEC for lang_base instead of
5832 * name-lookup.c (push_to_top_level): Use VEC instead of
5835 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
5837 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin
5838 for BUILT_IN_MD built-ins.
5840 2005-05-02 Michael Matz <matz@suse.de>
5843 * cp-tree.h (cp_tree_index): Remove CPTI_NULL, to be defined in C
5845 (null_node): Remove.
5846 * lex.c (cxx_init): Move null_node initialisation to C common frontend.
5848 2005-04-25 Ian Lance Taylor <ian@airs.com>
5850 * cp-tree.def: Add EXPR_STMT.
5851 * cp-tree.h (cp_stmt_codes): Add EXPR_STMT.
5852 (EXPR_STMT_EXPR): Define.
5853 * cp-gimplify.c: Include "flags.h".
5854 (gimplify_expr_stmt): New static function.
5855 (cp_gimplify_expr): Handle EXPR_STMT.
5856 * cxx-pretty-print.c (pp_cxx_statement): Use pp_cxx_expression
5857 rather than pp_expression.
5858 (pp_cxx_statement): Handle EXPR_STMT.
5859 * dump.c (cp_dump_tree): Handle EXPR_STMT.
5860 * lex.c (cxx_init): Don't use c_common_stmt_codes in stmt_codes
5863 2005-04-25 Andrew Pinski <pinskia@physics.uc.edu>
5866 * rtti.c (ifnonnull): Cast the zero comparison operand
5867 to the correct type.
5869 2005-04-24 Jakub Jelinek <jakub@redhat.com>
5872 * class.c: Include cgraph.h.
5873 (cp_fold_obj_type_ref): Set node->local.vtable_method.
5874 * Make-lang.in (cgraph.o): Depend on $(CGRAPH_H).
5876 2005-04-12 Markus F.X.J. Oberhumer <markus@oberhumer.com>
5878 * mangle.c (write_builtin_type): Handle integer types which are
5879 not one of the shared integer type nodes and emit a "vendor
5880 extended builtin type" with an encoding in the form of "u5int96".
5882 2005-04-24 Ian Lance Taylor <ian@airs.com>
5884 * cp-tree.def (USING_STMT): Change class to tcc_statement.
5885 (TRY_BLOCK, EH_SPEC_BLOCK, HANDLER, CLEANUP_STMT): Likewise.
5886 (IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT): Likewise.
5887 (BREAK_STMT, CONTINUE_STMT, SWITCH_STMT): Likewise.
5889 2005-04-23 DJ Delorie <dj@redhat.com>
5891 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, friend.c,
5892 init.c, lex.c, mangle.c, method.c, name-lookup.c, parser.c,
5893 repo.c, rtti.c, tree.c, typeck.c, typeck2.c: Adjust warning()
5896 2005-04-22 Per Bothner <per@bothner.com>
5898 * decl.c (make_rtl_for_nonlocal_decl): Don't try get_fileinfo if
5899 input_filename is NULL, as it is for (say) __PRETTY_FUNCTION__.
5901 2005-04-22 Alexandre Oliva <aoliva@redhat.com>
5904 * name-lookup.c (push_overloaded_decl): Do not overload with
5905 non-duplicate anticipated built-in.
5907 2005-04-21 Kazu Hirata <kazu@cs.umass.edu>
5909 * cp-tree.h (THROW_NAME, AUTO_VTABLE_NAME, AUTO_TEMP_FORMAT,
5910 VTABLE_BASE, VTABLE_NAME_PREFIX, STATIC_NAME_FORMAT): Remove.
5912 2005-04-21 Nathan Sidwell <nathan@codesourcery.com>
5914 * cp-tree.h: Adjust for new VEC API.
5915 Define VEC(tree_pair_s,gc).
5916 (struct save_scope): Adjust.
5917 (struct lang_type_class): Adjust.
5918 (unemitted_tinfo_decls): Adjust.
5919 * class.c (add_method, resort_type_method_vec,
5920 finish_struct_methods, struct find_final_overrider_data,
5921 dfs_find_final_overrider_pre, find_final_overrider,
5922 get_vcall_index, warn_hidden, walk_subobject_offsets,
5923 check_methods, fixup_inline_methods, end_of_class,
5924 warn_about_ambiguous_bases, finish_struct, build_vtbl_initializer,
5925 add_vcall_offset): Adjust.
5926 * decl.c (xref_basetypes, finish_method): Adjust.
5927 * decl2.c (check_classfn): Adjust.
5928 * init.c (sort_mem_initializers, push_base_cleanups): Adjust.
5929 * method.c (do_build_copy_constructor): Adjust.
5930 * name-lookup.c (new_class_binding, store_binding,
5931 store_bindings, store_class_bindings): Adjust.
5932 * name-lookup.h: Define VEC(cxx_saved_binding,gc),
5933 VEC(cp_class_binding,gc).
5934 (struct cp_binding_level): Adjust.
5935 * parser.c: Define VEC(cp_token_position,heap).
5936 (struct cp_lexer): Adjust.
5937 (cp_lexer_new_main, cp_lexer_new_from_tokens, cp_lexer_destroy,
5938 cp_lexer_save_tokens): Adjust.
5939 * pt.c (retrieve_specialization,
5940 check_explicit_specialization): Adjust.
5941 * rtti.c (unemitted_tinfo_decls): Adjust.
5942 (init_rtti_processing, get_tinfo_decl, get_pseudo_ti_init,
5943 get_pseudo_ti_desc): Adjust.
5944 * search.c (dfs_access_in_type, lookup_conversion_operator,
5945 lookup_fnfields_1, dfs_walk_once, dfs_walk_once_accessible,
5946 dfs_get_pure_virtuals, lookup_conversions_r, binfo_for_vbase): Adjust.
5947 * semantics.c: Define VEC(deferred_access,gc).
5948 (push_deferring_access_checks): Adjust.
5949 * typeck2.c (abstract_virtuals_error): Adjust.
5951 2005-04-20 Ian Lance Taylor <ian@airs.com>
5953 * cp-tree.def: Add STMT_EXPR.
5954 * cp-tree.h (STMT_EXPR_NO_SCOPE): Define.
5955 (STMT_EXPR_STMT): Define.
5956 * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
5958 (pp_cxx_expression): Likewise.
5959 (pp_cxx_statement): Call pp_cxx_statement, not pp_statement.
5960 * dump.c (cp_dump_tree): Handle STMT_EXPR.
5962 2005-04-18 Kazu Hirata <kazu@cs.umass.edu>
5964 * decl.c (expand_static_init): Call build2 and build3 instead
5967 * cp-tree.h (VPTR_NAME, VPTR_NAME_P): Remove.
5969 2005-04-17 Ian Lance Taylor <ian@airs.com>
5971 * cp-tree.def: Add SIZEOF_EXPR, ARROW_EXPR and ALIGNOF_EXPR.
5972 * cxx-pretty-print.c (pp_cxx_postfix_expression): Handle
5974 (pp_cxx_unary_expression): Handle SIZEOF_EXPR and ALIGNOF_EXPR.
5975 (pp_cxx_expression): Handle ARROW_EXPR, SIZEOF_EXPR, and
5977 * typeck.c (cxx_sizeof_or_alignof_type): Update call to
5978 c_sizeof_or_alignof_type for change in parameter type.
5980 2005-04-16 Mark Mitchell <mark@codesourcery.com>
5983 * typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
5984 which sizeof/alignof is dependent, rather than just whether we are
5985 processing_template_decl.
5987 2005-04-17 Kazu Hirata <kazu@cs.umass.edu>
5989 * cp-tree.h (LOOKUP_GLOBAL): Remove.
5990 (LOOKUP_ONLYCONVERTING, DIRECT_BIND, LOOKUP_NO_CONVERSION,
5991 LOOKUP_DESTRUCTOR, LOOKUP_NO_TEMP_BIND, LOOKUP_PREFER_TYPES,
5992 LOOKUP_PREFER_NAMESPACES, LOOKUP_CONSTRUCTOR_CALLABLE): Adjust
5995 2005-04-15 Richard Henderson <rth@redhat.com>
5998 * semantics.c (finish_call_expr): Call resolve_overloaded_builtin.
6000 2005-04-15 Kazu Hirata <kazu@cs.umass.edu>
6002 * cp-tree.h (lang_type_class): Remove redefined. Move
6003 java_interface into where redefined was. Increment the width
6005 (TYPE_REDEFINED): Remove.
6007 2005-04-14 Kazu Hirata <kazu@cs.umass.edu>
6009 * cp-tree.h (SET_TMPL_ARG, ENUM_TI_TEMPLATE, ENUM_TI_ARGS,
6010 CLASSTYPE_TEMPLATE_LEVEL): Remove.
6012 2005-04-11 Mark Mitchell <mark@codesourcery.com>
6014 * decl2.c (determine_visibility): Don't use export_class_data.
6015 (import_export_decl): Honor TARGET_CXX_CLASS_DATA_ALWAYS_WEAK and
6016 TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY.
6018 2005-04-09 Kazu Hirata <kazu@cs.umass.edu>
6020 * cp-tree.h (cxx_alignof): Remove.
6022 * cp-tree.h (DECL_ARRAY_DELETE_OPERATOR_P): Remove.
6024 * cp-tree.h (EXCEPTION_CLEANUP_NAME, B_SET, B_CLR, B_TST,
6025 CONV_STATIC_CAST): Remove.
6027 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Remove.
6029 * cp-tree.h (VF_BINFO_VALUE, VF_BASETYPE_VALUE): Remove.
6031 * cp-tree.h (cp_deprecated): Remove.
6033 2005-04-08 Ian Lance Taylor <ian@airs.com>
6035 * cp-tree.def: Define FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
6036 CONTINUE_STMT, SWITCH_STMT.
6037 * cp-tree.h (cp_stmt_codes): Add FOR_STMT, WHILE_STMT, DO_STMT,
6038 BREAK_STMT, CONTINUE_STMT, SWITCH_STMT.
6039 (WHILE_COND, WHILE_BODY): Define.
6040 (DO_COND, DO_BODY): Define.
6041 (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Define.
6042 (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Define.
6043 * cp-gimplify.c (enum bc_t): Define.
6044 (struct cp_gimplify_ctx, ctxp): Define.
6045 (push_context, pop_context): New static functions.
6046 (begin_bc_block, finish_bc_block): New static functions.
6047 (build_bc_goto): New static function.
6048 (gimplify_cp_loop, gimplify_for_stmt): New static functions.
6049 (gimplify_while_stmt, gimplify_do_stmt): Likewise.
6050 (gimplify_switch_stmt): Likewise.
6051 (cp_gimplify_expr): Handle FOR_STMT, WHILE_STMT, DO_STMT,
6052 SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
6053 (cp_genericize): Call push_context and pop_context.
6054 * semantics.c (finish_break_stmt): Just call build_stmt
6055 (BREAK_STMT) rather than build_break_stmt.
6056 (finish_continue_stmt): Corresponding change.
6057 * decl.c (pop_switch): Update call to c_do_switch_warnings for new
6059 * cxx-pretty-print.c (pp_cxx_statement): Handle SWITCH_STMT,
6060 WHILE_STMT, DO_STMT, FOR_STMT, BREAK_STMT, CONTINUE_STMT.
6061 * dump.c (cp_dump_tree): Likewise.
6063 2005-04-08 Mark Mitchell <mark@codesourcery.com>
6066 * parser.c (cp_parser_type_specifier_seq): Add is_condition
6068 (cp_parser_new_type_id): Pass it.
6069 (cp_parser_condition): Likewise.
6070 (cp_parser_conversion_type_id): Likewise.
6071 (cp_parser_type_id): Likewise.
6072 (cp_parser_type_specifier_seq): In a condition, do not allow
6073 invalid type-specifier combinations.
6074 (cp_parser_exception_declaration): Adjust call to
6075 cp_parser_type_specifier_seq.
6077 * cp-tree.def (TINST_LEVEL): Document TINST_IN_SYSTEM_HEADER_P.
6078 * cp-tree.h (struct tinst_level): Add in_system_header_p.
6079 (TINST_IN_SYSTEM_HEADER_P): New macro.
6080 (make_tinst_level): Remove.
6081 * pt.c (lookup_template_class): Preserve DECL_IN_SYSTEM_HEADER on
6082 the instantiated class.
6083 (push_tinst_level): Do not use make_tinst_level. Set
6084 TINST_IN_SYSTEM_HEADER_P.
6085 (pop_tinst_level): Likewise.
6086 (instantiate_class_template): Set in_system_header.
6087 (instantiate_pending_templates): Likewise.
6088 * tree.c (make_tinst_level): Remove.
6090 2005-04-06 Joseph S. Myers <joseph@codesourcery.com>
6092 * decl.c (start_decl): Apply pending #pragma weak regardless of
6095 2005-04-06 Mark Mitchell <mark@codesourcery.com>
6098 * pt.c (regenerate_decl_from_template): Copy attributes for
6099 parameters from the pattern to the instantiation.
6101 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6104 * cp-tree.def (OFFSET_REF): Correct comments.
6105 * init.c (build_offset_ref): Remove misleading comment.
6106 * typeck.c (build_unary_op): Handle pointer-to-member creation
6107 here, rather than ...
6108 (unary_complex_lvalue): ... here.
6110 2005-04-06 Jason Merrill <jason@redhat.com>
6113 * tree.c (stabilize_init): Don't bother trying to stabilize
6114 something with no side-effects.
6116 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6119 * decl.c (grokdeclarator): Correct attribute handling.
6121 2005-04-05 Mark Mitchell <mark@codesourcery.com>
6124 * decl2.c (import_export_decl): Use non-COMDAT external linkage
6125 for virtual tables, typeinfo, etc. that will be emitted in only
6126 one translation unit on systems without weak symbols.
6128 2005-04-04 Mark Mitchell <mark@codesourcery.com>
6131 * parser.c (cp_parser_template_name): Fix thinko.
6133 2005-04-04 Nathan Sidwell <nathan@codesourcery.com>
6136 * method.c (use_thunk): Protect covariant pointer return
6137 adjustments from NULL pointers.
6139 2005-04-04 Jan Hubicka <jh@suse.cz>
6141 * decl2.c (finish_objects): Revert my previous patch.
6142 (cp_finish_file): Likewise.
6144 2005-04-03 Kazu Hirata <kazu@cs.umass.edu>
6146 * pt.c: Fix comment typos.
6148 2005-04-03 Nathan Sidwell <nathan@codesourcery.com>
6151 * pt.c (more_specialized_fn): Member functions are unordered wrt
6152 non-members. Conversion operators are unordered wrt other
6155 2005-04-01 Nathan Sidwell <nathan@codesourcery.com>
6157 * call.c (add_template_candidates_real): Remove length parameter
6158 from fn_type_unification call.
6159 * class.c (resolve_address_of_overloaded_function): Likewise
6160 * cp-tree.h (fn_type_unification): Remove length parameter.
6161 * pt.c (get_bindings_overload): Remove.
6162 (get_bindings_real): Rename to ...
6163 (get_bindings): ... here. Remove length and strict
6164 parameters. Change return type flag to boolean. Remove original
6165 forwarding function.
6166 (determine_specialization): Adjust get_bindings call.
6167 (fn_type_unification): Remove length parameter. Adjust.
6168 (type_unification_real): Remove length parameter. Adjust.
6169 (resolve_overloaded_unification): Adjust get_bindings call.
6170 (try_one_overload): Simplify confusing cascaded if control flow.
6171 (unify): Remove length paramter from type_unification_real call.
6172 (most_specialized_instantiation): Adjust get_bindings calls.
6173 (most_specialized): Likewise.
6175 2005-03-31 Nathan Sidwell <nathan@codesourcery.com>
6177 PR c++/19203, implement DR 214
6178 * call.c (joust): Use more_specialized_fn.
6179 * cp-tree.h (DEDUCE_ORDER): Remove.
6180 (more_specialized): Replace with ...
6181 (more_specialized_fn): ... this.
6182 * pt.c (maybe_adjust_types_for_deduction): Remove DEDUCE_ORDER
6184 (type_unification_real): Remove DEDUCE_ORDER case.
6185 (more_specialized): Replace with ...
6186 (more_specialized_fn): ... this. Implement DR 214.
6187 (most_specialized_instantiation): Use get_bindings_real directly.
6189 2005-03-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
6192 * call.c (build_new_op): Remove check for -Wsynth.
6194 2005-03-31 Jan Hubicka <jh@suse.cz>
6196 * decl2.c (finish_objects): Mark ctor as needed.
6197 (cp_finish_file): Output variables only in nonunit-at-a-time.
6199 2005-03-29 Richard Henderson <rth@redhat.com>
6202 * decl.c (cp_complete_array_type): Rename from complete_array_type.
6203 Use the new complete_array_type in c-common.c. Update all callers.
6204 * cp-tree.h (cp_complete_array_type): Update to match.
6206 2005-03-24 Geoffrey Keating <geoffk@apple.com>
6208 * typeck.c (build_static_cast_1): Allow scalar_cast between
6209 any integral, floating, or enumeration type.
6211 2005-03-24 Steven Bosscher <stevenb@suse.de>
6213 * typeck.c (comptypes): First determine if the types are compatible
6214 from a target-independent point of view. Check target attributes
6217 * class.c (build_base_path):
6218 (build_vbase_offset_vtbl_entries):
6219 (add_vcall_offset): Replace fold (buildN (...)) with fold_buildN.
6220 * error.c (dump_expr): Likewise.
6221 * init.c (build_zero_init, expand_cleanup_for_base,
6222 build_vec_delete_1): Likewise.
6223 * mangle.c (write_integer_cst): Likewise.
6224 * method.c (thunk_adjust): Likewise.
6225 * pt.c (convert_nontype_argument, tsubst, unify): Likewise.
6226 * tree.c (cxx_print_statistics, array_type_nelts_total): Likewise.
6227 * typeck.c (build_ptrmemfunc_access_expr,
6228 (get_member_function_from_ptrfunc): Likewise.
6230 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
6232 * cp-objcp-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
6234 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
6236 * cp-tree.h (perform_integral_promotions): Remove.
6237 (default_conversion): Add.
6239 2005-03-22 Mark Mitchell <mark@codesourcery.com>
6241 * parser.c (cp_parser_warn_min_max): New function.
6242 (cp_parser_binary_expression): Use it.
6243 (cp_parser_assignment_operator_opt): Likewise.
6244 (cp_parser_operator): Likewise.
6246 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6249 * decl.c (start_preparsed_function): Robustify.
6251 2005-03-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6254 * parser.c (cp_parser_class_head): Return NULL_TREE when
6255 encountering a redefinition.
6257 2005-03-22 Nathan Sidwell <nathan@codesourcery.com>
6261 * typeck.c (build_ptrmemfunc): Allow OFFSET_REF when processing a
6264 2005-03-21 Paolo Carlini <pcarlini@suse.de>
6268 * init.c (emit_mem_initializers): Don't crash on undefined
6271 2005-03-21 Paolo Carlini <pcarlini@suse.de>
6274 * semantics.c (finish_stmt_expr_expr): Return immediately
6275 if error_operand_p (expr).
6277 2005-03-21 Joseph S. Myers <joseph@codesourcery.com>
6279 * cp-tree.h (lvalue_or_else, lvalue_p): New.
6280 * typeck.c (lvalue_or_else): New. Call lvalue_error.
6282 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6285 * decl.c (decls_match): Compare context of VAR_DECL.
6287 2005-03-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6290 * parser.c (cp_parser_postfix_expression) <case RID_TYPENAME>:
6291 Check the return value of cp_parser_nested_name_specifier.
6293 2005-03-18 Dale Johannesen <dalej@apple.com>
6295 * cp/tree.c (cp_tree_equal): Handle SSA_NAME.
6297 2005-03-18 Paolo Carlini <pcarlini@suse.de>
6300 * parser.c (cp_parser_diagnose_invalid_type_name):
6301 Check TYPE_BINFO (current_class_type) before attempting
6302 to emit inform messages.
6304 2005-03-17 Paolo Carlini <pcarlini@suse.de>
6307 * cp-tree.h (grok_op_properties): Change return type to void.
6308 * decl.c (grok_op_properties): Return early - don't check the
6309 arity - in case of a static member or an operator that cannot
6310 be non-member; tidy a bit.
6312 2005-03-17 Nathan Sidwell <nathan@codesourcery.com>
6315 * pt.c (contains_dependent_cast_p): Remove.
6316 (fold_non_dependent_expr): Don't use it.
6317 (value_dependent_expression_p): Use a switch statement.
6318 reference_exprs can be dependent.
6320 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6324 * name-lookup.c (pushtag): Skip template parameter scope when
6325 scope is ts_global. Don't push tag into template parameter
6327 * pt.c (instantiate_class_template): Reorder friend class
6328 template substitution to handle non-dependent friend class
6329 that hasn't been previously declared.
6331 2005-03-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6333 Friend class name lookup 5/n
6335 * cp-tree.h (pushtag): Adjust declaration.
6336 * decl.c (lookup_and_check_tag): Call lookup_type_scope if
6338 (xref_tag): Adjust call to pushtag. Make hidden class visible.
6339 (start_enum): Adjust call to pushtag.
6340 * name-lookup.c (ambiguous_decl): Ignore hidden names.
6341 (qualify_lookup): Change return type to bool.
6342 (hidden_name_p): New function.
6343 (lookup_namespace_name, unqualified_namespace_lookup,
6344 lookup_name_real): Use it.
6345 (lookup_type_scope): Update comments.
6346 (maybe_process_template_type_declaration): Change parameter name
6347 from globalize to is_friend.
6348 (pushtag): Change globalize parameter of type int to tag_scope.
6349 Hide name if introduced by friend declaration.
6350 * name-lookup.h (hidden_name_p): Add declaration.
6351 * parser.c (cp_parser_lookup_name): Don't deal with hidden name
6353 * pt.c (push_template_decl_real): Make hidden class template
6355 (lookup_template_class, instantiate_class_template): Adjust call
6357 * semantics.c (begin_class_definition): Likewise.
6358 * rtti.c (init_rtti_processing, build_dynamic_cast_1,
6359 tinfo_base_init, emit_support_tinfos): Use ts_current instead of
6362 2005-03-13 Mark Mitchell <mark@codesourcery.com>
6365 * pt.c (determine_specialization): Reject non-specializations.
6367 2005-03-11 Per Bothner <per@bothner.com>
6369 * cp-tree.h (struct cp_declarator): New id_loc field.
6370 * cp/parser.c (cp_lexer_get_preprocessor_token): Set cp_token's
6371 location using c_lex_with_flags, instead of input_location.
6372 (cp_parser_direct_declarator): Set declarator's id_loc from
6375 2005-03-10 Jakub Jelinek <jakub@redhat.com>
6377 PR c++/18384, c++/18327
6378 * decl.c (reshape_init_array): Use UHWI type for max_index_cst
6379 and index. Convert max_index to size_type_node if it isn't
6380 host_integerp (, 1).
6382 2005-03-09 Mark Mitchell <mark@codesourcery.com>
6385 * pt.c (tsubst_decl): Apply array-to-pointer and
6386 function-to-pointer conversions to function arguments.
6387 (regenerate_decl_from_template): Likewise.
6389 2005-03-09 Paolo Carlini <pcarlini@suse.de>
6392 * decl.c (complete_array_type): In pedantic mode, return
6393 3 for an empty initializer list as the initializer for an
6394 array of unknown bound (8.5.1/4).
6395 (maybe_deduce_size_from_array_init): Fix final test to use
6398 2005-03-08 Nathan Sidwell <nathan@codesourcery.com>
6401 * pt.c (contains_dependent_cast_p): New.
6402 (fold_non_dependent_expr): Call it.
6404 2005-03-08 Mark Mitchell <mark@codesourcery.com>
6407 * cp-tree.h (target_type): Remove.
6408 * decl.c (layout_var_decl): Remove #if 0'd code.
6409 (cp_finish_decl): Remove dead code.
6410 * init.c (build_vec_init): When determining whether or not the
6411 element type has an asignment operator, look through all array
6413 * typeck.c (target_type): Remove.
6415 2005-03-07 Mark Mitchell <mark@codesourcery.com>
6417 * class.c (finish_struct_1): Do not warn about non-virtual
6418 destructors in Java classes.
6420 2005-03-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6423 * init.c (build_offset_ref): Don't build non-dependent SCOPE_REF.
6424 * pt.c (build_non_dependent_expr): Don't build NON_DEPENDENT_EXPR
6426 * typeck.c (build_x_unary_op): Don't build non-dependent SCOPE_REF.
6427 Also set PTRMEM_OK_P for NON_DEPENDENT_EXPR.
6428 (build_unary_op): Handle building ADDR_EXPR of OFFSET_REF inside
6431 2005-03-02 Alexandre Oliva <aoliva@redhat.com>
6433 * name-lookup.c (push_overloaded_decl): Don't error if the new
6434 decl matches the old one.
6435 * decl.c (redeclaration_error_message): Likewise.
6437 2005-03-01 Per Bothner <per@bothner.com>
6439 * decl.c (finish_function): Use SET_EXPR_LOCATION instead of
6440 unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
6442 2005-03-01 Nathan Sidwell <nathan@codesourcery.com>
6445 * class.c (update_vtable_entry_for_fn): Don't crash on invalid
6448 * cp-tree.g (THUNK_TARGET): Expand comment.
6449 * method.c (use_thunk): Make sure we also use the target, if that
6452 2005-02-27 Jakub Jelinek <jakub@redhat.com>
6455 * decl.c (cxx_comdat_group): Put thunks for
6456 TARGET_USE_LOCAL_THUNK_ALIAS_P (function) functions into the same
6457 comdat group as the thunk target.
6459 2005-02-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6461 * call.c, class.c, cp-tree.h, decl2.c, error.c, init.c, mangle.c,
6462 parser.c: Fix comment typo(s).
6464 2005-02-24 Jakub Jelinek <jakub@redhat.com>
6467 * decl.c (reshape_init): Don't warn about missing braces if STRING_CST
6468 initializes a char/wchar_t array.
6470 2005-02-23 Mark Mitchell <mark@codesourcery.com>
6473 * decl.c (grokvardecl): Set DECL_INTERFACE_KNOWN for declarations
6474 with internal linkage.
6476 2005-02-23 Alexandre Oliva <aoliva@redhat.com>
6478 * decl.c (grokvardecl): Don't exempt anonymous types from having
6479 linkage for variables that have linkage other than "C".
6481 2005-02-23 Kazu Hirata <kazu@cs.umass.edu>
6483 * cp-objcp-common.h, error.c: Update copyright.
6485 2005-02-22 Mark Mitchell <mark@codesourcery.com>
6488 * decl.c (start_decl_1): Don't clear TREE_READONLY.
6489 (cp_finish_decl): Likewise.
6490 (complete_vars): Call cp_apply_type_quals_to_decl.
6491 * typeck.c (cp_apply_type_quals): Avoid setting TREE_READONLY in
6492 cases where that's not valid.
6495 * init.c (integral_constant_value): Iterate if the value of a decl
6496 is itself a constant.
6499 * parser.c (cp_parser_class_head): Check for redefintions here.
6500 * semantics.c (begin_class_definition): Not here.
6503 * decl2.c (build_anon_union_vars): Add type parameter.
6504 (finish_anon_union): Pass it.
6507 * error.c (dump_expr): Do not print the body of a BIND_EXPR.
6508 Handle STATEMENT_LIST.
6511 * parser.c (cp_parser_direct_declarator): Always complain about
6512 non-constant array bounds when in a function scope.
6513 * semantics.c (finish_id_expression): Do not mark dependent names
6516 2005-02-21 Douglas Gregor <dgregor@cs.indiana.edu>
6520 * cp-tree.h (cp_apply_type_quals_to_decl): Declared.
6521 * decl.c (grokdeclarator): Pedwarn about qualifying a function
6523 Add qualifiers when declaring a typedef of a function type.
6524 Member function pointers pick up the qualifiers of the typedef
6525 used to declare them.
6526 Don't complain about creating cv-qualified function types.
6527 Complain about qualified function typedefs that are used to
6528 declare non-static member functions or free functions.
6529 Use cp_apply_type_quals_to_decl.
6530 (start_preparsed_function): Use cp_apply_type_quals_to_decl.
6531 (grokclassfn): Use cp_apply_type_quals_to_decl.
6532 * error.c (dump_type_suffix): Print qualifiers for function
6534 * pt.c (tsubst_decl): Use cp_apply_type_quals_to_decl.
6535 (tsubst): When substituting a function type into a member
6536 pointer type, pass along the qualifiers.
6537 (unify): Unify member pointers to member function pointers.
6538 * tree.c (cp_build_qualified_type_real): Function types may be
6539 qualified. This includes restrict qualifiers.
6540 * typeck.c (cp_apply_type_quals_to_decl): New function to replace
6541 use of c_apply_type_quals_to_decl. Drops qualifiers that are being
6542 added to function types.
6544 2005-02-20 Zack Weinberg <zack@codesourcery.com>
6547 * cp-objcp-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
6548 c_common_to_target_charset. Delete bogus comment.
6550 2005-02-18 Richard Henderson <rth@redhat.com>
6553 * except.c (do_get_exception_ptr): New.
6554 (expand_start_catch_block): Use it.
6556 2005-02-19 Jakub Jelinek <jakub@redhat.com>
6558 * decl.c (start_decl_1): Only check TYPE_NEEDS_CONSTRUCTING
6559 if type is not error_mark_node.
6561 2005-01-20 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6564 * decl2.c (grokfield): Do not apply attributes to template parameters
6565 as they are ignored by tsubst anyway.
6567 2005-02-18 Jakub Jelinek <jakub@redhat.com>
6570 * decl.c (start_decl_1): Clear TREE_READONLY flag if
6571 its type has TYPE_NEEDS_CONSTRUCTING.
6572 (complete_vars): Likewise.
6574 2005-02-17 Alexandre Oliva <aoliva@redhat.com>
6577 * class.c (finish_struct): Initialize TYPE_SIZE_UNIT of a
6578 template along with TYPE_SIZE.
6581 * semantics.c (perform_deferred_access_checks): Use
6582 get_deferred_access_checks to get the top of the stack.
6584 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
6587 * class.c (add_implicitly_declared_members, check_field_decl)
6588 (check_field_decls, check_bases): Remove arguments, tests and
6589 assignments of cant_have_default_ctor-related variables.
6591 2005-02-15 Alexandre Oliva <aoliva@redhat.com>
6593 * decl2.c (mark_used): Set the source location of the used decl to
6594 the current input location here...
6595 * method.c (synthesize_method): ... not here. Set input_location
6596 from the decl instead.
6598 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
6601 * parser.c (cp_parser_late_parsing_for_member): Use
6602 current_function_decl as scope to push to and from.
6605 * pt.c (check_explicit_specialization): Make sure namespace
6606 binding lookup found an overloaded function.
6607 (lookup_template_function): Just assert FNS is an overloaded
6611 * decl.c (grokdeclarator): Check for error mark node in ptrmem
6614 2005-02-14 Alexandre Oliva <aoliva@redhat.com>
6617 * decl.c (redeclaration_error_message): Report redefinition of
6618 pure virtual function.
6620 2005-02-14 Nathan Sidwell <nathan@codesourcery.com>
6623 * class.c (build_simple_base_path): Build the component_ref
6625 (update_vtable_entry_for_fn): Walk the covariant's binfo chain
6626 rather than using lookup_base.
6627 * search.c (dfs_walk_once): Add non-recursive assert check.
6628 * typeck.c (build_class_member_access_expr): It is possible for
6629 the member type to be both const and volatile.
6631 2005-02-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6635 * pt.c (maybe_check_template_type): Remove.
6636 * cp-tree.h (maybe_check_template_type): Remove prototype.
6637 * name-lookup.c (maybe_process_template_type_declaration): Don't
6638 use maybe_check_template_type.
6640 2005-02-11 Richard Henderson <rth@redhat.com>
6643 * pt.c (get_mostly_instantiated_function_type): Save and restore
6644 flag_access_control instead of push/pop_access_scope.
6646 2005-02-10 Mark Mitchell <mark@codesourcery.com>
6649 * decl.c (reshape_init): Issue warnings about missing braces.
6651 2005-02-11 Kazu Hirata <kazu@cs.umass.edu>
6653 * cp-tree.def, except.c, ptree.c: Update copyright.
6655 2005-02-09 Mark Mitchell <mark@codesourcery.com>
6658 * call.c (build_op_delete_call): Check COMPLETE_TYPE_P before
6659 attempting name lookup.
6661 * parser.c (cp_parser_unqualified_id): Initialize type_decl.
6664 * call.c (initialize_reference): Robustify.
6667 * decl.c (grokdeclarator): Check for invalid use of destructor
6671 * parser.c (cp_parser_unqualified_id): Avoid creating destructor
6672 names with invalid types.
6675 * parser.c (cp_parser_direct_declarator): Allow type-dependent
6676 expressions as array bounds.
6679 * parser.c (cp_parser_attributes_list): Allow empty lists.
6681 2005-02-08 Mark Mitchell <mark@codesourcery.com>
6684 * class.c (add_method): Don't set TYPE_HAS_DESTRUCTOR.
6685 (check_bases): Give warnings about a base class with a
6686 non-virtual destructor, even if it is implicit.
6687 (finish_struct_bits): Don't copy TYPE_HAS_DESTRUCTOR.
6688 (maybe_warn_about_overly_private_class): Don't use
6689 TYPE_HAS_DESTRUCTOR.
6690 (finish_struct_methods): Don't set TYPE_HAS_DESTRUCTOR.
6691 (check_for_override): Give it external linkage.
6692 (add_implicitly_declared_members): Generate destructors lazily.
6693 (check_field_decls): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
6694 TYPE_HAS_DESTRUCTOR.
6695 (check_bases_and_members): Call check_methods before
6697 (check_bases_and_members): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR, not
6698 TYPE_HAS_DESTRUCTOR.
6699 (finish_struct_1): Do not use TYPE_HAS_DESTRUCTOR.
6700 * cp-tree.def (PSEUDO_DTOR_EXPR): Document.
6701 * cp-tree.h (TYPE_HAS_DESTRUCTOR): Remove.
6702 (lang_type_class): Add lazy_destructor.
6703 (CLASSTYPE_LAZY_DESTRUCTOR): New macro.
6704 (CLASSTYPE_DESTRUCTORS): Robustify.
6705 (TYPE_HAS_DESTRUCTOR): Remove.
6706 (check_for_override): Declare.
6707 (build_vbase_delete): Remove.
6708 * cvt.c (convert_to_void): Issue errors about pseudo-destructor
6710 * decl.c (cxx_maybe_build_cleanup): Remove dead code.
6711 * except.c (dtor_nothrow): Lazily create destructors if necessary.
6712 (build_throw): Use TYPE_HAS_NONTRIVIAL_DESTRUCTOR.
6713 * init.c (build_delete): Lazily create destructors, if necessary.
6714 (build_vbase_delete): Remove.
6715 * method.c (locate_dtor): Simplify.
6716 (implicitly_declare_fn): Add support for destructors.
6717 * parser.c (cp_parser_lookup_name): Lazily create destructors, if
6719 * pt.c (check_explicit_specialization): Don't use
6720 TYPE_HAS_DESTRUCTOR.
6721 (instantiate_class_template): Likewise.
6722 * ptree.c (cxx_print_type): Don't print TYPE_HAS_DESTRUCTOR.
6723 * rtti.c (emit_support_tinfos): Robustify.
6724 * search.c (lookup_fnfields_1): Lazily create destructors.
6725 * typeck.c (build_class_member_access_expr): Remove
6726 PSEUDO_DTOR_EXPR handling.
6727 (lookup_destructor): Likewise.
6729 2005-02-08 Kazu Hirata <kazu@cs.umass.edu>
6731 * cxx-pretty-print.c, cxx-pretty-print.h, decl.h: Update
6734 2005-02-07 Mark Mitchell <mark@codesourcery.com>
6736 * parser.c (cp_lexer_start_debugging): Avoid arithmetic operations
6737 on boolean variables.
6738 (cp_lexer_stop_debugging): Likewise.
6740 2005-02-03 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6743 * parser.c (cp_parser_pure_specifier): Emit a specific error
6744 message with an invalid pure specifier.
6745 * decl2.c (grok_function_init): Remove.
6746 (grokfield): An initializer for a method is a always a pure
6749 2005-02-02 Matt Austern <austern@apple.com>
6752 * cp-tree.h (builtin_valid_in_constant_expr_p): Declare.
6753 * parser.c (cp_parser_postfix_expression): Accept function call in
6754 constant expression if builtin_valid_in_constant_expr_p is true
6756 * pt.c (value_dependent_expression_p): Handle CALL_EXPRs properly.
6757 * semantics.c (finish_id_expression): Accept function call in constant
6758 expression if builtin_valid_in_constant_expr_p is true for that
6760 * tree.c (builtin_valid_in_constant_expr_p): New.
6762 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6765 * pt.c (check_instantiated_args): Improve error message.
6766 Fix logic when to print its second part.
6768 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6770 * cp-tree.h (complete_type_or_else): Remove macro.
6771 (complete_type_or_diagnostic): Rename to complete_type_or_else
6772 and remove last argument.
6773 * typeck.c (complete_type_or_diagnostic): Rename to
6774 complete_type_or_else and remove last argument.
6776 2005-02-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6778 * cp-tree.h (commonparms): Remove prototype.
6779 (convert_arguments): Likewise.
6780 (PFN_FROM_PTRMEMFUNC): Remove.
6781 * typeck.c (commonparms): Make static.
6782 (convert_arguments): Add prototype. Make static.
6783 (PFN_FROM_PTRMEMFUNC): Replace by pfn_from_ptrmemfunc.
6785 2005-01-31 Mark Mitchell <mark@codesourcery.com>
6787 * parser.c (cp_parser_primary_expression): Don't complain about
6788 floating-point literals in integral constant expressions when
6791 2005-02-01 Alexandre Oliva <aoliva@redhat.com>
6793 * parser.c (cp_parser_template_id): Revert comment patch too.
6798 * parser.c (cp_parser_template_id): Revert 2004-12-09's patch.
6799 Issue an error when creating the template id.
6800 * pt.c (fn_type_unification): Return early if the explicit
6801 template arg list is an error_mark_node.
6803 2005-01-31 Mark Mitchell <mark@codesourcery.com>
6805 * decl.c (build_enumerator): Do not issue duplicate error messages
6806 about invalid enumeration constants.
6807 * parser.c (cp_parser_non_integral_constant_expression): Always
6808 set parser->non_integral_constant_expression_p.
6809 (cp_parser_primary_expression): Add cast_p parameter. Issue
6810 errors about invalid uses of floating-point literals in
6812 (cp_parser_postfix_expression): Add cast_p parameter.
6813 (cp_parser_open_square_expression): Pass it.
6814 (cp_parser_parenthesized_expression_list): Add cast_p parameter.
6815 (cp_parser_unary_expression): Likewise.
6816 (cp_parser_new_placement): Pass it.
6817 (cp_parser_direct_new_declarator): Likewise.
6818 (cp_parser_new_initializer): Likewise.
6819 (cp_parser_cast_expression): Add cast_p parameter.
6820 (cp_parser_binary_expression): Likewise.
6821 (cp_parser_question_colon_clause): Likewise.
6822 (cp_parser_assignment_expression): Likewise.
6823 (cp_parser_expression): Likewise.
6824 (cp_parser_constant_expression): If an integral constant
6825 expression is invalid, return error_mark_node.
6826 (cp_parser_expression_statement): Pass cast_p.
6827 (cp_parser_condition): Likewise.
6828 (cp_parser_iteration_statement): Likewise.
6829 (cp_parser_jump_statement): Likewise.
6830 (cp_parser_mem_initializer): Likewise.
6831 (cp_parser_template_argument): Likewise.
6832 (cp_parser_parameter_declaration): Likewise.
6833 (cp_parser_initializer): Likewise.
6834 (cp_parser_throw_expression): Likewise.
6835 (cp_parser_attribute_list): Likewise.
6836 (cp_parser_simple_cast_expression): Likewise.
6837 (cp_parser_functional_cast): Likewise.
6838 (cp_parser_late_parsing_default_args): Likewise.
6839 (cp_parser_sizeof_operand): Save/restore
6840 non_integral_constant_expression_p.
6842 2005-01-31 Mike Stump <mrs@apple.com>
6844 * parser.c (cp_lexer_new_main): Get the first token, first, before
6847 2005-01-31 Mark Mitchell <mark@codesourcery.com>
6849 * decl.c (start_decl): Add missing parentheses.
6851 2005-01-30 Mark Mitchell <mark@codesourcery.com>
6854 * cp-tree.h (DECL_USE_TEMPLATE): Expand documentation.
6855 * decl.c (duplicate_decls): Do not discard
6856 DECL_IMPLICIT_INSTANTIATION when merging declarations.
6857 (start_decl): Do not SET_DECL_TEMPLATE_SPECIALIZATION for
6858 variables that do not have DECL_USE_TEMPLATE.
6861 * decl.c (grokdeclarator): Refactor code so that qualified names
6862 are never allowed as the declarator in a typedef.
6865 * name-lookup.c (do_nonmember_using_decl): Avoid overloading
6866 builtin declarations.
6869 * call.c (convert_like_real): Inline call to
6870 dubious_conversion_warnings here.
6871 * cp-tree.h (dubious_conversion_warnings): Remove.
6872 * semantics.c (finish_unary_op_expr): Copy INTEGER_CSTs before
6873 setting TREE_NEGATED_INT.
6874 * typeck.c (dubious_conversion_warnings): Remove.
6877 * name-lookup.c (pushdecl_namespace_level): Avoid accessing free'd
6880 2005-01-28 Mark Mitchell <mark@codesourcery.com>
6883 * parser.c (cp_parser_diagnose_invalid_type_name): Commit to
6887 * pt.c (redeclare_class_template): Robustify.
6889 2005-01-27 Steven Bosscher <stevenb@suse.de>
6891 * decl.c (finish_case_label): Use SWITCH_STMT accessor macros
6892 instead of SWITCH_EXPR ones.
6893 * pt.c (tsubst_expr): Likewise.
6894 * semantics.c (begin_switch_stmt, finish_switch_cond,
6895 finish_switch_stmt): Likewise.
6897 2005-01-26 J"orn Rennecke <joern.rennecke@st.com>
6900 * parser.c (cp_parser_initializer_clause): Initialize *non_constant_p.
6902 2005-01-25 Andrew Pinski <pinskia@physics.uc.edu>
6904 * class.c (abort_fndecl_addr): New variable.
6905 (build_vtbl_initializer): If we have a pure virtual function
6906 share the abort function's address.
6907 Include gt-cp-class.h at the end.
6908 * config-lang.in (gtfiles): Add cp/class.c.
6910 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6912 * cxx-pretty-print.c (pp_cxx_statement): Add prototype. Make static.
6913 (pp_cxx_function_definition): Make static.
6914 * cxx-pretty-print.h (pp_cxx_statement): Remove prototype.
6915 (pp_cxx_function_definition): Likewise.
6917 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6919 * name-lookup.c (print_binding_level): Make static.
6920 (constructor_name_full): Make static inline.
6921 (current_decl_namespace): Make static.
6922 * name-lookup.h (constructor_name_full): Remove prototype.
6923 (print_binding_level): Likewise.
6924 (current_decl_namespace): Likewise.
6926 2005-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
6928 * decl.h (debug_bindings_indentation): Remove.
6930 2005-01-23 Kazu Hirata <kazu@cs.umass.edu>
6932 * typeck.c: Fix a comment typo.
6934 2005-01-21 Giovanni Bajo <giovannibajo@gcc.gnu.org>
6937 * pt.c (fold_decl_constant_value): Always call fold_non_dependent_expr
6939 (tsubst): Use fold_decl_constant_value in place of a bare call to
6940 integral_constant_value.
6942 2005-01-20 Kazu Hirata <kazu@cs.umass.edu>
6944 * typeck.c (more_qualified_p): Remove.
6945 * cp-tree.h: Remove the corresponding prototype.
6947 2005-01-19 Matt Austern <austern@apple.com>
6949 * typeck.c (comptypes): Handle return code from objc_comptypes
6952 2005-01-19 Kazu Hirata <kazu@cs.umass.edu>
6954 * cp-tree.h, name-lookup.h: Remove unused prototypes.
6956 2005-01-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6959 * semantics.c (finish_id_expression): Disable access checking for
6960 already lookuped FIELD_DECL.
6962 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
6964 * decl.c (delete_block): Remove.
6965 * cp-tree.h: Remove the corresponding prototype.
6967 * decl.c (vtable_decl_p, vtype_decl_p, walk_globals_data,
6968 walk_vtables_r, walk_vtables, walk_globals_r, walk_globals):
6970 * cp-tree.h: Remove the corresponding prototypes.
6972 * tree.c (count_functions, bound_pmf_p, cp_is_overload_p,
6973 cp_update_decl_after_saving, name_p): Remove.
6974 * cp-tree.h: Remove the corresponding prototypes.
6976 2005-01-18 Andrew Pinski <pinskia@physics.uc.edu>
6979 * semantics.c (finish_asm_stmt): Strip nops off
6980 input memory operands.
6982 2005-01-18 Kazu Hirata <kazu@cs.umass.edu>
6984 * Make-lang.in, call.c, cvt.c, init.c, rtti.c, tree.c,
6985 typeck2.c: Update copyright.
6987 2005-01-16 Kazu Hirata <kazu@cs.umass.edu>
6989 * class.c (get_enclosing_class): Remove.
6990 * cp-tree.h: Remove the corresponding prototypes.
6992 * cvt.c (convert_lvalue): Remove.
6993 * cp-tree.h: Remove the corresponding prototype.
6995 * pt.c (tinst_for_decl): Remove.
6996 * cp-tree.h: Remove the corresponding prototypes.
6998 * tree.c (hash_chainon): Remove.
6999 * cp-tree.h: Remove the corresponding prototypes.
7001 2005-01-15 Jakub Jelinek <jakub@redhat.com>
7004 * typeck2.c (split_nonconstant_init_1) <case VECTOR_TYPE>: Put a copy
7005 of CONSTRUCTOR's node into MODIFY_EXPR, as the original is modified.
7007 2005-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7009 * Make-lang.in (cp-warn): Don't append $(WERROR).
7011 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
7013 * cp-tree.h: Fix a comment typo.
7015 2005-01-07 Nathan Sidwell <nathan@codesourcery.com>
7018 * pt.c (tsubst_qualified_id): Call convert_from_reference.
7020 2005-01-06 Mark Mitchell <mark@codesourcery.com>
7023 * class.c (add_implicitly_declared_members): Remove dead code.
7024 * decl.c (grokfndecl): Add sfk parameter. Use it do set
7026 (grokdeclarator): Adjust calls to grokfndecl.
7027 * method.c (implicitly_declare_fn): Improve documentation.
7028 * parser.c (cp_parser_direct_declarator): Do not consider a
7029 function to be a constructor if the containing class was
7030 originally anonymous.
7032 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7035 * search.c (lookup_field_1): Handle using declaration in
7036 class template partial specialization.
7038 2005-01-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7041 * pt.c (push_access_scope): Handle friend defined in class.
7042 (pop_access_scope): Likewise.
7044 2005-01-06 Nathan Sidwell <nathan@codesourcery.com>
7047 * pt.c (tsubst_copy) <ARRAY_REF case>: Handle separately.
7048 (tsubst_copy_and_build) <ARRAY_REF case>: Remove obsolete
7049 array-new handling code. Use build_x_binary_op.
7051 2005-01-05 Nathan Sidwell <nathan@codesourcery.com>
7054 * cp-tree.h (start_decl): Take pointer to pushed scope, not bool.
7055 * name-lookup.h (push_scope): Return pushed scope, not flag.
7056 * name-lookup.c (push_scope): Return scope that should be popped,
7058 * decl.c (start_decl): Adjust.
7059 (grokfndecl): Adjust scope push and pop.
7060 * decl2.c (check_classfn): Likewise.
7061 * parser.c (cp_parser_condition, cp_parser_conversion_function_id,
7062 cp_parser_init_declarator, cp_parser_direct_declarator,
7063 cp_parser_class_specifier, cp_parser_class_head,
7064 cp_parser_lookup_name,
7065 cp_parser_constructor_declarator_p): Likewise.
7066 * pt.c (instantiate_class_template,
7067 resolve_typename_type): Likewise.
7069 2005-01-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
7072 * parser.c (cp_parser_unqualified_id): Do not issue error message
7073 for typedef-name as destructor declarator when performing an
7074 uncommitted tentative parse.
7076 2005-01-01 Steven Bosscher <stevenb@suse.de>
7079 * decl.c (finish_function): Fix comment. Annotate the compiler
7080 generated return with the current file name and line 0.