1 2006-10-03 Mark Mitchell <mark@codesourcery.com>
4 * friend.c (do_friend): Improve comments; add assertion.
5 * parser.c (cp_parser_nested_name_specifier_opt): Resolve
6 typenames for qualified names used in declarations, even when
7 caching qualified name lookup.
10 * decl2.c (grokfield): Don't handle access declarations here.
11 * parser.c (cp_parser_using_declaration): Handle access
13 (cp_parser_block_declaration): Adjust calls to
14 cp_parser_using_declaration.
15 (cp_parser_member_declaration): Likewise. Use
16 cp_parser_using_declaration to look for access_declarations.
18 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
21 * init.c (build_new): Check for invalid init.
23 2006-10-02 Mark Mitchell <mark@codesourcery.com>
26 * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
27 not try to actually evaluate sizeof for a VLA type.
29 2006-10-01 Mark Mitchell <mark@codesourcery.com>
32 * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
33 * semantics.c (baselink_for_fns): Build a baselink, even when
34 processing a template.
37 * parser.c (cp_parser_postfix_dot_deref_expression): Use
38 BASELINK_ACCESS_BINFO as the qualifying scope when calling
39 adjust_result_of_qualified_name_lookup.
41 2006-09-25 Lee Millward <lee.millward@codesourcery.com>
45 * cp-tree.h (redeclare_class_template): Adjust declaration
46 to return bool instead of void.
47 * pt.c (redeclare_class_template): Update definition.
48 Return false on error.
49 * decl.c (xref_tag): Return error_mark_node if
50 redeclare_class_template returned false.
53 * cp-tree.h (begin_specialization): Return bool
55 * pt.c (check_specialization_scope): Likwise.
56 Adjust comment. Return false if a specialization
57 isn't permitted in the current scope.
58 (begin_specialization): Use the return value of
59 check_specialization_scope.
60 * parser.c (cp_parser_explicit_specialization): If
61 begin_specialization returned false, skip the rest
62 of the specialization.
64 2006-09-21 Mark Mitchell <mark@codesourcery.com>
67 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
70 2006-09-21 Lee Millward <lee.millward@codesourcery.com>
73 * decl.c (shadow_tag): Return error_mark_node
74 if maybe_process_partial_specialization failed.
77 * decl.c (grokdeclarator): Return error_mark_node on
78 declaration with two or more data types.
80 2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
83 * class.c (check_for_override): Remove dllimport from virtual
86 2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
89 * parser.c (cp_parser_labeled_statement): Return nothing. Do
90 not take in_statement_expr and in_compound as arguments. Rename
91 to cp_parser_label_for_labeled_statement. Parse only the label,
93 (cp_parser_statement): Parse the statement of a labeled-statement
94 from here, using tail recursion.
96 2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
99 * init.c (build_zero_init): If we have an error mark node for
100 the array size, return.
102 2006-09-10 Mark Mitchell <mark@codesourcery.com>
105 * cp-objcp-common.c (cxx_staticp): New function.
106 * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
107 * cp-tree.h (cxx_staticp): New function.
109 2006-09-09 Jason Merrill <jason@redhat.com>
112 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
114 2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
117 * parser.c (cp_parser_skip_until_found): Rename to
118 cp_parser_skip_to_end_of_template_parameter_list. Remove last two
119 parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
120 Reorganize. Adjust comment.
121 (cp_parser_template_declaration_after_export): Adjust call.
122 (cp_parser_enclosed_template_argument_list): Likewise.
124 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
127 * init.c (build_new_1): Build a distinct type copy
128 for the array type that was returned from
129 build_cplus_array_type.
131 2006-09-07 Jason Merrill <jason@redhat.com>
134 * cvt.c (convert_to_void): Enable previous change.
137 * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
140 2006-09-07 Simon Martin <simartin@users.sourceforge.net>
143 * pt.c (fold_non_dependent_expr): Make sure expr is not
144 dereferenced if it is NULL.
146 2006-09-06 Zak Kipling <zak@transversal.com>
149 * decl.c (make_rtl_for_nonlocal_decl),
150 (start_preparsed_function): Don't use lbasename on
151 input_filename when calling get_fileinfo.
152 * semantics.c (begin_class_definition): Likewise.
153 * lex.c (cxx_make_type): Likewise.
154 (handle_pragma_interface): Call get_fileinfo on input_filename,
155 not on the parameter to the directive.
157 2006-09-06 Mark Mitchell <mark@codesourcery.com>
160 * pt.c (tsubst): Use fold_non_dependent_expr to fold array
164 * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
167 2006-09-06 Jason Merrill <jason@redhat.com>
170 * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
171 * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
172 * tree.c (build_cplus_new): Set it.
175 * cvt.c (convert_to_void): Replace a subexpression with no side
176 effects with void_zero_node.
177 * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
178 (get_first_fn): Ditto.
179 * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
181 2006-09-05 Jason Merrill <jason@redhat.com>
184 * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
185 where the name is a type used incorrectly.
188 * typeck.c (maybe_warn_about_returning_address_of_local): Look
189 through COMPONENT_REF and ARRAY_REF.
192 * name-lookup.c (do_class_using_decl): Try to find the base even
193 if bases_dependent_p.
194 * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
197 * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
199 2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
201 PR 23287 Revert my 2006-09-01 patch.
202 * parser.c: Reverted.
205 2006-09-02 Lee Millward <lee.millward@codesourcery.com>
211 * parser.c (cp_parser_template_parameter_list): Add
212 invalid template parameters to the parameter list as
215 2006-09-02 Jakub Jelinek <jakub@redhat.com>
218 * except.c (build_throw): Only set current_function_returns_abnormally
222 * repo.c (repo_file): Remove.
223 (open_repo_file, reopen_repo_file_for_write): Return fopened
224 FILE * instead of setting global repo_file variable.
225 (init_repo): Adjust caller.
226 (finish_repo): Likewise. Return instead of goto out before
227 reopen_repo_file_for_write has been called.
229 2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
232 * semantics.c (finish_call_expr): Add assert.
233 * name-lookup.c (lookup_arg_dependent): Check we found an overload
237 * parser.c (cp_parser_id_expression): Add member_p
238 argument. Update all callers.
239 (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
240 the object's scope, if valid.
241 (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
243 (cp_parser_postfix_dot_deref_expression): Set object_scope.
244 * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
246 2006-08-30 Jason Merrill <jason@redhat.com>
249 * class.c (check_field_decls): Don't unset TYPE_PACKED until all
250 the fields have been processed.
252 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
255 * call.c (build_x_va_arg): Remove the reference type
256 from the type before creating the pointer type.
258 2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
261 * except.c (expand_start_catch_block): Use correct types for bitwise
264 2006-08-28 Jason Merrill <jason@redhat.com>
267 * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
268 fields can't be packed.
271 * cvt.c (convert_to_void): Don't automatically load from volatiles
272 of TREE_ADDRESSABLE type.
274 2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
277 * cp-tree.h (maybe_process_partial_specialization): Return
278 tree instead of void.
279 * parser.c (cp_parser_class_head): Use return value of
280 maybe_process_partial_specialization.
281 * pt.c (maybe_process_partial_specialization): Return error_mark_node
282 for broken specializations, TYPE otherwise. Check for template
285 2006-08-27 Mark Mitchell <mark@codesourcery.com>
288 * pt.c (register_specialization): Return error_mark_node for
289 specialization-after-instantiation.
290 * decl2.c (mark_used): Mark the main function used when one of its
293 2006-08-27 Lee Millward <lee.millward@codesourcery.com>
296 * class.c (check_field_decls): Don't issue error about
297 local classes containing static data members.
299 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
302 * parser.c (struct cp_token): Add input_file_stack_index.
304 (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
305 (cp_lexer_set_source_position_from_token): Restore input file
308 2006-08-26 Lee Millward <lee.millward@codesourcery.com>
313 * pt.c (process_template_parm): Store invalid template
314 parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
315 (push_inline_template_parms_recursive): Check for template
316 parameters having a TREE_VALUE of error_mark_node rather than
317 check the parameter itself.
318 (mangle_class_name_for_template): Likewise.
319 (comp_template_parms): When comparing the individual template
320 parameters, return 1 if either is error_mark_node.
321 (current_template_args): Robustify.
322 (redeclare_class_template): Likewise.
324 2006-08-26 Mark Mitchell <mark@codesourcery.com>
327 * class.c (resolve_address_of_overloaded_function): Add
328 access_path parameter. Perform access checks.
329 (instantiate_type): Adjust call to
330 resolve_address_of_overloaded_function. Remove unnecessary code.
331 * tree.c (is_overloaded_fn): Document. Return 2 when there are
332 acutally multiple functions.
333 (really_overloaded_fn): Use is_overloaded_fn.
334 * mangle.c (write_expression): Handle BASELINKs.
335 * cp-tree.h (really_overloaded_fn): Return bool.
336 (baselink_for_fns): Declare.
337 * search.c (lookup_member): Check access for single static
339 * pt.c (convert_nontype_argument_function): Handle BASELINKs.
340 (tsubst_copy_and_build): Generate BASELINKs for template-ids.
341 * semantics.c (finish_call_expr): Use baselink_for_fns.
342 (baselink_for_fns): New function.
343 (finish_id_expression): Use it.
344 * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
347 * pt.c (tsubst): Issue errors about attempts to create VLAs at
348 template-instantiation time.
350 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
353 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
354 template parameters. Improve error message for template type
358 * cp-tree.h (grok_op_properties): Return bool instead of void.
359 * decl.c (grokfndecl): Discard invalid operator declarations.
360 (copy_fn_p): Revert change for PR 27547.
361 (grok_op_properties): Return error status (true on success).
362 * pt.c (tsubst_decl): Discard invalid operator declarations.
364 2006-08-25 Mark Mitchell <mark@codesourcery.com>
367 * decl.c (grokdeclarator): Disallow declarations with qualified
368 names in local scopes.
370 2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
373 * decl.c (make_typename_type): Only try and resolve it when
374 context is not dependent. Refactor.
375 * decl2.c (check_classfn): Push to class scope before looking for
378 2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
381 * g++spec.c (lang_specific_driver): Always check if we need to
382 swallow a space-separated arg to '-x'.
383 * lang-specs.h: Don't create ouput files for '-xc++-header'
386 2006-08-23 Jason Merrill <jason@redhat.com>
389 * pt.c (push_template_decl_real): A friend template with class
392 2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
395 * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
396 Move -fno-rtti check to be more specific.
398 2006-08-22 Jason Merrill <jason@redhat.com>
401 * call.c (build_over_call): Don't make a copy here if build_call
404 2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
407 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
410 2006-08-22 Simon Martin <simartin@users.sourceforge.net>
413 * parser.c (cp_parser_postfix_expression): Make sure that the
414 saved value for parser->type_definition_forbidden_message is
415 restored before returning to avoid an invalid free().
417 2006-08-22 Jason Merrill <jason@redhat.com>
420 * typeck.c (merge_types): If either of the types have the right
421 attributes, return that one.
423 * tree.c (cp_build_type_attribute_variant): Make sure we aren't
424 doing this to class types.
425 * typeck.c (original_type): Deal with type quals properly.
427 2006-08-21 Jason Merrill <jason@redhat.com>
430 * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
431 just leave the expression as it is.
432 (finish_stmt_expr): If the statement-expression has class type,
433 wrap it in a TARGET_EXPR.
434 * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
436 * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
438 2006-08-21 Lee Millward <lee.millward@codesourcery.com>
441 * decl.c (duplicate_decls): Return early if either
442 newdecl or olddecl is error_mark_node.
445 * decl.c (grokdeclarator): Return early after
446 issuing diagnostic about an incomplete type.
449 * tree.c (decl_anon_ns_mem_p): Robustify.
450 * decl2.c (determine_visibility): Likewise.
452 2006-08-20 Mark Mitchell <mark@codesourcery.com>
455 * tree.c (cast_valid_in_integral_constant_expression_p): New
457 * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
458 * pt.c (tsubst_expr): Add integral_constant_expression_p
460 (fold_non_dependent_expr): Adjust callers of
461 tsubst_{expr,copy_and_build}.
462 (tsubst_friend_function): Likewise.
463 (tsubst_template_arg): Likewise.
464 (tsubst_default_argument): Likewise.
465 (tsubst_decl): Likewise.
467 (tsubst_omp_clasuses): Likewise.
468 (regenerate_decl_fromp_template): Likewise.
469 (instantiate_decl): Likewise.
470 (tsubst_initializer_list): Likewise.
471 (tsubst_enum): Likewise.
472 (tsubst_expr): Use RECUR throughout.
473 (tsubst_copy_and_build): Change definition of RECUR. Do not allow
474 invalid casts in integral constant expressions.
475 * parser.c (cp_parser_postfix_expression): Use
476 cast_valid_in_integral_constant_expression_p.
477 (cp_parser_cast_expression): Likewise.
478 (cp_parser_functional_cast): Likewise.
481 * pt.c (tsubst_qualified_id): Do not strip references from
484 2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
487 * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
489 (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
490 for valid type-names.
491 (cp_parser_unqualified_id): Fix error handling for destructors.
494 * decl.c (xref_tag): Improve error message. Return early on error.
497 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
499 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
502 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
504 2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
507 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
508 perform_integral_promotions for non integral type.
510 2006-08-16 Jason Merrill <jason@redhat.com>
513 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
514 if arg is a function.
516 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
519 * init.c (build_new): Return early on invalid placement.
521 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
524 * pt.c (process_template_parm): Robustify.
526 2006-08-14 Steve Ellcey <sje@cup.hp.com>
530 * operators.def: Remove <?, ?>, <?=, and >?= operators.
531 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
532 (cp_parser_warn_min_max): Remove.
534 2006-08-11 Jason Merrill <jason@redhat.com>
537 * parser.c (cp_parser_elaborated_type_specifier): Also ignore
538 attributes applied to a TYPENAME_TYPE.
540 2006-08-09 Lee Millward <lee.millward@codesourcery.com>
543 * pt.c (coerce_template_parms): Copy across the
544 invalid template arguments to the new template inner arguments.
545 (retrieve_specialization): Robustify.
548 * pt.c (coerce_template_template_parms): Robustify.
551 * error.c (dump_template_parms): Robustify.
554 * pt.c (redeclare_class_template): Robustify.
557 * pt.c (type_unification_real): Robustify.
559 2006-08-03 Lee Millward <lee.millward@codesourcery.com>
562 * decl.c (start_decl): Return error_mark_node if a
563 diagnostic was issed for an invalid typedef initialization.
565 2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
568 * parser.c (cp_parser_unqualified_id): Check for invalid scopes
569 when parsing destructor names.
572 * decl.c (duplicate_decls): Call check_default_args here.
573 (start_preparsed_function): Do not call check_default_args.
574 * name-lookup.c (pushdecl_maybe_friend): Only call
575 check_default_args if duplicate_decls got bypassed.
577 2006-08-02 Richard Guenther <rguenther@suse.de>
581 2006-07-05 Richard Guenther <rguenther@suse.de>
582 Andrew Pinski <pinskia@gcc.gnu.org>
585 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
586 top level qualifiers for pointer type comparisons.
588 2006-08-02 Mark Mitchell <mark@codesourcery.com>
591 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
593 2006-07-31 Mark Mitchell <mark@codesourcery.com>
596 * tree.c (stabilize_expr): Tweak documentation. Add assertion.
597 (stabilize_call): Tweak documentation.
598 (stabilize_init): Only call stabilize_call for calls.
600 2006-08-01 Steve Ellcey <sje@cup.hp.com>
603 * decl2.c (check_classfn): Remove early return.
604 * search.c (lookup_member): Return NULL with bad type.
606 2006-08-01 Steve Ellcey <sje@cup.hp.com>
609 * decl.c (check_initializer): Check for 1 initializer on scalar types.
611 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
614 * pt.c (tsubst_copy_and_build): Mark used enum types.
615 * semantics.c (finish_id_expression): Likewise.
617 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
620 * decl.c (grokdeclarator): Check whether "long" or "short" was
621 specified for non-integral types.
623 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
625 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
627 2006-07-28 Lee Millward <lee.millward@codesourcery.com>
631 * pt.c (process_template_parm) Store invalid template
632 parameters as error_mark_node in the paramater list.
633 (push_inline_template_parms_recursive): Handle invalid
635 (comp_template_parms): Likewise.
636 (check_default_tmpl_arg): Likewise.
637 (coerce_template_template_parms): Likewise.
638 (mangle_class_name_for_template): Likewise.
639 (tsubst_template_parms): Likewise.
640 * error.c (dump_template_argument_list): Likewise.
642 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
644 * cp-tree.h: Fix a comment typo.
646 2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
649 * decl.c (grokdeclarator): Return error_mark_node after invalid
652 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
655 * decl.c (grokvardecl): Use FROB_CONTEXT.
656 * pt.c (register_specialization): Likewise.
658 2006-07-23 Mark Mitchell <mark@codesourcery.com>
661 * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
662 * name-lookup.c (unqualified_namespace_lookup): There is no way to
663 have a hidden name in non-namespace scopes.
664 * pt.c (tsubst_friend_class): Look for hidden names.
665 * decl.c (lookup_and_check_tag): Fix typo in comment.
667 * semantics.c (finish_compound_literal): Fix typo in comment.
669 2006-07-21 Jason Merrill <jason@redhat.com>
671 * decl2.c (determine_visibility): Don't propagate visibility from
673 (constrain_class_visibility): Don't warn in system headers.
674 Don't warn about pointer fields.
676 2006-07-20 Mike Stump <mrs@apple.com>
678 * decl2.c (determine_visibility_from_class): Don't use hidden
679 visibility for explicit instantiations.
681 2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
684 * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
685 valid decls. Cleanup.
688 * semantics.c (check_template_template_default_arg): Simplify
691 2006-07-20 Jason Merrill <jason@redhat.com>
694 * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
695 const variables with implicit internal linkage.
696 * tree.c (decl_linkage): Only return lk_external if it's set.
699 * decl2.c (constrain_visibility): Ignore the anonymous namespace
700 for extern "C" decls.
701 (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
703 * decl2.c (constrain_visibility): Remove specified and reason
704 parameters. Don't touch decls that already have explicit visibility.
705 (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
707 (determine_visibility_from_class): Reverse sense of
708 DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
709 (constrain_class_visibility): Only complain about member visibility
710 if the member type is another class. Don't change visibility of the
713 2006-07-19 Mark Mitchell <mark@codesourcery.com>
716 * decl.c (layout_var_decl): Don't call push_local_name here.
717 (initialize_artificial_var): Assert artificiality.
718 (cp_finish_decl): Call push_local_name here.
720 2006-07-18 Mark Mitchell <mark@codesourcery.com>
723 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
726 2006-07-18 Mark Mitchell <mark@codesourcery.com>
729 * semantics.c (check_accessibility_of_qualified_id): Robustify.
732 * pt.c (tsubst_decl): Handling substitutions into a static data
733 member from within the scope of the tempalte itself.
735 2006-07-18 Lee Millward <lee.millward@gmail.com>
738 * method.c (locate_copy): Check for non_reference
739 returning error_mark_node.
742 * decl.c (duplicate_decls): Return error_mark_node
743 on ambiguous declaration.
745 2006-07-18 Steve Ellcey <sje@cup.hp.com>
748 * search.c (adjust_result_of_qualified_name_lookup): Change
749 assert to part of if statement.
751 2006-07-17 Steve Ellcey <sje@cup.hp.com>
754 * decl.c (reshape_init_class): Return error_mark_node on error.
756 2006-07-17 Steve Ellcey <sje@cup.hp.com>
759 * decl2.c (check_classfn): Return NULL_TREE on error.
761 2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
764 * name-lookup.c (pushdecl_maybe_friend): Return early on
766 * except.c (expand_start_catch_block): Use error_mark_node instead
767 of NULL_TREE for invalid decls.
768 * parser.c (cp_parser_exception_declaration): Return error_mark_node
769 on invalid catch parameter. Simplify.
771 2006-07-16 Jakub Jelinek <jakub@redhat.com>
774 * decl2.c (note_vague_linkage_var): Removed.
775 (finish_static_data_member_decl): Add decl to pending_statics vector
776 directly. Do it even for non-public decls.
778 2006-07-15 Lee Millward <lee.millward@gmail.com>
781 * decl2.c (acceptable_java_type): Robustify. Use
782 proper Boolean return type instead of return 1.
783 (check_java_method): Don't issue error about
784 type not being an acceptable Java parameter if
785 it's error_mark_node.
788 * parser.c (cp_parser_elaborated_type_specifier):
789 Return early if an invalid type was detected.
791 2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
794 * parser.c (cp_parser_check_decl_spec): New function.
795 (cp_parser_decl_specifier_seq): Factor out check for repeated
796 decl-specifiers into cp_parser_check_decl_spec. Use it.
797 (cp_parser_type_specifier_seq): Use it.
800 * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
804 * decl2.c (cplus_decl_attributes): Check for invalid decls.
806 2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
809 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
810 * decl2.c (grokfield): Likewise.
812 2006-07-12 Geoffrey Keating <geoffk@apple.com>
814 * decl2.c (determine_visibility): Don't change visibility of
815 function locals because of -fvisibility-inlines-hidden.
817 2006-07-12 Jason Merrill <jason@redhat.com>
820 * semantics.c (note_decl_for_pch): Don't premangle templates.
822 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
824 * typeck.c (string_conv_p): Remove spurious quotation mark in
827 2006-07-07 Lee Millward <lee.millward@gmail.com>
828 Andrew Pinski <pinskia@gmail.com>
831 * decl.c (define_label): Return error_mark_node on error.
832 * semantics.c (finish_label_stmt): Don't call
833 add_stmt for invalid labels.
835 2006-07-06 Jason Merrill <jason@redhat.com>
838 * decl2.c (finish_static_data_member_decl): Don't assert
841 2006-07-05 Jason Merrill <jason@redhat.com>
845 * class.c (check_field_decls): Check TYPE_PACKED after
846 stripping array types.
847 (finish_struct_bits): Don't copy TYPE_SIZE here.
850 * friend.c (is_friend): Fix DR 45 implementation.
852 2006-07-05 Richard Guenther <rguenther@suse.de>
853 Andrew Pinski <pinskia@gcc.gnu.org>
856 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
857 top level qualifiers for pointer type comparisons.
859 2006-07-01 Jason Merrill <jason@redhat.com>
862 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
865 2006-06-30 Jason Merrill <jason@redhat.com>
868 * call.c (build_new_method_call): Force evaluation of the
869 instance pointer, not the object.
871 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
873 * decl2.c: Fix a comment typo.
875 2006-06-30 Jason Merrill <jason@redhat.com>
878 * decl2.c (grokfield): Only try to treat the decl as an access
879 declaration if the scope is a class.
881 2006-06-29 Jason Merrill <jason@redhat.com>
888 * decl2.c (determine_visibility): Overhaul.
889 (determine_visibility_from_class): Likewise.
890 (min_vis_r, type_visibility, constrain_visibility): New fns.
891 (constrain_visibility_for_template): Likewise.
892 (constrain_class_visibility): Likewise.
893 * decl.c (cp_finish_decl): Call determine_visibility for function
895 * name-lookup.c (pushtag): Call determine_visibility.
896 * decl.c (duplicate_decls): Don't copy visibility from template to
898 * pt.c (check_explicit_specialization): Likewise.
899 (lookup_template_class, tsubst_decl): Call determine_visibility.
900 * class.c (finish_struct_1): Call constrain_class_visibility.
905 * parser.c (cp_parser_explicit_instantiation): Pass the attributes
907 (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
908 (cp_parser_enum_specifier): Likewise.
909 (cp_parser_elaborated_type_specifier): Apply attributes if this
910 declares only the class.
911 (cp_parser_class_specifier): Apply leading attributes immediately.
912 * semantics.c (begin_class_definition): Add attributes parameter,
913 apply them to the type.
917 * tree.c (decl_anon_ns_mem_p): New function.
918 * cp-tree.h: Declare it.
919 * decl2.c (determine_visibility): Make anonymous namespace
921 (min_vis_r, constrain_visibility): Likewise.
922 * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
924 * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
926 * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
927 on anonymous namespaces.
929 2006-06-28 Jason Merrill <jason@redhat.com>
932 * pt.c (convert_template_argument): Pass all template arguments
933 on to coerce_template_template_parms.
935 2006-06-25 Lee Millward <lee.millward@gmail.com>
936 Mark Mitchell <mark@codesuorcery.com>
939 * decl2.c (grokbitfied): Remove check for grokdeclarator
940 returning NULL_TREE, instead check for error_mark_node
942 * decl.c (grokdeclarator): Adjust block comment.
944 2006-06-25 Lee Millward <lee.millward@gmail.com>
947 * mangle.c (mangle_conv_op_name_for_type): Check for
949 * name-lookup.c (push_class_level_binding): Robustify.
950 (do_class_using_decl): Return early if name is error_mark_node.
952 2006-06-23 Steve Ellcey <sje@cup.hp.com>
955 * name-lookup.c (pushtag): Return if we have error_mark_node.
957 2006-06-23 Steve Ellcey <sje@cup.hp.com>
960 * typeck2.c (process_init_constructor_array): Set ce->value on errors.
962 2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
965 * parser.c (cp_parser_attribute_list): Skip attributes with invalid
966 arguments. Fix comment.
969 * init.c (build_new_1): Handle error_mark_nodes returned by
970 build_java_class_ref.
971 (build_java_class_ref): Do not abort compilation, but return
972 error_mark_node. Improve error message. Fix indentation.
974 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
977 * decl.c (start_decl): Check that dllimports are not initialized.
979 2006-06-22 Lee Millward <lee.millward@gmail.com>
982 * typeck2.c (build_m_component_ref): Use error_operand_p.
985 * decl.c (grokdeclarator): Return error_mark_node on
986 invalid uses of the scope resolution operator.
988 2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
991 * pt.c (determine_specialization): Check for invalid decls.
994 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
998 * rtti.c (get_tinfo_decl_dynamic): Robustify.
1000 2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1003 * init.c (push_base_cleanups): Skip members with invalid types.
1004 * typeck.c (build_class_member_access_expr): Robustify.
1006 2006-06-19 Mark Mitchell <mark@codesourcery.com>
1008 * pt.c (instantiate_template): Fix typo in comment.
1010 2006-06-19 Richard Guenther <rguenther@suse.de>
1012 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
1013 power-of-two token vector size.
1015 2006-06-16 Mark Mitchell <mark@codesourcery.com>
1018 * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
1022 * call.c (standard_conversion): Strip cv-qualifiers from bitfield
1026 * decl.c (have_extern_spec): Remove.
1027 (start_decl): Do not check have_extern_spec.
1028 (start_function): Likewise.
1029 * cp-tree.h (have_extern_spec): Remove.
1030 * parser.c (cp_parser_linkage_specification): Don't set
1032 (cp_parser_init_declarator): Likewise.
1033 (cp_parser_parameter_declaration): Do not treat parameters as
1034 within the scope of an unbraced linkage specification.
1036 2006-06-15 Mark Mitchell <mark@codesourcery.com>
1039 * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
1041 * pt.c (unify): Use it.
1044 * call.c (build_conditional_expr): Robustify.
1047 * pt.c (instantiate_template): Set processing_template_decl to
1048 zero while performing substitutions.
1050 2006-06-14 Mark Mitchell <mark@codesourcery.com>
1053 * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
1054 identify destructors.
1055 (cp_parser_nested_name_specifier_opt): Remove invalid
1057 (cp_parser_template_id): Refine heuristic for determining whether
1058 we are entering a scope.
1061 * parser.c (cp_parser_declarator): Robustify.
1064 * pt.c (tsubst_expr): Use finish_omp_atomic.
1065 (value_dependent_expression_p): All CALL_EXPRs are dependent.
1066 * semantics.c (finish_omp_atomic): Rework to use standard
1067 paradigms for handling non-dependent expressions.
1069 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1071 * typeck.c (build_modify_expr): Tidy diagnostic message.
1073 2006-06-14 Mark Mitchell <mark@codesourcery.com>
1076 * typeck.c (build_modify_expr): Disallow array assignment.
1078 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1080 * cp-tree.def: Fix typo.
1082 2006-06-13 Mark Mitchell <mark@codesourcery.com>
1085 * decl.c (decls_match): Allow an extern "C" variable declarations
1086 from different namespaces to match.
1087 (duplicate_decls): Disallow redeclaring a variable with a
1088 different linkage specification.
1090 2006-06-13 Jakub Jelinek <jakub@redhat.com>
1093 * cp-tree.h (cxx_int_tree_map): New struct.
1094 (struct language_function): Add extern_decl_map field.
1095 * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
1096 to cp_function_chain->extern_decl_map hash table instead of
1097 copying over DECL_UID.
1098 * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
1100 (cp_genericize_r): Remap DECL_EXTERN local decls using
1101 cp_function_chain->extern_decl_map hash table.
1102 * decl.c (finish_function): Clear extern_decl_map.
1104 2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1107 * semantics.c (finish_offsetof): Handle pseudo-destructors.
1110 * name-lookup.c (lookup_qualified_name): Always return error_mark_node
1114 * decl2.c (finish_anon_union): Return early if build_anon_union_vars
1117 2006-06-12 Roger Sayle <roger@eyesopen.com>
1120 * typeck2.c (build_functional_cast): Use cp_convert to construct
1121 non-aggregate initializers instead of the user-level build_c_cast.
1123 2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1126 * cp-tree.h (finish_offsetof): Add prototype.
1127 * semantics.c (finish_offsetof): New function.
1128 * parser.c (cp_parser_builtin_offsetof): Call it instead of
1130 * pt.c (tsubst_copy_and_build): Likewise.
1132 2006-06-06 Mark Mitchell <mark@codesourcery.com>
1135 * call.c (standard_conversion): Require that the derived type be
1136 complete when performing a derived-to-base conversion.
1138 2006-06-04 Mark Mitchell <mark@codesourcery.com>
1141 * decl.c (cp_finish_decl): Process initializers for static data
1142 members with non-dependent initializers, even in templates.
1145 * decl.c (maybe_deduce_size_from_array_init): If the declaration
1146 is erroneous, give it an erroneous type.
1147 (layout_var_decl): If the type is erroneous, give up.
1148 (check_initializer): Likewise.
1151 * cp-tree.h (TYPE_OBJ_P): New macro.
1152 (TYPE_PTROB_P): Use it.
1153 (TYPE_REF_OBJ_P): Likewise.
1154 * semantics.c (finish_compound_literal): Do not permit compound
1155 literals of non-object types.
1158 * typeck.c (original_type): Robustify.
1160 2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1163 * init.c (constant_value_1): Return decl instead of error_mark_node
1164 for invalid initializers.
1166 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
1169 * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
1170 on operand of the COND_EXPR for the null pointer check.
1172 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
1175 * typeck.c (build_unary_op): Mark the function as being used.
1177 2006-06-01 Alexandre Oliva <aoliva@redhat.com>
1180 * parser.c (cp_parser_initial_pragma): Read one more token for
1181 caller after reading PCH file in.
1183 2006-05-31 Mark Mitchell <mark@codesourcery.com>
1186 * call.c (perform_implicit_conversion): Do not actually perform
1187 conversions in templates.
1190 * call.c (resolve_args): Check for invalid uses of bound
1191 non-static member functions.
1192 * init.c (build_offset_ref): Return error_mark_node for errors.
1195 * decl.c (reshape_init): Robustify.
1196 (reshape_init_array_1): Likewise.
1198 2006-05-30 Mark Mitchell <mark@codesourcery.com>
1201 * parser.c (cp_parser_decl_specifier_seq): Issue errors about
1202 "friend" specifiers that do not appear in class scopes.
1205 * class.c (check_bitfield_decl): Ensure that all bitfields have
1208 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
1210 * pt.c (convert_nontype_argument): Fix a typo in an error
1213 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
1215 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
1216 spelling conventions.
1218 2006-05-24 Mark Mitchell <mark@codesourcery.com>
1221 * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
1222 error_mark_node to indicate an initialization is OK.
1223 (start_decl): Likewise. Adjust call to start_decl_1.
1224 (start_decl_1): Add initialized parameter. Simplify.
1225 * except.c (initialize_handler_parm): Adjust call to
1227 (expand_start_catch_block): Let cp_finish_decl initialize catch
1229 * cp-tree.h (start_decl_1): Adjust prototype.
1230 * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
1231 (instantiate_decl): Let cp_finish_decl handle initialization.
1232 * semantics.c (finish_compound_literal): Create a temporary
1233 variable for the literal.
1234 * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
1236 * decl2.c (finish_static_data_member_decl): Don't set
1238 (grokfield): Do not try to initialize functions.
1240 2006-05-23 Mark Mitchell <mark@codesourcery.com>
1243 * pt.c (determine_specialization): Disallow partial
1244 specializations of templates.
1246 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1249 * typeck.c (build_modify_expr): Test arguments for error_operand_p.
1251 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
1253 2006-05-21 Mark Mitchell <mark@codesourcery.com>
1256 * cp-tree.h (cp_save_expr): New function.
1257 * init.c (build_new): Correct logic for zero-element array
1258 warning. Use cp_save_expr.
1259 * tree.c (cp_save_expr): New function.
1261 2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1264 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
1267 2006-05-19 Mike Stump <mrs@apple.com>
1269 * typeck.c (default_conversion): Remove static.
1271 2006-05-19 Mark Mitchell <mark@codesourcery.com>
1274 * cp-tree.h (begin_function_try_block): Change prototype.
1275 (finish_function_handler_sequence): Likewise.
1276 * parser.c (cp_parser_function_try_block): Adjust calls.
1277 * pt.c (tsubst_expr): Adjust calls.
1278 * semantics.c (begin_function_try_block): Create an artificial
1280 (finish_function_handler_sequence): Close it.
1282 2006-05-18 Mark Mitchell <mark@codesourcery.com>
1286 * typeck.c (decay_conversion): Convert bitfields to their declared
1287 types here. Improve documentation. Avoid use of cp_convert.
1288 (default_conversion): Make it static. Perform integral promotions
1289 before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
1291 * init.c (build_init): Remove.
1292 (expand_default_init): Do not call rvalue.
1293 * call.c (null_ptr_cst_p): Robustify.
1294 (build_conditional_expr): Tidy.
1295 * except.c (build_throw): Do not perform lvalue-to-rvalue
1296 conversion on operand before initializing temporary.
1297 * tree.c (convert.h): Include it.
1298 (convert_bitfield_to_declared_type): Use convert_to_integer, not
1300 (rvalue): Don't convert bitfields to their declared type here.
1301 * cp-tree.h (build_init): Remove.
1302 (default_conversion): Likewise.
1303 * typeck2.c (build_m_component_ref): Do not perform
1304 lvalue-to-rvalue, function-to-pointer, or array-to-pointer
1305 conversions here. Correct error message.
1307 2006-05-17 Mark Mitchell <mark@codesourcery.com>
1310 * decl2.c (check_member_template): Remove checks for virtual
1312 * parser.c (cp_parser_function_specifier_opt): Complain about
1314 (cp_parser_pure_specifier): Likewise.
1317 * parser.c (cp_parser_set_storage_class): Check for
1318 invalid uses of storage classes on unbraced linkage
1320 (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
1321 to cp_parser_set_storage_class.
1323 2006-05-17 Jakub Jelinek <jakub@redhat.com>
1326 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
1330 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
1331 on combined parallel workshare constructs.
1332 * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
1334 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
1337 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
1339 2006-05-15 Mark Mitchell <mark@codesourcery.com>
1342 * cp-tree.h (perform_access_checks): New function.
1343 * semantics.c (perform_access_checks): New function.
1344 (perform_deferred_access_checks): Use it.
1345 * parser.c (cp_parser_simple_declaration): Adjust call to
1346 cp_parser_init_declarator.
1347 (cp_parser_type_parameter): Do not defer checks in default
1349 (cp_parser_explicit_specialization): Adjust call to
1350 cp_parser_single_declaration.
1351 (cp_parser_init_declarator): Perform template-parameter access
1353 (cp_parser_parameter_declaration): Do not defer checks for
1354 template parameter default arguments.
1355 (cp_parser_template_declaration_after_export): Gather access
1356 checks for template parameters, and pass them to
1357 cp_parser_single_declaration.
1358 (cp_parser_template_parameter_access_checks): New function.
1359 (cp_parser_single_declaration): Add checks parameter.
1362 * call.c (convert_like_real): Convert bitfields to their declared
1363 types when forming an rvalue.
1364 * tree.c (convert_bitfield_to_declared_type): New function.
1366 * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
1368 2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1371 * pt.c (any_dependent_template_arguments_p): Return early on invalid
1375 * search.c (adjust_result_of_qualified_name_lookup): Skip on
1376 invalid context_class.
1379 * pt.c (do_decl_instantiation): Return early on invalid decl.
1382 * pt.c (push_template_decl_real): Return error_mark_node instead
1386 * pt.c (tsubst_friend_class): Return early on invalid friend
1389 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
1391 * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
1392 (cp/decl2.o): Likewise.
1393 (cp/typeck.o): Likewise.
1394 (cp/cvt.o): Likewise.
1395 (cp/parser.o): Likewise.
1396 (cp/call.o): Replace target.h with $(TARGET_H).
1398 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
1400 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
1401 COMPONENT_REF alone.
1403 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1406 * decl.c (copy_fn_p): Return early on non-member functions.
1408 2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1411 * decl2.c (build_memfn_type): Skip invalid functions and class types.
1413 2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1416 * pt.c (convert_nontype_argument): Return early on invalid arguments.
1418 * pt.c (process_template_parm): Remove superfluous temporary.
1421 * pt.c (process_template_parm): Handle erroneous non-type parameters.
1424 * typeck.c (convert_for_initialization): Skip erroneous types.
1427 * typeck.c (convert_arguments): Return early on args with
1430 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
1433 * typeck.c (build_static_cast_1): Save casted types in used types
1435 (build_reinterpret_cast_1): Same.
1436 * rtti.c (build_dynamic_cast_1): Same.
1438 2006-05-04 Jakub Jelinek <jakub@redhat.com>
1441 * parser.c (cp_parser_omp_for_loop): Only call
1442 cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
1445 2006-05-02 Mark Mitchell <mark@codesourcery.com>
1448 * decl.c (grokdeclarator): Robustify checks for defining members
1449 of incomplete types.
1452 * class.c (add_method): Call grok_special_member_properties.
1453 * decl.c (grokdeclarator): Don't call it here.
1454 (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
1455 assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
1457 (start_method): Don't call grok_special_member_properties.
1458 * method.c (implicitly_declare_fn): Likewise.
1459 * pt.c (instantiate_class_template): Likewise.
1460 * decl2.c (grokfield): Likewise.
1462 2006-05-02 Jakub Jelinek <jakub@redhat.com>
1465 * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
1466 * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
1467 * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
1469 2006-04-30 Mark Mitchell <mark@codesourcery.com>
1472 * pt.c (tsubst_default_argument): Increment function_depth around
1473 call to tsubst_expr.
1474 * parser.c (cp_parser_parameter_declaration): Likewise.
1475 * decl2.c (mark_used): Tidy.
1477 2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1480 * decl.c (grok_op_properties): Skip operators with invalid args
1481 when checking for class-type or enum-type args.
1483 2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1486 * decl.c (copy_fn_p): Skip functions with invalid first arg.
1488 2006-04-27 Mark Mitchell <mark@codesourcery.com>
1491 * tree.c (rvalue): Convert bitfields to their declared types.
1494 * typeck2.c (cxx_incomplete_type_diagnostic): Handle
1497 2006-04-24 Mark Mitchell <mark@codesourcery.com>
1500 * typeck.c (decay_conversion): Don't adjust bitfield types.
1501 (perform_integral_promotions): Treat bitfield enums as enums, not
1502 as short integer types.
1503 * tree.c (rvalue): Convert bitfields to their correct types.
1505 2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1508 * class.c (layout_class_type): Skip fields with invalid types.
1510 2006-04-23 Mark Mitchell <mark@codesourcery.com>
1513 * cp-tree.h (build_this_parm): Declare.
1514 (grok_method_quals): Remove.
1515 (build_memfn_type): Declare.
1516 (build_artificial_parm): Declare.
1517 (do_friend): Remove quals parameter.
1518 * decl.c (build_this_parm): New function.
1519 (grokfndecl): Use it. Do not pass quals to grokclassfn.
1520 (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
1521 unnecessary TYPE_DECLs. Correct qualification of member function
1523 * method.c (implicitly_declare_fn): Use build_this_parm.
1524 * friend.c (do_friend): Remove quals parameter.
1525 * decl2.c (grok_method_quals): Remove.
1526 (build_memfn_type): New function.
1527 (build_artificial_parm): Give it external linkage.
1528 (grokclassfn): Remove quals parameter. Do not build "this"
1532 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
1533 * typeck.c (is_bitfield_expr_with_lowered_type): New function.
1534 (decay_conversion): Convert bitfield expressions to the correct
1536 (build_modify_expr): Remove spurious conversions.
1537 * class.c (layout_class_type): Modify the type of bitfields to
1538 indicate a limited range.
1539 * call.c (standard_conversion): Adjust the type of bitfield
1540 expressions used in an rvalue context.
1541 (build_conditional_expr): Likewise.
1543 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
1545 * decl.c: Fix comment typos.
1547 2006-04-21 Eric Christopher <echristo@apple.com>
1549 * decl.c: Fix typo in function name.
1551 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1554 * parser.c (cp_parser_class_name): Check for invalid typenames.
1558 * pt.c (tsubst_friend_function): Return early if
1559 pushdecl_namespace_level fails.
1562 * typeck.c (convert_arguments): Return error_mark_node instead of
1564 * cp-tree.h (error_mark_list): Remove declaration.
1565 * decl.c (error_mark_list): Remove definition.
1566 (cxx_init_decl_processing): Do not initialize error_mark_list.
1569 * rtti.c (build_dynamic_cast_1): Check for invalid conversions
1570 before calling convert_to_reference.
1571 * cvt.c (convert_to_reference): Assert that reftype is a
1574 2006-04-19 Mark Mitchell <mark@codesourcery.com>
1577 * class.c (currently_open_class): Tidy.
1578 * decl.c (grokdeclarator): If we encounter an erroneous
1579 declarator, assume that we have already issued an error message
1580 and return. Return error_mark_node instead of NULL_TREE in more
1581 places. Issue errors about function definitions that do not have
1582 a function declarator. Check for complete types for all function
1584 * cp-tree.h (cp_error_declarator): Remove.
1585 (currently_open_class): Change return type.
1586 * parser.c (cp_parser_id_expression): Add optional_p parameter.
1587 (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
1588 (cp_parser_id_expression): Likewise.
1589 (cp_parser_unqualified_id): If the name is optional, return
1591 (cp_parser_postfix_dot_deref_expression): Adjust calls.
1592 (cp_parser_type_parameter): Likewise.
1593 (cp_parser_unqualified_id): Likewise.
1594 (cp_parser_direct_declarator): Likewise.
1595 (cp_parser_declarator_id): Add optional_p parameter.
1596 (cp_parser_function_definition_from_specifiers_and_declarator):
1597 Assume that start_function indicates failure only if it has issued
1599 (cp_parser_omp_var_list_no_open): Adjust calls.
1601 2006-04-17 Janis Johnson <janis187@us.ibm.com>
1603 PR c++/26114, c++/26115
1604 * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
1605 * class.c (check_field_decls): Ditto.
1607 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1609 * init.c (build_offset_ref): Remove superfluous temporary.
1611 2006-04-16 Mark Mitchell <mark@codesourcery.com>
1614 * typeck.c (finish_class_member_access_expr): Robustify
1616 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
1618 * Make-lang.in (cp/pt.o): Depend on vecprim.h.
1619 * pt.c: Include vecprim.h.
1620 (inline_parm_levels): Change the type to VEC(int,heap) *.
1621 (inline_parm_levels_used): Remove.
1622 (maybe_begin_member_template_processing,
1623 maybe_end_member_template_processing): Use VEC instead of
1626 * cp/call.c: Fix comment typos.
1628 2006-04-12 Mark Mitchell <mark@codesourcery.com>
1630 * parser.c (cp_parser_init_declarator): Initialize local variables
1633 2006-04-12 Roger Sayle <roger@eyesopen.com>
1635 * parser.c (cp_parser_init_declarator): Initialise
1636 is_parenthesized_init to false to avoid compiler warning.
1638 2006-04-11 Mark Mitchell <mark@codesourcery.com>
1640 * cp-tree.h (build_operator_new_call): Adjust prototype.
1641 (build_new_method_call): Likewise.
1642 (build_op_delete_call): Likewise.
1643 * init.c (build_raw_new_expr): New function.
1644 (build_new_1): Pass information as parameters, rather than
1645 bundling it into a NEW_EXPR.
1646 (build_new): Adjust accordingly.
1647 (build_vec_delete_1): Adjust for changes to build_op_delete_call.
1648 (build_delete): Likewise.
1649 * decl.c (finish_destructor_body): Likewise.
1650 * call.c (build_operator_new_call): Return the allocation function
1652 (build_op_delete_call): Take allocation function as parameter.
1653 (build_special_member_call): Adjust call to build_new_method_call.
1654 (build_new_method_call): Return function called.
1655 * pt.c (tsubst_copy_and_build): Adjust call to
1656 build_new_method_call.
1657 * semantics.c (finish_call_expr): Likewise.
1658 * parser.c (cp_parser_postfix_expression): Likewise.
1659 * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
1660 "incomplete", not "undefined", types.
1663 * decl.c (grokdeclarator): Remove namespace-handling code for
1664 pointers-to-members.
1665 * parser.c (cp_parser_ptr_operator): Check for qualified names
1669 * parser.c (cp_parser_init_declarator): Adjust logic for deciding
1670 whether or not to look for a pure-specifier.
1671 (cp_parser_member_declaration): Likewise.
1673 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
1675 * decl2.c, pt.c, semantics.c: Fix comment typos.
1677 2006-04-06 Roger Sayle <roger@eyesopen.com>
1679 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
1681 2006-04-05 Jason Merrill <jason@redhat.com>
1683 * name-lookup.c (push_namespace_with_attribs): Temporarily disable
1684 default hidden visibility for anonymous namespace.
1686 2006-03-29 Roger Sayle <roger@eyesopen.com>
1689 * init.c (build_vec_delete_1): Convert BASE pointer's type to
1690 the base pointer type to avoid a type mismatch in the EQ_EXPR.
1692 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
1694 * search.c (maybe_suppress_debug_info): If
1695 flag_emit_class_debug_always then don't suppress.
1697 2006-03-22 Jason Merrill <jason@redhat.com>
1699 * name-lookup.c (push_namespace_with_attribs): Only apply hidden
1700 visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
1702 2006-03-21 Jakub Jelinek <jakub@redhat.com>
1705 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
1707 2006-03-21 Jason Merrill <jason@redhat.com>
1710 * parser.c (cp_parser_declaration): Support attributes on
1711 anonymous namespaces.
1712 * name-lookup.c (push_namespace_with_attribs): Anonymous
1713 namespaces default to hidden visibility.
1715 2006-03-20 Jason Merrill <jason@redhat.com>
1717 PR c++/21764, c++/19238
1718 * decl.c (cp_finish_decl): Call determine_visibility later.
1719 (start_preparsed_function): Likewise.
1720 * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
1721 (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
1722 * name-lookup.h (struct cp_binding_level): Add has_visibility
1724 * name-lookup.c: Include c-pragma.h.
1725 (push_namespace_with_attribs): Split out from push_namespace.
1726 Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
1727 (leave_scope): Pop visibility if appropriate.
1728 * decl2.c (determine_visibility_from_class): Split out from...
1729 (determine_visibility): ...here. Handle function scope and
1731 (import_export_decl): Move visibility handling to
1732 determine_visibility_from_class.
1733 * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
1734 attributes on namespace declarations.
1736 2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1739 * decl.c (grokdeclarator): Do not accept long long double.
1740 Reorganize checks for invalid (combinations of) type modifiers.
1741 Quote modifiers in messages.
1743 2006-03-09 Jason Merrill <jason@redhat.com>
1745 PR c++/16387, c++/16389
1746 * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
1747 (cxx_sizeof_or_alignof_expr): Split out from here.
1749 2006-03-09 Diego Novillo <dnovillo@redhat.com>
1751 Merge from gomp-20050608-branch
1753 2006-02-02 Diego Novillo <dnovillo@redhat.com>
1755 * decl.c (pop_labels_1): Use appropriate pointer casting.
1756 (poplevel_named_label_1): Likewise.
1757 (named_label_entry_hash): Likewise.
1758 (named_label_entry_eq): Likewise.
1759 (check_goto): Likewise.
1760 (define_label): Likewise.
1762 2006-01-26 Diego Novillo <dnovillo@redhat.com>
1764 * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
1766 * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
1767 instead of TREE_CODE/TREE_OPERAND.
1768 * semantics.c: Likewise.
1769 * parser.c: Likewise.
1771 2005-11-10 Diego Novillo <dnovillo@redhat.com>
1773 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
1774 target does not support TLS.
1776 2005-11-09 Jakub Jelinek <jakub@redhat.com>
1778 * decl.c (redeclaration_error_message): Don't error about
1779 DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
1782 2005-11-08 Jakub Jelinek <jakub@redhat.com>
1785 * semantics.c (finish_omp_barrier, finish_omp_flush): New
1787 * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
1788 (cp_parser_omp_flush): Call finish_omp_flush.
1789 * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
1793 * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
1795 2005-11-03 Jakub Jelinek <jakub@redhat.com>
1797 * semantics.c (finish_omp_threadprivate): Error on class-scope
1800 2005-11-02 Jakub Jelinek <jakub@redhat.com>
1802 * parser.c (cp_parser_omp_all_clauses): If some clause
1803 type is not allowed, don't remove just one of the
1804 clauses, but all clauses added in that loop round.
1806 * semantics.c (finish_omp_clauses): Fix function
1807 comment. Don't handle non-const or mutable specially,
1808 as const and not mutable is predetermined shared and
1809 that leads to double error. Don't ICE if copyin var is
1813 * parser.c (cp_parser_pragma): Diagnose
1814 PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
1817 * semantics.c (finish_omp_threadprivate): Error if V
1818 is automatic variable or has incomplete type.
1820 2005-11-01 Diego Novillo <dnovillo@redhat.com>
1822 * parser.c (cp_parser_omp_all_clauses): Use
1823 OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
1825 2005-11-01 Diego Novillo <dnovillo@redhat.com>
1827 * parser.c (cp_parser_omp_all_clauses): When emitting an
1828 error message, remove the invalid clause from the list.
1830 2005-10-31 Diego Novillo <dnovillo@redhat.com>
1832 * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
1833 combined parallel+workshare directives.
1835 2005-10-31 Richard Henderson <rth@redhat.com>
1837 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
1838 Use cxx_omp_clause_dtor.
1839 * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
1840 (cxx_omp_clause_dtor): New.
1841 * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
1842 (cxx_omp_clause_default_ctor): Use it.
1843 (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
1845 (cxx_omp_clause_dtor): New.
1846 * semantics.c (finish_omp_clauses): Rewrite cdtor
1847 checking to fill in CP_OMP_CLAUSE_INFO. Don't
1848 specialcase LASTPRIVATE for removal.
1849 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
1850 cxx_omp_clause_assign_op): Move to cp-gimplify.c.
1852 2005-10-28 Jakub Jelinek <jakub@redhat.com>
1854 * semantics.c (finish_omp_threadprivate): If
1855 DECL_RTL_SET_P, call make_decl_rtl again so that
1856 encode_section_info can update SYMBOL_REF's flags.
1858 2005-10-26 Jakub Jelinek <jakub@redhat.com>
1860 * semantics.c (finish_omp_for): Don't segfault if COND
1861 or INCR is NULL. If not calling c_finish_omp_for
1862 right away and one of COND and INCR is NULL, issue
1863 error and don't expand anything.
1866 * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
1867 * semantics.c (finish_omp_for): Likewise. Set
1868 OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
1869 into the current statement list if not processing
1870 template decl or pass it to c_finish_omp_for.
1872 * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
1873 into PRE_BODY statement list. Pass it to finish_omp_for.
1874 * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
1875 OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
1876 finish_omp_for. Put all the statements into sk_omp
1879 2005-10-25 Jakub Jelinek <jakub@redhat.com>
1882 * parser.c (struct cp_parser): Rename in_iteration_statement
1883 field to in_statement.
1884 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
1885 (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
1886 (cp_parser_new, cp_parser_begin_omp_structured_block,
1887 cp_parser_end_omp_structured_block,
1888 cp_parser_omp_for_loop): Adjust for
1889 in_iteration_statement renaming.
1890 (cp_parser_selection_statement): Save
1891 parser->in_iteration, or it temporarily with
1892 IN_SWITCH_STMT for the
1893 cp_parser_implicitly_scoped_statement call.
1894 (cp_parser_iteration_statement): Adjust for
1895 in_iteration_statement renaming. Use
1896 IN_ITERATION_STMT rather than true.
1897 (cp_parser_jump_statement): Adjust for
1898 in_iteration_statement renaming and new values. Don't
1899 error on break in a switch statement within OMP_FOR or
1900 OpenMP structured block.
1903 * parser.c (cp_parser_cache_group): Don't stop if next
1904 token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
1905 well. If current token is CPP_PRAGMA, consume
1906 everything until CPP_PRAGMA_EOL inclusive.
1908 2005-10-24 Jakub Jelinek <jakub@redhat.com>
1911 * semantics.c (finish_omp_for): Handle MODOP_EXPR in
1912 addition to MODIFY_EXPR.
1914 2005-10-23 Richard Henderson <rth@redhat.com>
1916 * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
1918 (begin_bc_block, finish_bc_block): Use it.
1919 (push_context, pop_context): Remove.
1920 (cp_genericize): Don't use them. Assert bc_label is null.
1921 * semantics.c (finish_omp_clauses): Create a fake data
1922 element of TYPE for probing ctors.
1924 2005-10-23 Richard Henderson <rth@redhat.com>
1926 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
1927 (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
1928 (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
1929 (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
1930 * semantics.c (finish_omp_clauses): Look through
1931 arrays when looking up special member calls. Also
1932 remove FIRSTPRIVATE when LASTPRIVATE fails.
1933 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
1934 (cxx_omp_clause_assign_op): New.
1935 * cp-tree.h: Declare them.
1937 2005-10-21 Richard Henderson <rth@redhat.com>
1939 * decl.c (check_previous_goto_1): Return false if error.
1940 (check_switch_goto): Likewise.
1941 (finish_case_label): Don't emit the case label on error.
1942 * parser.c (struct cp_parser): Revert
1943 in_switch_statement_p changes.
1944 (cp_parser_labeled_statement,
1945 cp_parser_selection_statement): Likewise.
1946 (cp_parser_begin_omp_structured_block): Don't save...
1947 (cp_parser_end_omp_structured_block): or restore
1948 in_switch_statement_p.
1950 2005-10-21 Richard Henderson <rth@redhat.com>
1952 * semantics.c (finish_omp_threadprivate): Set
1953 decl_flags.u2sel when necessary.
1955 2005-10-21 Richard Henderson <rth@redhat.com>
1957 * decl.c (poplevel_named_label_1): Restore creation of the
1959 (decl_jump_unsafe): Check for error_mark_node types.
1960 (check_goto): Don't check cdtor_label. Don't use identify_goto.
1961 * semantics.c (finish_return_stmt): Do check_omp_return before
1962 converting to cdtor_label goto.
1964 2005-10-21 Richard Henderson <rth@redhat.com>
1967 * decl.c (check_omp_return): Return false on error.
1968 * cp-tree.h (check_omp_return): Update decl.
1969 * semantics.c (finish_return_stmt): Avoid adding
1972 2005-10-21 Richard Henderson <rth@redhat.com>
1974 * cp-tree.h (struct language_function): Remove
1976 Change x_named_labels to a hashtable.
1977 (check_omp_return): Declare.
1978 * decl.c (struct named_label_use_entry): Rename from
1979 named_label_use_list. Remove label_decl.
1980 (struct named_label_entry): Rename from
1981 named_label_list. Remove old_value and next. Change
1982 in_try_scope and in_catch_scope to bool. Add
1984 (pop_labels_1): New.
1985 (pop_labels): Use it.
1986 (pop_local_label, poplevel_named_label_1): New.
1987 (poplevel): Use them.
1988 (named_label_entry_hash, named_label_entry_eq): New.
1989 (make_label_decl): Create named_labels. Move label
1990 creation bits from lookup_label.
1991 (declare_local_label): Tidy.
1992 (identify_goto): Split out from ...
1993 (check_previous_goto_1): Add exited_omp argument.
1996 (use_label): Merge into...
1997 (check_goto): ... here. Handle omp scopes.
1998 (check_omp_return): New.
1999 (check_previous_gotos): Merge into...
2000 (define_label): ... here.
2001 (save_function_data): Remove x_named_label_uses reference.
2002 (finish_function): Likewise.
2003 * name-lookup.h (sk_omp): New.
2004 * name-lookup.c (begin_scope): Handle it.
2005 * parser.c (cp_parser_omp_for): Don't create extra
2008 (cp_parser_omp_sections): Likewise.
2009 * semantics.c (finish_return_stmt): Call check_omp_return.
2010 (begin_omp_structured_block): Use sk_omp.
2011 (finish_omp_structured_block): Use do_poplevel. Don't build a
2012 MUST_NOT_THROW expression here.
2013 (begin_omp_parallel, finish_omp_parallel): Don't create extra
2014 compound statements.
2016 2005-10-21 Diego Novillo <dnovillo@redhat.com>
2019 * cp/cp-tree.h (struct lang_decl_flags): Add field
2021 (CP_DECL_IS_THREADPRIVATE): Define.
2022 * cp/semantics.c (finish_omp_threadprivate): Set. Do
2023 not error out if CP_DECL_IS_THREADPRIVATE is set
2025 * cp/decl.c (duplicate_decls): Merge
2026 CP_DECL_THREADPRIVATE_P.
2028 2005-10-20 Richard Henderson <rth@redhat.com>
2030 * cp-gimplify.c (cp_gimplify_omp_for): New.
2031 (cp_gimplify_expr): Call it.
2032 * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
2033 * parser.c (struct cp_parser): Rename
2034 in_iteration_statement_p to in_iteration_statement and
2035 change to unsigned char. Similarly with
2036 in_switch_statement. Update all users.
2037 (IN_OMP_BLOCK, IN_OMP_FOR): New.
2038 (cp_parser_labeled_statement): Diagnose case labels
2039 binding closer to an openmp block nested than the
2041 (cp_parser_jump_statement): Diagnose break and
2042 continue labels binding closer to an openmp block than
2043 an iteration or switch.
2044 (cp_parser_omp_for_loop): Mark in_iteration_statement
2046 (cp_parser_begin_omp_structured_block): New.
2047 (cp_parser_end_omp_structured_block): New.
2048 (cp_parser_omp_structured_block): Use them.
2049 (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
2050 (cp_parser_omp_parallel): Likewise.
2052 2005-10-20 Richard Henderson <rth@redhat.com>
2054 * semantics.c (begin_omp_structured_block): New.
2055 (finish_omp_structured_block): New.
2056 (begin_omp_parallel, finish_omp_parallel): Use them.
2057 * parser.c (cp_parser_omp_structured_block): Likewise.
2058 (cp_parser_omp_for): Likewise.
2059 (cp_parser_omp_sections_scope): Likewise.
2060 * cp-tree.h: Declare them.
2062 2005-10-20 Richard Henderson <rth@redhat.com>
2064 * parser.c (cp_parser_omp_master): Return the statement.
2065 (cp_parser_omp_ordered): Likewise.
2066 (cp_parser_omp_construct): Set the locus for them.
2068 2005-10-19 Richard Henderson <rth@redhat.com>
2070 * semantics.c (finish_omp_atomic): Revert to
2071 uses_template_parms.
2073 2005-10-19 Richard Henderson <rth@redhat.com>
2075 * semantics.c (finish_omp_clauses): Avoid
2076 DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
2077 stub asserts guaranteed to fail.
2079 2005-10-19 Richard Henderson <rth@redhat.com>
2081 * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
2082 (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
2083 * parser.c (cp_parser_omp_clause_copyin): Remove.
2084 (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
2085 Call finish_omp_clauses.
2086 (cp_parser_omp_clause_if): Don't do error checking here.
2087 (cp_parser_omp_clause_num_threads): Likewise.
2088 (cp_parser_omp_clause_schedule): Likewise.
2089 (cp_parser_omp_atomic): Use finish_omp_atomic.
2090 (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
2091 Don't decompose assignment statment here. Use
2094 * pt.c (tsubst_omp_clauses): New.
2095 (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2096 OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
2097 * semantics.c (finish_omp_clauses): New.
2098 (begin_omp_parallel, finish_omp_parallel): Know Less about the
2099 internals of the stmt_list stack.
2100 (finish_omp_for, finish_omp_atomic): New.
2102 2005-10-18 Jakub Jelinek <jakub@redhat.com>
2104 * semantics.c (cxx_omp_predetermined_sharing): New function.
2105 * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
2107 (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
2109 2005-10-18 Richard Henderson <rth@redhat.com>
2111 * parser.c (cp_parser_omp_single): Use make_node and accessors
2114 2005-10-17 Richard Henderson <rth@redhat.com>
2116 * parser.c (cp_parser_omp_for_loop): Handle declarations.
2118 2005-10-12 Richard Henderson <rth@redhat.com>
2120 * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
2121 * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
2122 (finish_omp_threadprivate): Declare.
2123 * parser.c (struct cp_lexer): Add in_pragma.
2124 (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
2126 (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
2127 (cp_parser_skip_to_end_of_statement): Likewise.
2128 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
2129 (cp_parser_skip_to_closing_brace): Likewise.
2130 (cp_parser_skip_to_pragma_eol): Reset in_pragma.
2131 (cp_parser_require_pragma_eol): New.
2132 (cp_parser_statement): Add in_compound argument;
2134 Restart if a non-statement pragma seen outside a
2136 (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
2137 (cp_parser_declaration_seq_opt): Likewise.
2138 (cp_parser_member_specification_opt): Likewise.
2139 (cp_parser_function_definition_after_decl): Likewise.
2140 (cp_parser_skip_until_found): Likewise.
2141 (cp_parser_cache_group): Likewise.
2142 (enum pragma_omp_clause, cp_parser_omp_clause_name,
2143 check_no_duplicate_clause,
2144 cp_parser_omp_var_list_no_open,
2145 cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
2146 cp_parser_omp_clause_default, cp_parser_omp_clause_if,
2147 cp_parser_omp_clause_nowait,
2148 cp_parser_omp_clause_num_threads,
2149 cp_parser_omp_clause_ordered,
2150 cp_parser_omp_clause_reduction,
2151 cp_parser_omp_clause_schedule,
2152 cp_parser_omp_all_clauses,
2153 cp_parser_omp_structured_block, cp_parser_omp_atomic,
2154 cp_parser_omp_barrier, cp_parser_omp_critical,
2155 cp_parser_omp_flush, cp_parser_omp_for_loop,
2156 cp_parser_omp_for, cp_parser_omp_master,
2157 cp_parser_omp_ordered, cp_parser_omp_sections_scope,
2158 cp_parser_omp_sections, cp_parser_omp_parallel,
2159 cp_parser_omp_single, cp_parser_omp_threadprivate,
2160 cp_parser_omp_construct): New.
2161 (cp_parser_pragma): Handle OpenMP pragmas.
2162 * semantics.c (finish_omp_threadprivate): New.
2163 (begin_omp_parallel, finish_omp_parallel): New.
2165 2005-10-11 Richard Henderson <rth@redhat.com>
2167 * parser.c (struct cp_token): Add pragma_kind.
2168 (eof_token): Initialize it.
2169 (cp_lexer_handle_pragma): Remove.
2170 (cp_parser_initial_pragma): New.
2171 (cp_lexer_new_main): Use it.
2172 (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
2173 (cp_lexer_print_token): Don't handle CPP_PRAGMA.
2174 (cp_parser_skip_to_pragma_eol): New.
2175 (cp_parser_error): Use it.
2178 2005-10-09 Richard Henderson <rth@redhat.com>
2180 * lex.c (parse_strconst_pragma): Update for c_lex name change.
2181 (handle_pragma_java_exceptions): Likewise.
2182 * parser.c (cp_lexer_new_main): Likewise.
2184 2005-10-06 Richard Henderson <rth@redhat.com>
2186 * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
2187 (cp_lexer_handle_pragma): Comment out
2188 cpp_handle_deferred_pragma.
2190 2005-10-01 Richard Henderson <rth@redhat.com>
2192 * name-lookup.c (lookup_name): Remove prefer_type argument.
2193 (lookup_name_prefer_type): New function.
2194 * name-lookup.h (lookup_name_prefer_type): Declare it.
2195 * decl.c (lookup_and_check_tag): Use it.
2196 * pt.c (tsubst_friend_class): Likewise. Update for
2198 (lookup_template_class, tsubst_copy_and_build): Likewise.
2200 2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2203 * tree.c (bot_manip): Don't call mark_used.
2205 2006-03-02 Mike Stump <mrs@apple.com>
2207 * decl2.c (import_export_decl): Remove redundant call to
2208 targetm.cxx.key_method_may_be_inline ().
2210 2006-03-02 Richard Sandiford <richard@codesourcery.com>
2212 * decl.c (start_decl): Use have_global_bss_p when deciding
2213 whether to make the decl common.
2215 2006-03-01 Mike Stump <mrs@apple.com>
2218 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
2220 2006-02-24 Geoffrey Keating <geoffk@apple.com>
2222 * except.c (expand_start_catch_block): Handle
2223 flag_use_cxa_get_exception_ptr.
2225 2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2228 * decl.c (grok_op_properties): Check for ellipsis in arguments of
2231 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2233 * Make-lang.in (C++): Remove.
2234 (.PHONY): Remove C++.
2236 2006-02-18 Mark Mitchell <mark@codesourcery.com>
2239 * cp-tree.h (cp_finish_decl): Adjust declaration.
2240 (grokbitfield): Likewise.
2241 (finish_static_data_member_decl): Likewise.
2242 * init.c (constant_value_1): Ensure processing_template_decl when
2243 folding non-dependent initializers for static data members of
2244 dependent types. Return error_mark_node for erroneous
2246 * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
2247 * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
2248 (cp_finish_decl): Add init_const_expr_p parameter. Set
2249 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2250 (finish_decl): Adjust call to cp_finish_decl.
2251 (compute_array_index_type): Robustify.
2252 (start_method): Use finish_decl, not cp_finish_decl.
2253 * rtti.c (emit_tinfo_decl): Likewise.
2254 * except.c (initialize_handler_parm): Adjust call to
2256 (expand_start_catch_block): Likewise.
2257 * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
2258 * pt.c (instantiate_class_template): Adjust call to
2259 finish_static_data_member_decl.
2260 (tsubst_expr): Use finish_decl, not cp_finish_decl.
2261 (instantiate_decl): Adjust call to cp_finish_decl.
2262 * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
2264 * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
2266 (grokfield): Likewise.
2267 * parser.c (cp_parser_condition): Check for constant initializers.
2268 (cp_parser_init_declarator): Adjust calls to grokfield and
2269 cp_finish_decl. Don't set
2270 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2271 (cp_parser_member_declaration): Likewise.
2272 (cp_parser_objc_class_ivars): Likewise.
2274 2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2276 * call.c (standard_conversion): Return NULL instead of 0.
2277 (build_user_type_conversion_1): Likewise.
2278 (tourney): Likewise.
2279 * decl.c (redeclaration_error_message): Likewise.
2280 * error.c (language_to_string): Likewise.
2282 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2284 * cp-tree.h (warn_hidden): Remove prototype.
2285 * class.c (warn_hidden): Make static.
2287 * cp-tree.h (build_type_conversion): Remove prototype.
2288 * cvt.c (build_type_conversion): Add prototype, make static.
2290 * cp-tree.h (push_tinst_level): Remove prototype.
2291 (pop_tinst_level): Likewise.
2292 * pt.c (push_tinst_level): Add prototype, make static.
2293 (pop_tinst_level): Likewise.
2295 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2297 * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
2298 * typeck.c (unary_complex_lvalue): Likewise.
2300 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2302 * lex.c (parse_strconst_pragma): Return error_mark_node instead of
2303 "(tree)-1" to indicate failure. Simplify.
2304 (handle_pragma_interface): Test for error_mark_node instead of
2306 (handle_pragma_implementation): Likewise.
2308 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2311 * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
2312 decl-specifiers. Remove extra check for duplicate 'friend'.
2313 * decl.c (grokdeclarator): Remove check for duplicate
2314 decl-specifiers. Set longlong together with long_p.
2316 2006-02-12 Jason Merrill <jason@redhat.com>
2319 * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
2320 TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
2322 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2324 * class.c (debug_class): Remove extern.
2325 (debug_thunks): Likewise.
2327 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
2329 * typeck.c (string_conv_p): Don't test for flag_const_strings.
2331 2006-02-08 Jason Merrill <jason@redhat.com>
2334 * cp-gimplify.c (cp_gimplify_expr): Don't call
2335 cp_gimplify_init_expr for MODIFY_EXPRs.
2336 * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
2338 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2341 * decl.c (grokdeclarator): Set dname also for destructor.
2344 * decl.c (grokdeclarator): Clear storage_class together with staticp.
2346 2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
2348 * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
2349 (cp_build_qualified_type): Propogate renaming.
2350 * call.c (convert_like_real): Likewise.
2351 * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
2352 * decl.c (make_typename_type, grokdeclarator): Likewise.
2353 * pt.c (tsubst_friend_function, instantiate_class_template,
2354 tsubst_default_argument, instantiate_decl,
2355 tsubst_initializer_list, tsubst_enum): Likewise.
2356 * semantics.c (finish_template_type): Likewise.
2357 * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
2359 2006-02-07 Dirk Mueller <dmueller@suse.com>
2361 * typeck.c (build_binary_op): Annotate div-by-zero
2362 warnings to make -Wno-div-by-zero have an effect.
2364 2006-02-07 Mark Mitchell <mark@codesourcery.com>
2367 * pt.c (coerce_template_template_parms): Do not templates with
2368 excess default arguments to match template template parameters
2369 with fewer parameters.
2370 (coerce_template_parms): Add use_default_args parameter; use
2371 default arguments only when true.
2372 (lookup_template_class): Adjust call to coerce_template_parms.
2373 (fn_type_unification): Likewise.
2375 (get_bindings): Likewise.
2376 (dependent_type_p): Add assertions.
2378 2006-02-06 Roger Sayle <roger@eyesopen.com>
2380 * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
2381 * rtti.c (typeinfo_in_lib_p): Likewise.
2382 * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
2383 * name-lookup.c (arg_assoc_type): Likewise.
2385 2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
2387 * cp-tree.h (tf_warn_or_error): New substituion flag.
2388 (cp_build_qualified_type): Use it.
2389 * call.c (convert_like_real): Likewise.
2390 * cvt.c (cp_convert_to_pointer): Likewise.
2391 (convert_to_reference): Likewise.
2392 * decl.c (make_typename_type): Likewise.
2393 (grokdeclarator): Likewise.
2394 * pt.c (tsubst_friend_function): Likewise.
2395 (tsubst_friend_class): Likewise.
2396 (instantiate_class_template): Likewise.
2397 (tsubst_default_argument): Likewise.
2398 (instantiate_decl): Likewise.
2399 (tsubst_initializer_list): Likewise.
2400 (tsubst_enum): Likewise.
2401 * semantics.c (finish_template_type): Likewise.
2402 * typeck.c (build_ptrmemfunc): Likewise.
2403 (convert_for_assignment): Likewise.
2405 2006-02-03 Lee Millward <lee.millward@gmail.com>
2407 * typeck.c (string_conv_p): Pass appropiate
2408 OPT_Wxxxx values when calling warning().
2409 (build_array_ref, cxx_mark_addressable): Likewise.
2410 (check_return_expr): Likewise.
2412 * init.c (perform_member_init): Likewise.
2413 (sort_mem_initializers, emit_mem_initializers): Likewise.
2415 * class.c (check_field_decls): Likewise.
2416 (warn_about_ambiguous_bases): Likewise.
2418 * decl.c (pop_label, poplevel): Likewise.
2419 (duplicate_decls, grok_op_properties): Likewise.
2420 (start_preparsed_function, finish_function): Likewise.
2422 * name-lookup.c (pushdecl_maybe_friend): Likewise.
2423 (pushdecl_maybe_friend): Likewise.
2425 * parser.c (cp_parser_warn_min_max): Likewise.
2426 (cp_parser_cast_expression): Likewise.
2428 * method.c (lazily_declare_fn): Likewise.
2429 * cvt.c (convert_to_void): Likewise.
2430 * mangle.c (finish_mangling): Likewise.
2431 * cp-gimplify.c (gimplify_expr_stmt): Likewise.
2433 2006-02-03 Mark Mitchell <mark@codesourcery.com>
2435 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
2436 not IDENTIFIER_OPNAME_P.
2438 2006-01-31 Mark Mitchell <mark@codesourcery.com>
2441 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
2443 * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
2445 (instantiate_class_template): Simplify.
2446 (verify_class_unification): Remove.
2447 (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
2448 permit multiple levels of template arguments.
2449 (more_specialized_class): Simplify.
2450 (get_class_bindings): Pass full arguments to unify. Fold
2451 verify_class_unification into this function. Return full
2453 (most_specialized_class): Adjust for changes to
2454 get_class_bindings. Issue errors here for ambiguity. Return the
2455 fully deduced arguments for the most specialized class, in
2456 addition to the partial specialization.
2458 2006-01-31 Ben Elliston <bje@au.ibm.com>
2460 * mangle.c: Comment fix.
2462 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
2464 * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
2465 * repo.c (extract_string, afgets): Use cast when converting from
2468 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
2470 * call.c (alloc_conversion): Use cast when converting from void *.
2471 (alloc_conversions): Likewise.
2472 (add_candidate): Likewise.
2473 (print_z_candidates): Likewise.
2474 (add_warning): Likewise.
2475 * pt.c (retrieve_local_specialization): Likewise.
2476 (process_partial_specialization): Likewise.
2477 (mangle_class_name_for_template): Likewise.
2478 (tsubst_template_args): Likewise.
2479 * typeck2.c (pat_calc_hash): Likewise.
2480 (pat_compare): Likewise.
2481 (abstract_virtuals_error): Likewise.
2482 * class.c (method_name_cmp): Likewise.
2483 (resort_method_name_cmp): Likewise.
2484 (get_vfield_name): Likewise.
2485 * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
2486 * lex.c (init_reswords): Likewise.
2487 * rtti.c (create_pseudo_type_info): Likewise.
2488 * search.c (dfs_lookup_base): Likewise.
2489 (dfs_dcast_hint_pre): Likewise.
2490 (dfs_dcast_hint_post): Likewise.
2491 * tree.c (hash_tree_cons): Likewise.
2492 * repo.c (extract_string): Likewise.
2494 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
2495 * g++spec.c (lang_specific_driver): Likewise.
2497 2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2499 * call.c (joust): Pass option code to warning. Use inform for
2501 * class.c (check_bases): Likewise.
2502 (maybe_warn_about_overly_private_class): Likewise.
2503 (check_field_decls): Likewise.
2504 (layout_empty_base): Likewise.
2505 (layout_virtual_bases): Likewise.
2506 (layout_class_type): Likewise.
2508 2006-01-28 Mark Mitchell <mark@codesourcery.com>
2511 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
2513 (start_function): ... here.
2515 2006-01-28 Mark Mitchell <mark@codesourcery.com>
2518 * class.c (resolve_address_of_overloaded_function): Adjust use of
2519 return value from most_specialized_instantiation.
2520 * pt.c (determine_specialization): Avoid multiple calls to
2522 (most_specialized_instantiation): When a tie occurs, set the
2523 current presumed champion to the next template. Return the
2524 TREE_LIST node containing the template, rather than the template
2526 (most_specialized): Remove.
2527 * name-lookup.c (push_overloaded_decl): When duplicate_decls
2528 indicates a failed redeclaration, report that to callers.
2530 2006-01-26 Jason Merrill <jason@redhat.com>
2533 * name-lookup.c (parse_using_directive): Require strong using to
2534 name a nested namespace.
2536 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2539 * cp-tree.h (do_poplevel): Remove prototype.
2540 * semantics.c (do_poplevel): Add prototype. Make static.
2543 * cp-tree.h (default_conversion): Remove prototype.
2544 * typeck.c (default_conversion): Make static.
2546 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2548 * cp-tree.h (get_primary_binfo): Remove prototype.
2549 (push_using_decl): Likewise.
2550 (current_template_args): Likewise.
2551 (more_specialized_class): Likewise.
2552 (mark_class_instantiated): Likewise.
2553 (default_conversion): Likewise.
2554 (pfn_from_ptrmemfunc): Likewise.
2555 * class.c (get_primary_binfo): Add prototype, make static, simplify.
2556 * name-lookup.c (push_using_decl): Make static.
2557 * pt.c (current_template_args): Likewise.
2558 (more_specialized_class): Likewise.
2559 (mark_class_instantiated): Likewise.
2560 * typeck.c (default_conversion): Make static.
2561 (pfn_from_ptrmemfunc): Add prototype, make static.
2563 2006-01-24 Dirk Mueller <dmueller@suse.de>
2565 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
2567 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2570 * parser.c (cp_parser_unqualified_id): Check that destructor name
2572 * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
2573 Adjust comment. Return early if possible.
2574 Use same_type_p to compare types.
2575 * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
2577 2006-01-24 Mark Mitchell <mark@codesourcery.com>
2579 * semantics.c: Remove outdated comment.
2581 2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2583 * cp-tree.h (do_poplevel): Remove prototype.
2584 * semantics.c (do_poplevel): Add prototype. Make static.
2586 * cp-tree.h (original_type): Remove prototype.
2587 * typeck.c (original_type): Make static.
2589 * cp-tree.h (declare_global_var): Remove prototype.
2590 * decl.c (declare_global_var): Make static.
2592 * cp-tree.h (implicitly_declare_fn): Remove prototype.
2593 * method.c (implicitly_declare_fn): Make static.
2595 * cp-tree.h (fold_decl_constant_value): Remove prototype.
2596 * pt.c (fold_decl_constant_value): Make static.
2598 * cp-tree.h (build_x_delete): Remove prototype.
2599 * init.c (build_vec_delete_1): Call build_op_delete_call directly
2600 and not via build_x_delete.
2601 (build_x_delete): Remove.
2603 * cp-tree.h (get_vtt_name): Remove prototype.
2604 * class.c (get_vtt_name): Remove.
2605 (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
2607 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
2609 * rtti.c (build_dynamic_cast): Fix comment.
2611 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
2614 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
2617 2006-01-21 Mark Mitchell <mark@codesourcery.com>
2620 * class.c (build_base_path): Generate a NOP_EXPR instead of a
2621 COMPONENT_REF if the base and derived classes are at the same
2625 * decl.c (begin_destructor_body): Robustify.
2628 * parser.c (cp_parser_direct_declarator): Robustify.
2630 2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2632 * parser.c (cp_lexer_next_token_is_keyword): Simplify.
2634 * parser.c (clear_decl_specs): Remove prototype.
2636 * parser.c (cp_parser_expression_fn): Remove.
2638 * call.c (add_builtin_candidates): Remove superfluous return.
2639 * name-lookup.c (do_toplevel_using_decl): Likewise.
2640 * parser.c (cp_parser_type_specifier_seq): Likewise.
2641 (cp_parser_save_default_args): Likewise.
2643 2006-01-20 Dirk Mueller <dmueller@suse.com>
2646 * semantics.c (finish_if_stmt): Call empty_body_warning.
2647 * parser.c (cp_parser_implicitly_scoped_statement):
2648 Mark empty statement with an empty stmt.
2650 2006-01-19 Mark Mitchell <mark@codesourcery.com>
2653 * name-lookup.c (do_class_using_decl): Don't try to look up base
2654 classes in templates with dependent base types.
2656 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2659 * pt.c (maybe_process_partial_specialization): Return early on
2662 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2665 * decl.c (start_preparsed_function): Check default arguments
2667 * name-lookup.c (pushdecl_maybe_friend): Check default arguments
2668 of all functions and function templates.
2669 * parser.c (cp_parser_late_parsing_default_args): Check default
2671 * decl2.c (check_default_args): Set missing default arguments to
2674 2006-01-18 Mark Mitchell <mark@codesourcery.com>
2677 * cp-tree.h (push_class_stack): New function.
2678 (pop_class_stack): Likewise.
2679 * class.c (class_stack_node): Add hidden field.
2680 (pushclass): Clear it.
2681 (push_class_stack): New function.
2682 (pop_class_stack): Likewise.
2683 (currently_open_class): Ignore hidden classes.
2684 (currently_open_derived_class): Likewise.
2685 * name-lookup.c (push_to_top_level): Call push_class_stack.
2686 (pop_from_top_level): Call pop_class_stack.
2688 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
2690 * tree.c (find_tree_t, find_tree): Remove.
2691 * cp-tree.h: Remove the prototype for find_tree.
2693 2006-01-18 Jakub Jelinek <jakub@redhat.com>
2695 * search.c (lookup_conversions_r): Fix a pasto.
2697 2006-01-17 Eric Christopher <echristo@apple.com>
2699 * call.c (convert_like_real): When issuing conversion
2700 warnings, depend on OPT_Wconversion.
2701 * cvt.c (build_expr_type_conversion): Ditto.
2703 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
2705 * name-lookup.c (lookup_namespace_name): Remove.
2706 * name-lookup.h: Remove the prototype for
2707 lookup_namespace_name.
2709 2006-01-17 Jakub Jelinek <jakub@redhat.com>
2712 * decl.c (compute_array_index_type): After issuing not an integral
2713 constant-expression error, set size to 1 to avoid ICEs later on.
2715 2006-01-16 Ian Lance Taylor <ian@airs.com>
2717 * parser.c: Include "cgraph.h".
2718 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
2721 2006-01-16 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
2723 * g++spec.c (lang_specific_spec_functions): Remove.
2725 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
2727 * decl.c (check_initializer): Fix thinko.
2729 2006-01-14 Mark Mitchell <mark@codesourcery.com>
2732 * parser.c (cp_parser_direct_declarator): Use cp_parser_error
2735 2006-01-13 Jason Merrill <jason@redhat.com>
2737 * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
2739 * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
2740 * pt.c (check_explicit_specialization): Likewise.
2742 2006-01-12 Jason Merrill <jason@redhat.com>
2745 * pt.c (check_explicit_specialization): Handle namespace
2747 * name-lookup.c (set_decl_namespace): Likewise.
2749 2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
2752 * class.c (handle_using_decl): Pass correct scope to
2753 cp_emit_debug_info_for_using.
2755 2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
2758 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
2761 2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
2763 * parser.c (cp_parser_primary_expression): Document the grammar
2764 for the built-in offsetof, a GNU extension.
2766 2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
2769 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
2772 2006-01-04 Chris Lattner <sabre@gnu.org>
2774 * typeck2.c: update copyright to 2006
2775 (split_nonconstant_init_1): Set TREE_CONSTANT to true.
2777 2006-01-04 Mark Mitchell <mark@codesourcery.com>
2780 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
2781 checks, even when parsing tentatively.
2783 2006-01-04 Richard Henderson <rth@redhat.com>
2785 Merge from gomp branch.
2786 * lex.c (handle_pragma_java_exceptions): Fix whitespace.
2787 * parser.c (struct cp_token): Add pragma_kind.
2788 (eof_token): Update to match.
2789 (struct cp_lexer): Add in_pragma; rearrange next for better packing.
2790 (cp_parser_initial_pragma): New.
2791 (cp_lexer_new_main): Use it. Don't bother clearing
2792 c_lex_return_raw_strings.
2793 (cp_lexer_get_preprocessor_token): Always initialize keyword
2794 and pragma_kind fields. Handle CPP_PRAGMA.
2795 (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
2797 (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
2798 (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
2799 (cp_parser_skip_to_pragma_eol): New.
2800 (cp_parser_error): Use it.
2801 (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
2802 rearrange with switch statement.
2803 (cp_parser_skip_to_end_of_statement): Likewise.
2804 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
2805 (cp_parser_skip_to_closing_brace): Likewise.
2806 (cp_parser_skip_until_found): Likewise.
2807 (cp_parser_statement): Add in_compound argument; update callers.
2808 Use it to decide how to handle pragma parsing.
2809 (cp_parser_labeled_statement): Add in_compound argument; pass
2810 it on to cp_parser_statement.
2811 (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
2812 (cp_parser_declaration_seq_opt): Likewise.
2813 (cp_parser_parameter_declaration): Likewise.
2814 (cp_parser_member_specification_opt): Likewise.
2815 (cp_parser_function_definition_after_decl): Likewise.
2816 (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
2817 (cp_parser_pragma): New.
2820 2006-01-04 Dirk Mueller <dmueller@suse.com>
2822 * decl.c (finish_constructor_body): create simple
2823 compound stmt instead of a if(1) { } construct.
2825 2006-01-03 Mark Mitchell <mark@codesourcery.com>
2828 * name-lookup.c (push_class_level_binding): When a derived class
2829 provides a type binding, eliminate any type binding from a base
2833 * repo.c (repo_emit_p): Always instantiate static data members
2834 initialized by constant expressions, so that there values are
2837 2006-01-02 Mark Mitchell <mark@codesourcery.com>
2840 * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
2841 conversion operator.
2842 * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
2845 * class.c (add_method): Never associate more than one destructor
2846 with a single class.
2849 * cp-tree.h (do_friend): Adjust prototype.
2850 * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
2851 (grokdeclarator): Likewise. Refine check for invalid
2852 declarations/definitions of member functions outside of their own
2854 * friend.c (do_friend): Make funcdef_flag a bool, not an int.
2857 * parser.c (cp_parser_mem_initializer_list): Check result of
2858 cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
2859 (cp_parser_mem_initializer): Return error_mark_node for failure.
2862 * parser.c (cp_parser_template_parameter_list): Call
2863 begin_template_parm_list and end_template_parm_list here.
2864 (cp_parser_type_parameter): Not here.
2865 (cp_parser_template_declaration_after_export): Or here.
2866 (cp_parser_elaborated_type_specifier): Call
2867 cp_parser_check_template_parameters.
2869 * tree.c (build_target_expr_with_type): Use force_target_expr.
2871 * decl2.c (mark_used): Fix typo in comment.
2873 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2875 * parser.c (cp_parser_using_declaration): Skip name-lookup on
2878 2005-12-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
2880 * cxx-pretty-print.c (pp_cxx_constant): New. Print
2881 string-literal in parens if input program says so.
2882 (pp_cxx_primary_expression): Hand off constant printing to
2884 (pp_cxx_pretty_printer_init): Set pp->c_base.constant.
2885 (pp_cxx_expression): Use pp_cxx_constant for literals.
2886 * error.c (dump_expr): Use pp_constant for literals.
2888 2005-12-29 Nathan Sidwell <nathan@codesourcery.com>
2890 * method.c (make_thunk): Don't set comdat_linkage here.
2891 (use_thunk): Make thunk one only here, if thunk target is
2894 2005-12-26 Mark Mitchell <mark@codesourcery.com>
2897 * decl.c (grokdeclarator): Remove dead code.
2898 * ptree.c (cxx_print_xnode): Handle BASELINK.
2899 * parser.c (make_id_declarator): Add sfk parameter.
2900 (cp_parser_direct_declarator): Do not pass TYPE_DECLs to
2902 (cp_parser_declarator_id): Simplify BASELINKs here.
2903 (cp_parser_member_declaration): Adjust calls to
2906 2005-12-26 Mark Mitchell <mark@codesourcery.com>
2908 PR c++/23171, c++/23172, c++/25417.
2909 * typeck.c (build_unary_op): Create temporary variables for
2910 compound literals whose addresses are taken.
2911 * init.c (expand_aggr_init_1): Use COMPOUND_LITERAL_P.
2912 * decl.c (reshape_init_vector): Likewise.
2913 (reshape_init): Give it external linkage.
2914 (check_initializer): Use COMPOUND_LITERAL_P.
2915 (initialize_artificial_var): Allow the initializer to be a
2917 * call.c (make_temporary_var_for_ref_to_temp): Use
2918 create_temporary_var.
2919 * cp-tree.h (COMPOUND_LITERAL_P): New macro.
2920 (rehape_init): Declare.
2921 * typeck2.c (digest_init): Use COMPOUND_LITERAL_P.
2922 * semantics.c (finish_compound_literal): Use reshape_init.
2924 2005-12-23 Mark Mitchell <mark@codesourcery.com>
2927 * pt.c (instantiate_template): Handle SFINAE.
2929 2005-12-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2931 * decl.c (grokdeclarator): Improve diagnostic for friend
2932 declarations of class members.
2934 2005-12-22 Mark Mitchell <mark@codesourcery.com>
2937 * tree.c (really_overloaded_fn): Tweak comment.
2938 * pt.c (tsubst_call_declarator_parms): Remove.
2939 (tsubst_copy): Call mark_used on the member referenced by an
2941 * semantics.c (finish_qualified_id_expr): Simplify.
2942 * decl2.c (mark_used): Accept BASELINKs.
2945 * typeck.c (build_unary_op): Pass DECLs not names to
2947 * init.c (build_offset_ref): Do not do name lookup. Do not call
2949 * call.c (build_call): Simplify and tidy.
2950 * semantics.c (finish_qualified_id_expr): Call mark_used.
2952 2005-12-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2955 * parser.c (cp_parser_pure_specifier): Check for PURE_ZERO to
2956 identify a single '0'.
2958 2005-12-20 Mark Mitchell <mark@codesourcery.com>
2961 * decl.c (use_eh_spec_block): New function.
2962 (store_parm_decls): Use it.
2963 (finish_function): Likewise.
2965 2005-12-19 Mark Mitchell <mark@codesourcery.com>
2968 * init.c (expand_member_init): Print messages about baseclasses
2969 using %T rather than %D.
2972 * class.c (add_method): Do not treat templates as identical unless
2973 their return types are the same.
2975 2005-12-12 Mark Mitchell <mark@codesourcery.com>
2978 * tree.c (build_qualified_name): Return error_mark_node for
2981 2005-12-10 Mark Mitchell <mark@codesourcery.com>
2984 * pt.c (tsubst_copy_and_build): Permit dependent types for the
2985 object in a class member access expression.
2987 2005-12-10 Terry Laurenzo <tlaurenzo@gmail.com>
2990 * mangle.c (write_bare_function_type): Mangle return type for
2991 methods of Java classes
2993 2005-12-08 Th�dore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2995 * call.c (build_conditional_expr): Print types in error messages.
2997 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2999 * expr.c (cxx_expand_expr): Call gcc_unreachable instead of abort.
3001 2005-12-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3003 * cp-gimplify.c (gimplify_cp_loop): Use fold_build3.
3005 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
3007 * Make-lang.in (c++.all.build, c++.install-normal): Remove.
3009 2005-12-07 Rafael �ila de Esp�dola <rafael.espindola@gmail.com>
3011 * Make-lang.in: Remove all dependencies on s-gtype.
3013 2005-12-06 Aldy Hernandez <aldyh@redhat.com>
3016 * decl.c (reshape_init_array_1): Handle max_index of -1.
3018 2005-12-06 Roger Sayle <roger@eyesopen.com>
3020 * typeck.c (build_binary_op): Issue warning if either operand of a
3021 comparison operator is a string literal, except for testing equality
3022 or inequality against NULL.
3024 2005-12-06 Roger Sayle <roger@eyesopen.com>
3027 * decl.c (compute_array_index_type): Check that itype is an
3028 INTEGER_CST node before testing/clearing TREE_OVERFLOW.
3030 2005-12-05 Daniel Berlin <dberlin@dberlin.org>
3032 * ptree.c (cxx_print_decl): Update to check for decl_common
3035 2005-12-02 Mark Mitchell <mark@codesourcery.com>
3038 * decl.c (duplicate_decls): Don't rely on DECL_TEMPLATE_INFO after
3041 2005-12-02 Richard Guenther <rguenther@suse.de>
3043 * semantics.c (simplify_aggr_init_expr): Use buildN instead
3046 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3048 * parser.c (cp_lexer_new_main): Usr GGC_RESIZEVEC instead of
3050 (cp_parser_template_argument_list): Use XRESIZEVEC instead of
3052 * class.c (pushclass): Likewise.
3054 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3056 * decl2.c (get_priority_info): Use XNEW, not xmalloc.
3057 * decl.c (push_switch): Likewise.
3058 * lex.c (handle_pragma_implementation): Likewise.
3059 * cp-objcp-common.c (decl_shadowed_for_var_insert): Use GGC_NEW,
3061 (cxx_initialize_diagnostics): Use XNEW, not xmalloc.
3062 * class.c (init_class_processing): Use XNEWVEC, not xmalloc.
3063 * g++spec.c (lang_specific_driver): Likewise.
3064 * mangle.c (save_partially_mangled_name): Likewise.
3065 * parser.c (cp_lexer_new_main): Use GGC_NEWVEC, not ggc_alloc.
3066 (cp_parser_template_argument_list): Use XNEWVEC, nto xmalloc.
3067 (cp_parser_sizeof_operand): Likewise.
3068 * repo.c (open_repo_file, open_repo_file): Likewise.
3070 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
3072 * parser.c (cp_parser_make_typename_type): Call make_typename_type
3073 with tf_none instead of magic value 0.
3074 (cp_parser_explicit_instantiation): Call do_type_instantiation
3075 with tf_error instead of magic value 1.
3076 (cp_parser_elaborated_type_specifier): Call make_typename_type
3077 with tf_error instead of magic value 1.
3078 (cp_parser_class_name): Likewise.
3079 (cp_parser_lookup_name): Likewise.
3081 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
3083 * parser.c (cp_parser_declaration): Set token2.type to CPP_EOF,
3086 2005-11-30 Jason Merrill <jason@redhat.com>
3089 * cp-gimplify.c (cp_genericize_r): Don't dereference invisible reference
3092 2005-11-30 Ben Elliston <bje@au.ibm.com>
3094 * typeck.c (build_x_unary_op): Correct spelling in error message.
3096 2005-11-28 Nathan Sidwell <nathan@codesourcery.com>
3099 * class.c (check_field_decls): Only set DECL_PACKED on a field
3100 when its natural alignment is > BITS_PER_UNIT.
3102 2005-11-27 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3105 * cp-tree.h (DECL_MAIN_P): Remove duplicate definition.
3107 2005-11-26 Richard Henderson <rth@redhat.com>
3109 * lex.c: Update for pragma_lex rename.
3110 * parser.c: Likewise.
3112 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3115 * decl.c (grokparms): Do not allow typedef-names in a '(void)'
3118 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3120 * typeck2.c (process_init_constructor_union): Remove check for
3121 unnamed union members.
3123 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3125 * name-lookup.c (lookup_name_real): Merge two if's.
3127 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3129 * pt.c (instantiate_class_template): Clean-up.
3131 2005-11-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3133 * pt.c (template_class_depth_real): Remove. Move functionality to ...
3134 (template_class_depth): ... here, replacing count_specializations
3135 with 0. Adjust comment.
3137 2005-11-24 Richard Guenther <rguenther@suse.de>
3138 Dirk Mueller <dmueller@suse.de>
3141 * typeck.c (build_reinterpret_cast_1): Use
3142 strict_aliasing_warning.
3144 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3147 * pt.c (check_instantiated_args): Reword diagnostic message about
3148 template argument involving local types.
3150 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3153 * typeck.c (build_array_ref): Avoid code duplicate. Use common
3154 C/C++ diagnostic function warn_array_subscript_with_type_char.
3156 2005-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
3159 * error.c (resolve_virtual_fun_from_obj_type_ref): New.
3160 (dump_expr): Use it in <case CALL_EXPR>.
3162 2005-11-21 Richard Henderson <rth@redhat.com>
3164 * cp-objcp-common.h, name-lookup.c, name-lookup.h: Revert 11-18 patch.
3166 * name-lookup.c (lookup_name): Remove prefer_type argument.
3167 (lookup_name_prefer_type): New.
3168 * decl.c (lookup_and_check_tag): Use them.
3169 * pt.c (tsubst_friend_class): Likewise.
3170 (lookup_template_class): Likewise.
3171 (tsubst_copy_and_build): Likewise.
3172 * name-lookup.h (lookup_name_prefer_type): New.
3173 (lookup_name): Remove declaration.
3175 2005-11-18 Mark Mitchell <mark@codesourcery.com>
3178 * decl.c (grokfndecl): Set up DECL_TEMPLATE_INFO before calling
3180 * name-lookup.c (set_decl_namespace):
3182 2005-11-18 Mike Stump <mrs@apple.com>
3184 * cp-objcp-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
3185 * name-lookup.c (lookup_name_two): Remove.
3186 (lookup_name_one): Add.
3187 * name-lookup.h (lookup_name_two): Remove.
3188 (lookup_name_one): Add.
3190 2005-11-15 Jason Merrill <jason@redhat.com>
3193 * method.c (locate_copy): Also use skip_artificial_parms here.
3194 (synthesize_exception_spec): Use CLASS_TYPE_P rather than checking
3196 (locate_ctor): Abort if we fail to find a default constructor.
3198 2005-11-15 Mike Stump <mrs@apple.com>
3200 * name-lookup.c (lookup_name_two): Add.
3201 * name-lookup.h: Likewise.
3203 2005-11-15 Mark Mitchell <mark@codesourcery.com>
3206 * typeck.c (check_for_casting_away_constness): Use the diag_fn.
3207 (build_const_cast_1): Call it, for C-style casts.
3209 2005-11-14 Mark Mitchell <mark@codesourcery.com>
3212 * pt.c (check_explicit_specialization): Don't check for C linkage.
3213 (push_template_decl_real): Likewise.
3214 * parser.c (cp_parser_explicit_specialization): Check here.
3215 (cp_parser_template_declaration_after_export): And here.
3217 * parser.c (cp_lexer_get_preprocessor_token): Initialize keyword
3220 2005-11-14 Jason Merrill <jason@redhat.com>
3223 * method.c (locate_ctor): Skip all artificial parms, not just
3226 2005-11-14 Mark Mitchell <mark@codesourcery.com>
3228 * parser.c (eof_token): Add initializer for ambiguous_p.
3230 2005-11-13 Mark Mitchell <mark@codesourcery.com>
3233 * decl.c (check_redeclaration_exception_specification): New
3235 (duplicate_decls): Use it.
3236 * error.c (fndecl_to_string): Print the template parameter list.
3239 * cxx-pretty-print.c (pp_cxx_statement): Print qualifying scopes
3241 (pp_cxx_original_namespace_definition): Likewise.
3242 * name-lookup.c (ambiguous_decl): Don't issue error messages;
3243 instead return lists of ambiguous candidates.
3244 (select_decl): Handle ambiguous namespace lookups.
3245 * parser.c (cp_token): Add ambiguous_p.
3246 (cp_lexer_get_preprocessor_token): Set it.
3247 (cp_parser_diagnose_invalid_type_name): Avoid duplicate messages
3248 when a qualified name uses an invalid scope.
3249 (cp_parser_primary_expression): Print ambiguous candidates.
3250 (cp_parser_type_parameter): Adjust comment to reflect new
3251 parameter name for cp_parser_lookup_name.
3252 (cp_parser_template_argument): Likewise.
3253 (cp_parser_elaborated_type_specifier): Likewise.
3254 (cp_parser_namespace_name): Likewise.
3255 (cp_parser_class_name): Print ambiguous candidates.
3256 (cp_parser_lookup_name): Rename ambiguous_p parameter to
3257 ambiguous_decls. Use it to return a list of ambiguous candiates
3258 when a lookup is ambiguous.
3259 (cp_parser_lookup_name_simple): Adjust comment to reflect new
3260 parameter name for cp_parser_lookup_name.
3262 2005-11-12 Jakub Jelinek <jakub@redhat.com>
3265 * typeck.c (complete_type): Set TYPE_NEEDS_CONSTRUCTING
3266 and TYPE_HAS_NONTRIVIAL_DESTRUCTOR flags for all variants
3270 * pt.c (tsubst_copy_asm_operands): New function.
3271 (tsubst_expr) <case ASM_EXPR>: Use it.
3273 2005-11-08 Jakub Jelinek <jakub@redhat.com>
3276 * decl.c (redeclaration_error_message): Issue diagnostics about
3277 olddecl and newdecl disagreement on __thread property.
3278 (grokdeclarator): Set DECL_TLS_MODEL on class static variables.
3280 2005-11-08 Jason Merrill <jason@redhat.com>
3283 * method.c (use_thunk): Use build_cplus_new instead of
3286 2005-11-06 Jason Merrill <jason@redhat.com>
3287 James A. Morrison <phython@gcc.gnu.org>
3290 * decl2.c (cp_finish_file): Fix conditions for undefined warning.
3291 Set TREE_NO_WARNING instead of TREE_PUBLIC.
3292 * pt.c (instantiate_pending_templates): Set DECL_INITIAL to avoid
3293 a warning on a function we didn't instantiate because of excessive
3296 2005-11-06 Mark Mitchell <mark@codesourcery.com>
3298 * class.c (record_subobject_offsets): Don't record offsets past
3299 biggest empty class for non-empty base classes.
3300 (layout_class_type): Use TYPE_SIZE_UNIT, not TYPE_SIZE, when
3301 keeping track of the size of emptyclasses.
3304 * class.c (sizeof_biggest_empty_class): New variable.
3305 (record_subobject_offsets): Don't record offsets past biggest
3306 empty class for data members. Replace vbases_p parameter with
3307 is_data_member parameter.
3308 (build_base_field): Adjust call.
3309 (layout_class_type): Likewise. Maintain
3310 sizeof_biggest_empty_class.
3312 2005-11-05 Kazu Hirata <kazu@codesourcery.com>
3314 * decl2.c, init.c, typeck.c: Fix comment typos.
3316 2005-11-04 Richard Guenther <rguenther@suse.de>
3319 * init.c (build_vec_init): Build comparison of matching
3322 2005-11-03 Josh Conner <jconner@apple.com>
3325 pt.c (tsubst): Accept zero-length array if tf_error is set
3326 in complain flags. Change error message for negative-
3329 2005-11-04 Joseph S. Myers <joseph@codesourcery.com>
3331 * cp-tree.h (cp_cpp_error), error.c (cp_cpp_error): Take va_list*
3334 2005-11-03 Joseph S. Myers <joseph@codesourcery.com>
3337 * error.c (cp_cpp_error): New function.
3338 * cp-tree.h (cp_cpp_error): Declare.
3339 * parser.c (cp_lexer_new_main): Set CPP option client_diagnostic
3340 and error callback after lexing.
3342 2005-11-03 Mark Mitchell <mark@codesourcery.com>
3345 * pt.c (register_specialization): Update inline flags on clones.y
3347 2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
3350 * decl.c (declare_local_label): Return 0 for variables
3351 with error_mark_node as their types.
3353 2005-11-02 Mark Mitchell <mark@codesourcery.com>
3356 * call.c (build_conditional_expr): Do bad conversions, if there's
3360 * parser.c (cp_parser_postfix_dot_deref_expression): Improve error
3361 message for use of overloaded functions on LHS of "." operator.
3364 * parser.c (cp_parser_postfix_expression): Use
3365 cp_parser_elaborated_type_specifier to handle typename-types in
3367 (cp_parser_enclosed_argument_list): Skip ahead to the end of the
3368 template argument list if the closing ">" is not found.
3371 * pt.c (instantiate_decl): Use cp_finish_decl, not
3372 finish_static_data_member_decl.
3374 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
3376 * decl.c (grokfndecl): Remove the setting
3377 of the return type of the function type
3378 of main after erroring about must returning
3381 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
3384 * decl.c (grokfndecl): Create a new function type
3385 after erroring out about main not returning int.
3387 2005-10-28 Josh Conner <jconner@apple.com>
3390 * parser.c (cp_parser_member_declaration): Detect and handle
3391 a template specialization.
3393 2005-10-28 Andrew Pinski <pinskia@physics.uc.edu>
3396 * decl.c (start_decl): Check that the decl is an
3397 error_mark_node before getting the type.
3398 Remove the check for the decl's type being an
3401 2005-10-21 Mark Mitchell <mark@codesourcery.com>
3404 * parser.c (cp_parser_init_declarator): Pass attributes to
3407 2005-10-20 Mark Mitchell <mark@codesourcery.com>
3410 * search.c (accessible_p): Check access in the outermost set of
3411 template parameters.
3413 2005-10-20 Richard Guenther <rguenther@suse.de>
3415 * decl.c (grokdeclarator): Fix ambiguous pedwarn message.
3417 2005-10-18 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3420 * decl.c (grokdeclarator): Reject unqualified destructors in
3421 friend declarations.
3423 2005-10-18 Mark Mitchell <mark@codesourcery.com>
3426 * pt.c (convert_template_argument): Use canonical type variants in
3427 template specializations.
3429 2005-10-18 Nathan Sidwell <nathan@codesourcery.com>
3432 * name-lookup.c (arg_assoc): Template args can be null in a
3436 * class.c (update_vtable_entry_for_fn): Don't process invalid
3437 covariant overriders.
3440 * cp-tree.h (add_method): Add return value.
3441 * class.c (add_method): Return success indicator.
3442 * semantics.c (finish_member_declaration): Don't add an invalid
3443 method to the method list.
3445 2005-10-17 Mark Mitchell <mark@codesourcery.com>
3448 * call.c (build_new_method_call): Do not show VTT parameters to