1 2006-12-31 Simon Martin <simartin@users.sourceforge.net>
4 * parser.c (cp_parser_primary_expression): Return error_mark_node when
5 a statement-expression is found outside of a function body.
7 2006-12-28 Kazu Hirata <kazu@codesourcery.com>
9 * cp-tree.h (TYPE_NAMESPACE_SCOPE_P, TYPE_FUNCTION_SCOPE_P):
12 * decl2.c: Fix a comment typo.
14 2006-12-21 Andrew Pinski <pinskia@gmail.com>
17 * decl.c (cxx_builtin_function): Only copy the decl if adding
18 it to the std namespace.
20 2006-12-21 Andrew Pinski <pinskia@gmail.com>
23 * optimize.c (update_cloned_parm): Copy DECL_GIMPLE_REG_P also.
25 2006-12-22 Kazu Hirata <kazu@codesourcery.com>
27 * decl.c: Fix a coment typo.
29 2006-12-18 Ian Lance Taylor <iant@google.com>
31 * decl.c (start_preparsed_function): Add support for
32 -Wmissing-declarations.
34 2006-12-16 Simon Martin <simartin@users.sourceforge.net>
37 * cp-tree.h (struct deferred_access_check): New structure to represent a
38 deferred access check. It replaces the previous representation as a tree.
39 (get_deferred_access_checks): Return a vector of struct
40 deferred_access_check instead of a tree list.
41 (perform_access_checks): Take a vector of struct deferred_access_check
42 instead of a tree list.
43 * semantics.c (struct deferred_access): Store the deferred access checks
44 as a vector of struct deferred_access_check instead of a tree list.
45 (push_deferring_access_checks): Handle the change in struct
47 (get_deferred_access_checks): Likewise.
48 (pop_to_parent_deferring_access_checks): Likewise.
49 (perform_or_defer_access_check): Likewise.
50 (perform_access_checks): Take a vector of struct deferred_access_check
51 instead of a tree list.
52 * parser.c (struct tree_check): New structure to store various data
53 associated with a CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID token.
54 (struct cp_token): Changed the value field to be a union with a pointer to
55 a struct tree_check for CPP_NESTED_NAME_SPECIFIER or CPP_TEMPLATE_ID
56 tokens and a tree field for all other tokens.
57 (eof_token): Adjusted due to the change in struct cp_token.
58 (cp_lexer_get_preprocessor_token): Likewise.
59 (cp_lexer_purge_token): Likewise.
60 (cp_lexer_purge_tokens_after): Likewise.
61 (cp_lexer_print_token): Likewise.
62 (cp_parser_error): Likewise.
63 (cp_parser_identifier): Likewise.
64 (cp_parser_string_literal): Likewise.
65 (cp_parser_primary_expression): Likewise.
66 (cp_parser_unqualified_id): Likewise.
67 (cp_parser_parenthesized_expression_list): Likewise.
68 (cp_parser_storage_class_specifier_opt): Likewise.
69 (cp_parser_function_specifier_opt): Likewise.
70 (cp_parser_type_specifier): Likewise.
71 (cp_parser_simple_type_specifier): Likewise.
72 (cp_parser_initializer_list): Likewise.
73 (cp_parser_member_specification_opt): Likewise.
74 (cp_parser_attribute_list): Likewise.
75 (cp_parser_objc_expression): Likewise.
76 (cp_parser_objc_protocol_qualifiers): Likewise.
77 (cp_parser_objc_selector): Likewise.
78 (cp_parser_objc_declaration): Likewise.
79 (cp_parser_objc_statement): Likewise.
80 (cp_parser_omp_clause_name): Likewise.
81 (cp_parser_omp_clause_default): Likewise.
82 (cp_parser_omp_clause_schedule): Likewise.
83 (cp_parser_omp_parallel): Likewise.
84 (cp_parser_initial_pragma): Likewise.
85 (pragma_lex): Likewise.
86 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
87 (cp_parser_nested_name_specifier_opt): Likewise.
88 Use cp_token::u::tree_check_value to save the token's value, the
89 associated deferred checks and its qualifying scope.
90 (cp_parser_template_id): Likewise.
91 (cp_parser_template_declaration_after_export): Adjusted the call to
92 get_deferred_access_checks.
93 (cp_parser_init_declarator): Take the access checks as a vector of struct
94 deferred_access_check instead of a tree list.
95 (cp_parser_single_declaration): Likewise.
96 (cp_parser_perform_template_parameter_access_checks): Likewise.
97 (cp_parser_simple_declaration): Adjusted the call to
98 cp_parser_init_declarator.
99 (cp_parser_explicit_specialization): Adjusted the call to
100 cp_parser_single_declaration.
102 2006-12-13 Ian Lance Taylor <iant@google.com>
106 * parser.c (cp_parser_expression_stack_entry): Add field
108 (cp_parser_binary_expression): Track tree code of left hand side
109 of expression. Use it when calling build_x_binary_op.
110 (cp_parser_selection_statement): Add if_p parameter. Change all
111 callers. Warn about ambiguous else.
112 (cp_parser_statement): Add if_p parameter. Change all callers.
113 (cp_parser_implicitly_scoped_statement): Likewise.
114 * typeck.c (build_x_binary_op): Add parameters arg1_code and
115 arg2_code. Change all callers. Call warn_about_parentheses.
116 * cp-tree.h (build_x_binary_op): Update declaration.
118 2006-12-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
120 * decl.c (build_enumerator): Update error message to match C
123 2006-12-11 Jan Hubicka <jh@suse.cz>
125 * decl2.c (var_finalized_p): Update for renamed varpool functions.
127 2006-12-09 Zack Weinberg <zackw@panix.com>
129 * parser.c (yydebug, enum pragma_omp_clause): Delete.
131 2006-12-07 Mark Mitchell <mark@codesourcery.com>
134 * cp-tree.h (DECL_USE_TEMPLATE): Mention partial specializations.
135 (explicit_class_specialization_p): Declare.
136 * pt.c (explicit_class_specialization_p): New function.
137 * parser.c (cp_parser_init_declarator): Check correct number of
138 template parameters for in-class function definitions.
139 (cp_parser_check_declrator_template_parameters): Stop looking for
140 template classes when we find an explicit specialization.
142 2006-12-07 Lee Millward <lee.millward@codesourcery.com>
145 * cp_parser_elaborated_type_specifier: Check
146 the return value of check_elaborated_type_specifier.
148 2006-12-06 Mark Mitchell <mark@codesourcery.com>
151 * parser.c (cp_parser_init_declarator): Reject initialization of
154 2006-12-05 Mark Mitchell <mark@codesourcery.com>
157 * decl2.c (check_member_template): Move check for member
158 templates in local classes to ...
159 * parser.c (cp_parser_template_declaration_after_export):
163 * decl.c (check_array_designated_initializer): New function.
164 (maybe_deduce_size_from_array_init): Use it.
165 (reshape_init_array): Likewise.
167 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
169 Merge from gimple-tuples-branch.
171 2006-10-05 Aldy Hernandez <aldyh@redhat.com>
173 * cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
174 (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT.
175 (cxx_omp_clause_copy_ctor): Same.
176 (cxx_omp_clause_assign_op): Same.
178 2006-09-28 Aldy Hernandez <aldyh@redhat.com>
180 * cp-tree.h (union lang_tree_node): Gimple statements do not
182 (TREE_INDIRECT_USING): Look in base.
184 2006-12-04 Jan Hubicka <jh@suse.cz>
186 * cp-objcp-common.c (cp_expr_size): Return NULL in the case
189 2006-12-04 Mark Mitchell <mark@codesourcery.com>
192 * pt.c (tsubst_decl): Disallow variables of function type.
195 * call.c (add_builtin_candidate): Do not permit NULL pointer
196 constants to be compared with template parameters.
198 2006-12-04 Eric Botcazou <ebotcazou@adacore.com>
200 * pt.c (for_each_template_parm_r) <INTEGER_TYPE>: New case.
201 Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
203 2006-12-03 Richard Henderson <rth@redhat.com>
204 Andrew Pinski <pinskia@gmail.com>
207 * error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
209 2006-12-02 Andrew Pinski <andrew_pinski@playstation.sony.com>
212 * decl.c (cp_tree_node_structure): Handle STATIC_ASSERT.
214 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
216 * name-lookup.c: Follow spelling conventions.
218 2006-12-01 Geoffrey Keating <geoffk@apple.com>
220 * decl.c (poplevel): Check DECL_INITIAL invariant.
221 (duplicate_decls): Preserve DECL_INITIAL when eliminating
222 a new definition in favour of an old declaration.
223 (start_preparsed_function): Define and document value of
224 DECL_INITIAL before and after routine.
225 (finish_function): Check DECL_INITIAL invariant.
227 (cp_parser_function_definition_from_specifiers_and_declarator):
228 Skip duplicate function definitions.
230 2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
233 * typeck.c (type_after_usual_arithmetic_conversions):
234 Fix assertion for vector types.
235 (build_binary_op): Use temporary for inner type of vector types.
237 2006-12-01 Ryan Mansfield <rmansfield@qnx.com>
240 * typeck.c (build_binary_op): Fix pointer to member function
241 comparison for ptrmemfunc_vbit_in_delta targets.
243 2006-12-01 Dirk Mueller <dmueller@suse.de>
246 * decl.c (grokdeclarator): Warn for type qualifiers on return
247 type for non-dependent types.
248 * pt.c (tsubst_function_type): Warn for type qualifiers on
249 return type for dependent types.
251 2006-11-30 Geoffrey Keating <geoffk@apple.com>
253 * rtti.c (get_tinfo_decl): Handle return value from
254 pushdecl_top_level_and_finish.
256 2006-11-29 Lee Millward <lee.millward@codesourcery.com>
259 * parser.c (cp_parser_class_head): Move processing
260 of any base classes to...
261 (cp_parser_class_specifier) ...here. Take an extra
262 tree* parameter for any base classes. Only process
263 them if the opening brace was found.
265 2006-11-28 Jakub Jelinek <jakub@redhat.com>
268 * decl.c (grokfndecl): Check main's type after applying
269 attributes, not before.
271 2006-11-27 Mark Mitchell <mark@codesourcery.com>
273 * class.c (build_vcall_offset_vtbl_entries): Do not add vcall
274 entries for a primary construction virtual table.
276 2006-11-26 Mark Mitchell <mark@codesourcery.com>
279 * parser.c (cp_parser): Add in_function_body.
280 (cp_parser_new): Initialize it.
281 (cp_parser_primary_expression): Use parser->in_function_body
282 instead of at_function_scope_p.
283 (cp_parser_asm_definition): Likewise.
284 (cp_parser_direct_declarator): Likewise.
285 (cp_parser_class_specifier): Clear parser->in_function_body.
286 (cp_parser_constructor_declarator_p): Use parser->in_function_body
287 instead of at_function_scope_p.
288 (cp_parser_function_body_after_declarator): Set
289 parser->in_function_body.
291 2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
293 * cp-tree.def (STATIC_ASSERT): New.
294 * cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
295 * error.c (dump_decl): Handle STATIC_ASSERT.
296 * cp-tree.h (STATIC_ASSERT_CONDITION): New.
297 (STATIC_ASSERT_MESSAGE): New.
298 (STATIC_ASSERT_SOURCE_LOCATION): New.
299 (struct tree_static_assert): New.
300 (enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
301 (union lang_tree_node): Add static_assertion.
302 (finish_static_assert): Declare.
303 * cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
304 (pp_cxx_declaration): Handle STATIC_ASSERT.
305 * pt.c (instantiate_class_template): Handle
306 STATIC_ASSERT members.
307 (tsubst_expr): Handle STATIC_ASSERT statements.
308 * semantics.c (finish_static_assert): New.
309 * lex.c (D_CPP0X): New.
310 (reswords): Add static_assert keyword.
311 (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
312 * parser.c (cp_parser_block_declaration): Parse static
314 (cp_parser_static_assert): New.
315 (cp_parser_member_declaration): Parse static assertions.
317 2006-11-21 Jakub Jelinek <jakub@redhat.com>
320 * decl.c (cp_finish_decl): Check for value dependent brace enclosed
324 * cp-tree.h (WANT_VECTOR): Define.
325 (WANT_ARITH): Add WANT_VECTOR.
326 * cvt.c (build_expr_type_conversion): Handle vector types.
327 * typeck.c (build_unary_op): Add WANT_VECTOR to
328 build_expr_type_conversion flags.
330 2006-11-20 Simon Martin <simartin@users.sourceforge.net>
333 * cp-tree.h (enforce_access, perform_or_defer_access_check): Added an
334 extra argument that represents the declaration to use to print
335 potential error messages.
336 * init.c (build_offset_ref): Adjusted the call to
337 perform_or_defer_access_check.
338 * class.c (alter_access, resolve_address_of_overloaded_function):
340 * decl.c (make_typename_type, make_unbound_class_template): Likewise.
341 * search.c (lookup_member): Likewise.
342 * friend.c (add_friend): Likewise.
343 * parser.c (cp_parser_template_id,
344 cp_parser_pre_parsed_nested_name_specifier): Likewise.
345 * semantics.c (finish_non_static_data_member,
346 check_accessibility_of_qualified_id, finish_id_expression): Likewise.
347 (pop_to_parent_deferring_access_checks, perform_access_checks,
348 perform_or_defer_access_check): Adjusted the call to enforce_access.
349 * call.c (enforce_access): Use the new extra argument to build the
351 (build_op_delete_call): Adjusted the call to
352 perform_or_defer_access_check.
353 (build_over_call): Likewise.
355 2006-11-16 Dirk Mueller <dmueller@suse.de>
357 * name-lookup.c (begin_scope): Use GGC_CNEW instead of
360 2006-11-13 Roger Sayle <roger@eyesopen.com>
362 * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
363 base type info initializer has the correct type.
365 2006-11-13 Mark Mitchell <mark@codesourcery.com>
368 * pt.c (coerce_template_parms): Do not skip_evaluation while
369 substituting template arguments.
371 2006-11-11 Richard Guenther <rguenther@suse.de>
373 * typeck.c (build_unary_op): Remove handling of FIX_CEIL_EXPR,
374 FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
376 2006-11-03 Roger Sayle <roger@eyesopen.com>
378 * call.c (build_op_delete_call): Test user-visible type against
379 size_type_node, instead of against the internal type, sizetype.
380 * class.c (type_requires_array_cookie): Likewise.
381 * mangle.c (write_builtin_type) <INTEGER_TYPE>: Remove special
382 handling of TYPE_IS_SIZETYPE.
383 * typeck.c (type_after_usual_arithmetic_conversions): Remove
384 special case handling of TYPE_IS_SIZETYPE.
385 (comptypes): Likewise.
387 2006-11-01 Danny Smith <dannysmith@users.sourceforge.net>
389 * decl.c (get_atexit_node): Reference atexit, not __cxa_exit.
390 if targetm.cxx.use_atexit_for cxa_atexit.
391 (start_cleanup_fn): Likewise.
392 (register_dtor_fn): Likewise.
394 2006-09-25 Geoffrey Keating <geoffk@apple.com>
396 * decl2.c (cp_write_global_declarations): Rename from
398 * cp-lang.c (finish_file): Don't call cp_finish_file.
399 * cp-tree.h (cp_write_global_declarations): Rename from
401 * cp-objcp-common.h (LANG_HOOKS_WRITE_GLOBALS): Define to
402 cp_write_global_declarations.
404 2006-10-31 Geoffrey Keating <geoffk@apple.com>
406 * name-lookup.c (get_anonymous_namespace_name): New.
407 (push_namespace_with_attribs): Use get_anonymous_namespace_name.
408 * decl2.c (start_objects): Update for rename of
409 get_file_function_name_long.
411 2006-10-30 Dirk Mueller <dmueller@suse.de>
414 * decl.c (grokdeclarator): Duplicate diagnostic message
415 for easier translation.
416 * decl.c (grokdeclarator): Fix line-wrapping.
418 2006-10-30 Dirk Mueller <dmueller@suse.de>
421 * decl.c (grokfndecl): Use check_main_parameter_types.
423 2006-10-30 Dirk Mueller <dmueller@suse.de>
426 * decl.c (grokfndecl): Duplicate warning message for
429 2006-10-30 Dirk Mueller <dmueller@suse.de>
431 * typeck.c (build_unary_op): Fix indenting. Use G_().
433 2006-10-29 Dirk Mueller <dmueller@suse.de>
436 * typeck.c (build_unary_op): Duplicate warning message
437 for easier translation.
439 2006-10-29 Dirk Mueller <dmueller@suse.de>
442 * typeck.c (build_array_ref): Warn for char subscriptions
445 2006-10-29 Kazu Hirata <kazu@codesourcery.com>
447 * decl.c: Fix a comment typo.
449 2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
452 * typeck.c (build_unary_op): Use same_type_p when comparing to
455 2006-10-29 Dirk Mueller <dmueller@suse.de>
458 * typeck.c (build_binary_op): Duplicate warning message
459 for better translation.
461 2006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
463 * decl.c (builtin_function_1): Move common code to
464 add_builtin_function.
465 (builtin_function): Rename to cxx_builtin_function.
466 Change the signature.
467 * call.c: Include langhooks.h.
468 (build_java_interface_fn_ref): Replace calls to
469 builtin_function with add_builtin_function.
470 * Make-lang.in (cp/call.o): Depend on langhooks.h.
471 * cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
472 cxx_builtin_function.
473 * cp-tree.h (builtin_function): Rename to cxx_builtin_function.
474 Change the signature.
476 2006-10-22 Nathan Sidwell <nathan@codesourcery.com>
479 * rtti.c (tinfo_base_init): The type info string is always global.
481 2006-10-20 Lee Millward <lee.millward@codesourcery.com>
482 Mark Mitchell <mark@codesourcery.com>
485 * decl2.c (grokbitfield): Detect invalid non-integral
486 types earlier when possible.
488 2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
491 * typeck2.c (digest_init): Raise error upon attempts to
492 initialize arrays with variables.
494 2006-10-17 Lee Millward <lee.millward@codesourcery.com>
497 * cp-tree.h (xref_basetypes): Return bool instead of void.
498 * decl.c (xref_basetypes): Adjust definition. Return false
499 if the class bases are invalid.
500 * parser.c (cp_parser_class_head): Check the return value
503 2006-10-17 Mark Mitchell <mark@codesourcery.com>
506 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Add
510 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): New
512 (cp_parser_constructor_declarator_p): Use it.
513 (cp_parser_check_type_definition): Return a value indicating
514 whether or not the definition is valid.
515 (cp_parser_enum_specifier): Skip invalid enum definitions.
517 2006-10-17 Mark Mitchell <mark@codesourcery.com>
520 * typeck2.c (build_functional_cast): Don't zero-initialize
521 non-PODs; instead, call their constructors.
522 * method.c (synthesize_method): Always build mem-initializers, if
523 we're synthesizing the default constructor.
525 2006-10-17 Mark Mitchell <mark@codesourcery.com>
528 * decl.c (reshape_init_class): Move check for designated
530 * parser.c (cp_parser_initializer_list): ... here.
531 * pt.c (tsubst_copy_and_build): Use finish_compound_literal.
533 2006-10-16 Mark Mitchell <mark@codesourcery.com>
536 * typeck2.c (process_init_constructor_array): Reword comment.
537 * pt.c (tsubst_copy_and_built): Call reshape_init before calling
541 * parser.c (cp_parser_using_declaration): Stop parsing when
542 something goes wrong with an access declaration.
545 * typeck.c (cxx_sizeof_or_alignof_type): Complete non-dependent
546 types when their sizes are required. Refine test for VLAs.
549 * parser.c (cp_parser_template_argument): Don't consider "&var" a
550 possible constant-expression.
551 * pt.c (convert_nontype_argument): Refine handling of arguments of
554 2006-10-13 Mark Mitchell <mark@codesourcery.com>
557 * parser.c (function_declarator_p): New function.
558 (cp_parser_init_declarator): Use it.
559 (cp_parser_member_declaration): Likewise.
561 2006-10-12 Mark Mitchell <mark@codesourcery.com>
564 * rtti.c (get_tinfo_decl): Refuse to create type info objects for
565 variably modified types.
567 2006-10-12 Lee Millward <lee.millward@codesourcery.com>
570 * decl.c (start_decl): Return error_mark_node if a
571 function is initialized like a variable.
572 (check_var_type): If a variable of field is declared void,
573 set the type to error_mark_node.
574 (grokdeclarator): Check the return type of check_var_type.
575 * class.c (finish_struct_1): Robustify.
577 2006-10-11 Mark Mitchell <mark@codesourcery.com>
580 * decl.c (check_initializer): Issue errors about trying to
581 initialize arrays whose elements have variable size.
583 2006-10-11 Lee Millward <lee.millward@codesourcery.com>
586 * cp-tree (struct cp_decl_specifier_seq): Rename to
587 conflicting_specifiers_p
588 * parser.c (cp_parser_set_storage_class): Set
589 conflicting_specifiers_p for the input decl specifier
590 if a typedef specifier is present. Rename uses of
591 multiple_specifiers_p to conflicting_specifiers_p.
592 (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
593 class specifier has already been set for this declaration,
594 set conflicting_specifiers_p to true on the decl_specs.
595 * decl.c (grokdeclarator): Rename uses of
596 multiple_specifiers_p to conflicting_specifiers_p.
598 2006-10-10 Brooks Moses <bmoses@stanford.edu>
600 * Make-lang.in: Added "c++.pdf" target support.
602 2006-10-10 Richard Guenther <rguenther@suse.de>
604 PR rtl-optimization/29323
605 * decl.c (finish_function): Set TREE_NOTHROW only for
606 functions that bind local.
608 2006-10-09 Richard Henderson <rth@redhat.com>
612 2006-10-04 Richard Henderson <rth@redhat.com>
613 Jakub Jelinek <jakub@redhat.com>
615 * decl.c (grokvardecl): Don't error if !have_tls.
616 (grokdeclarator): Likewise.
617 * parser.c (cp_parser_omp_threadprivate): Likewise.
619 2006-10-03 Mark Mitchell <mark@codesourcery.com>
622 * friend.c (do_friend): Improve comments; add assertion.
623 * parser.c (cp_parser_nested_name_specifier_opt): Resolve
624 typenames for qualified names used in declarations, even when
625 caching qualified name lookup.
628 * decl2.c (grokfield): Don't handle access declarations here.
629 * parser.c (cp_parser_using_declaration): Handle access
631 (cp_parser_block_declaration): Adjust calls to
632 cp_parser_using_declaration.
633 (cp_parser_member_declaration): Likewise. Use
634 cp_parser_using_declaration to look for access_declarations.
636 2006-10-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
639 * init.c (build_new): Check for invalid init.
641 2006-10-02 Mark Mitchell <mark@codesourcery.com>
644 * typeck.c (cxx_sizeof_or_alignof_type): Tidy. In templates, do
645 not try to actually evaluate sizeof for a VLA type.
647 2006-10-01 Mark Mitchell <mark@codesourcery.com>
650 * pt.c (tsubst_baselink): Substituteinto the qualifying scope.
651 * semantics.c (baselink_for_fns): Build a baselink, even when
652 processing a template.
655 * parser.c (cp_parser_postfix_dot_deref_expression): Use
656 BASELINK_ACCESS_BINFO as the qualifying scope when calling
657 adjust_result_of_qualified_name_lookup.
659 2006-09-25 Lee Millward <lee.millward@codesourcery.com>
663 * cp-tree.h (redeclare_class_template): Adjust declaration
664 to return bool instead of void.
665 * pt.c (redeclare_class_template): Update definition.
666 Return false on error.
667 * decl.c (xref_tag): Return error_mark_node if
668 redeclare_class_template returned false.
671 * cp-tree.h (begin_specialization): Return bool
673 * pt.c (check_specialization_scope): Likwise.
674 Adjust comment. Return false if a specialization
675 isn't permitted in the current scope.
676 (begin_specialization): Use the return value of
677 check_specialization_scope.
678 * parser.c (cp_parser_explicit_specialization): If
679 begin_specialization returned false, skip the rest
680 of the specialization.
682 2006-09-21 Mark Mitchell <mark@codesourcery.com>
685 * typeck.c (build_unary_op): Don't form an ADDR_EXPR around a
688 2006-09-21 Lee Millward <lee.millward@codesourcery.com>
691 * decl.c (shadow_tag): Return error_mark_node
692 if maybe_process_partial_specialization failed.
695 * decl.c (grokdeclarator): Return error_mark_node on
696 declaration with two or more data types.
698 2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
701 * class.c (check_for_override): Remove dllimport from virtual
704 2006-09-18 Steven Bosscher <steven@gcc.gnu.org>
707 * parser.c (cp_parser_labeled_statement): Return nothing. Do
708 not take in_statement_expr and in_compound as arguments. Rename
709 to cp_parser_label_for_labeled_statement. Parse only the label,
711 (cp_parser_statement): Parse the statement of a labeled-statement
712 from here, using tail recursion.
714 2006-09-14 Andrew Pinski <pinskia@physics.uc.edu>
717 * init.c (build_zero_init): If we have an error mark node for
718 the array size, return.
720 2006-09-10 Mark Mitchell <mark@codesourcery.com>
723 * cp-objcp-common.c (cxx_staticp): New function.
724 * cp-objcp-common.h (LANG_HOOOKS_STATICP): Use it.
725 * cp-tree.h (cxx_staticp): New function.
727 2006-09-09 Jason Merrill <jason@redhat.com>
730 * cvt.c (convert_to_void): Strip COMPONENT_REF to functions.
732 2006-09-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
735 * parser.c (cp_parser_skip_until_found): Rename to
736 cp_parser_skip_to_end_of_template_parameter_list. Remove last two
737 parameters. Track levels of '< ... >'. Stop at '{', '}', or ';'.
738 Reorganize. Adjust comment.
739 (cp_parser_template_declaration_after_export): Adjust call.
740 (cp_parser_enclosed_template_argument_list): Likewise.
742 2006-09-07 Andrew Pinski <pinskia@physics.uc.edu>
745 * init.c (build_new_1): Build a distinct type copy
746 for the array type that was returned from
747 build_cplus_array_type.
749 2006-09-07 Jason Merrill <jason@redhat.com>
752 * cvt.c (convert_to_void): Enable previous change.
755 * method.c (use_thunk): Clear DECL_HAS_VALUE_EXPR_P on copied
758 2006-09-07 Simon Martin <simartin@users.sourceforge.net>
761 * pt.c (fold_non_dependent_expr): Make sure expr is not
762 dereferenced if it is NULL.
764 2006-09-06 Zak Kipling <zak@transversal.com>
767 * decl.c (make_rtl_for_nonlocal_decl),
768 (start_preparsed_function): Don't use lbasename on
769 input_filename when calling get_fileinfo.
770 * semantics.c (begin_class_definition): Likewise.
771 * lex.c (cxx_make_type): Likewise.
772 (handle_pragma_interface): Call get_fileinfo on input_filename,
773 not on the parameter to the directive.
775 2006-09-06 Mark Mitchell <mark@codesourcery.com>
778 * pt.c (tsubst): Use fold_non_dependent_expr to fold array
782 * pt.c (unify): Avoid unnecessary calls to fold_build2 for array
785 2006-09-06 Jason Merrill <jason@redhat.com>
788 * cvt.c (convert_to_void): Strip useless TARGET_EXPR.
789 * cp-tree.h (TARGET_EXPR_IMPLICIT_P): New macro.
790 * tree.c (build_cplus_new): Set it.
793 * cvt.c (convert_to_void): Replace a subexpression with no side
794 effects with void_zero_node.
795 * tree.c (is_overloaded_fn): Look through COMPONENT_REF.
796 (get_first_fn): Ditto.
797 * decl.c (grokdeclarator): No need to look through COMPONENT_REF.
799 2006-09-05 Jason Merrill <jason@redhat.com>
802 * parser.c (cp_parser_diagnose_invalid_type_name): Handle the case
803 where the name is a type used incorrectly.
806 * typeck.c (maybe_warn_about_returning_address_of_local): Look
807 through COMPONENT_REF and ARRAY_REF.
810 * name-lookup.c (do_class_using_decl): Try to find the base even
811 if bases_dependent_p.
812 * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
815 * pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
817 2006-09-04 Nathan Sidwell <nathan@codesourcery.com>
819 PR 23287 Revert my 2006-09-01 patch.
820 * parser.c: Reverted.
823 2006-09-02 Lee Millward <lee.millward@codesourcery.com>
829 * parser.c (cp_parser_template_parameter_list): Add
830 invalid template parameters to the parameter list as
833 2006-09-02 Jakub Jelinek <jakub@redhat.com>
836 * except.c (build_throw): Only set current_function_returns_abnormally
840 * repo.c (repo_file): Remove.
841 (open_repo_file, reopen_repo_file_for_write): Return fopened
842 FILE * instead of setting global repo_file variable.
843 (init_repo): Adjust caller.
844 (finish_repo): Likewise. Return instead of goto out before
845 reopen_repo_file_for_write has been called.
847 2006-09-01 Nathan Sidwell <nathan@codesourcery.com>
850 * semantics.c (finish_call_expr): Add assert.
851 * name-lookup.c (lookup_arg_dependent): Check we found an overload
855 * parser.c (cp_parser_id_expression): Add member_p
856 argument. Update all callers.
857 (cp_parser_unqualified_id): Likewise. Lookup a destructor name in
858 the object's scope, if valid.
859 (cp_parser_global_scope_opt): Add object_scope_valid_p. Update
861 (cp_parser_postfix_dot_deref_expression): Set object_scope.
862 * pt.c (tsubst_copy_and_build): Lookup dependent dtor name here.
864 2006-08-30 Jason Merrill <jason@redhat.com>
867 * class.c (check_field_decls): Don't unset TYPE_PACKED until all
868 the fields have been processed.
870 2006-08-29 Andrew Pinski <pinskia@physics.uc.edu>
873 * call.c (build_x_va_arg): Remove the reference type
874 from the type before creating the pointer type.
876 2006-08-29 J"orn Rennecke <joern.rennecke@st.com>
879 * except.c (expand_start_catch_block): Use correct types for bitwise
882 2006-08-28 Jason Merrill <jason@redhat.com>
885 * class.c (check_field_decls): Unset TYPE_PACKED (t) if one of the
886 fields can't be packed.
889 * cvt.c (convert_to_void): Don't automatically load from volatiles
890 of TREE_ADDRESSABLE type.
892 2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
895 * cp-tree.h (maybe_process_partial_specialization): Return
896 tree instead of void.
897 * parser.c (cp_parser_class_head): Use return value of
898 maybe_process_partial_specialization.
899 * pt.c (maybe_process_partial_specialization): Return error_mark_node
900 for broken specializations, TYPE otherwise. Check for template
903 2006-08-27 Mark Mitchell <mark@codesourcery.com>
906 * pt.c (register_specialization): Return error_mark_node for
907 specialization-after-instantiation.
908 * decl2.c (mark_used): Mark the main function used when one of its
911 2006-08-27 Lee Millward <lee.millward@codesourcery.com>
914 * class.c (check_field_decls): Don't issue error about
915 local classes containing static data members.
917 2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
920 * parser.c (struct cp_token): Add input_file_stack_index.
922 (cp_lexer_get_preprocessor_token): Save input_file_stack_tick.
923 (cp_lexer_set_source_position_from_token): Restore input file
926 2006-08-26 Lee Millward <lee.millward@codesourcery.com>
931 * pt.c (process_template_parm): Store invalid template
932 parameters as a TREE_LIST with a TREE_VALUE of error_mark_node.
933 (push_inline_template_parms_recursive): Check for template
934 parameters having a TREE_VALUE of error_mark_node rather than
935 check the parameter itself.
936 (mangle_class_name_for_template): Likewise.
937 (comp_template_parms): When comparing the individual template
938 parameters, return 1 if either is error_mark_node.
939 (current_template_args): Robustify.
940 (redeclare_class_template): Likewise.
942 2006-08-26 Mark Mitchell <mark@codesourcery.com>
945 * class.c (resolve_address_of_overloaded_function): Add
946 access_path parameter. Perform access checks.
947 (instantiate_type): Adjust call to
948 resolve_address_of_overloaded_function. Remove unnecessary code.
949 * tree.c (is_overloaded_fn): Document. Return 2 when there are
950 acutally multiple functions.
951 (really_overloaded_fn): Use is_overloaded_fn.
952 * mangle.c (write_expression): Handle BASELINKs.
953 * cp-tree.h (really_overloaded_fn): Return bool.
954 (baselink_for_fns): Declare.
955 * search.c (lookup_member): Check access for single static
957 * pt.c (convert_nontype_argument_function): Handle BASELINKs.
958 (tsubst_copy_and_build): Generate BASELINKs for template-ids.
959 * semantics.c (finish_call_expr): Use baselink_for_fns.
960 (baselink_for_fns): New function.
961 (finish_id_expression): Use it.
962 * parser.c (cp_parser_template_argument): Don't strip BASELINKs.
965 * pt.c (tsubst): Issue errors about attempts to create VLAs at
966 template-instantiation time.
968 2006-08-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
971 * typeck2.c (cxx_incomplete_type_diagnostic): Handle template
972 template parameters. Improve error message for template type
976 * cp-tree.h (grok_op_properties): Return bool instead of void.
977 * decl.c (grokfndecl): Discard invalid operator declarations.
978 (copy_fn_p): Revert change for PR 27547.
979 (grok_op_properties): Return error status (true on success).
980 * pt.c (tsubst_decl): Discard invalid operator declarations.
982 2006-08-25 Mark Mitchell <mark@codesourcery.com>
985 * decl.c (grokdeclarator): Disallow declarations with qualified
986 names in local scopes.
988 2006-08-25 Nathan Sidwell <nathan@codesourcery.com>
991 * decl.c (make_typename_type): Only try and resolve it when
992 context is not dependent. Refactor.
993 * decl2.c (check_classfn): Push to class scope before looking for
996 2006-08-24 Danny Smith <dannysmith@users.sourceforge.net>
999 * g++spec.c (lang_specific_driver): Always check if we need to
1000 swallow a space-separated arg to '-x'.
1001 * lang-specs.h: Don't create ouput files for '-xc++-header'
1004 2006-08-23 Jason Merrill <jason@redhat.com>
1007 * pt.c (push_template_decl_real): A friend template with class
1008 scope isn't primary.
1010 2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
1013 * rtti.c (build_dynamic_cast, build_dynamic_cast_1):
1014 Move -fno-rtti check to be more specific.
1016 2006-08-22 Jason Merrill <jason@redhat.com>
1019 * call.c (build_over_call): Don't make a copy here if build_call
1022 2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
1025 * cp/init.c (build_zero_init): Handle VECTOR_TYPE and
1028 2006-08-22 Simon Martin <simartin@users.sourceforge.net>
1031 * parser.c (cp_parser_postfix_expression): Make sure that the
1032 saved value for parser->type_definition_forbidden_message is
1033 restored before returning to avoid an invalid free().
1035 2006-08-22 Jason Merrill <jason@redhat.com>
1038 * typeck.c (merge_types): If either of the types have the right
1039 attributes, return that one.
1041 * tree.c (cp_build_type_attribute_variant): Make sure we aren't
1042 doing this to class types.
1043 * typeck.c (original_type): Deal with type quals properly.
1045 2006-08-21 Jason Merrill <jason@redhat.com>
1048 * semantics.c (finish_stmt_expr_expr): Don't try to voidify here,
1049 just leave the expression as it is.
1050 (finish_stmt_expr): If the statement-expression has class type,
1051 wrap it in a TARGET_EXPR.
1052 * cp-gimplify.c (cp_gimplify_init_expr): Don't bother with
1054 * except.c (build_throw): Give the CLEANUP_POINT_EXPR void type.
1056 2006-08-21 Lee Millward <lee.millward@codesourcery.com>
1059 * decl.c (duplicate_decls): Return early if either
1060 newdecl or olddecl is error_mark_node.
1063 * decl.c (grokdeclarator): Return early after
1064 issuing diagnostic about an incomplete type.
1067 * tree.c (decl_anon_ns_mem_p): Robustify.
1068 * decl2.c (determine_visibility): Likewise.
1070 2006-08-20 Mark Mitchell <mark@codesourcery.com>
1073 * tree.c (cast_valid_in_integral_constant_expression_p): New
1075 * cp-tree.h (tsubst_copy_and_build): Adjust prototype.
1076 * pt.c (tsubst_expr): Add integral_constant_expression_p
1078 (fold_non_dependent_expr): Adjust callers of
1079 tsubst_{expr,copy_and_build}.
1080 (tsubst_friend_function): Likewise.
1081 (tsubst_template_arg): Likewise.
1082 (tsubst_default_argument): Likewise.
1083 (tsubst_decl): Likewise.
1085 (tsubst_omp_clasuses): Likewise.
1086 (regenerate_decl_fromp_template): Likewise.
1087 (instantiate_decl): Likewise.
1088 (tsubst_initializer_list): Likewise.
1089 (tsubst_enum): Likewise.
1090 (tsubst_expr): Use RECUR throughout.
1091 (tsubst_copy_and_build): Change definition of RECUR. Do not allow
1092 invalid casts in integral constant expressions.
1093 * parser.c (cp_parser_postfix_expression): Use
1094 cast_valid_in_integral_constant_expression_p.
1095 (cp_parser_cast_expression): Likewise.
1096 (cp_parser_functional_cast): Likewise.
1099 * pt.c (tsubst_qualified_id): Do not strip references from
1102 2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1105 * parser.c (cp_parser_diagnose_invalid_type_name): Handle BIT_NOT_EXPR.
1107 (cp_parser_parse_and_diagnose_invalid_type_name): Tighten condition
1108 for valid type-names.
1109 (cp_parser_unqualified_id): Fix error handling for destructors.
1112 * decl.c (xref_tag): Improve error message. Return early on error.
1115 * pt.c (tsubst_copy_and_build) <case CONSTRUCTOR>: Robustify.
1117 2006-08-17 Paolo Bonzini <bonzini@gnu.org>
1120 * semantics.c (finish_offsetof): Add new argument to fold_offsetof.
1122 2006-08-16 Andrew Pinski <pinskia@physics.uc.edu>
1125 * typeck.c (build_unary_op <case BIT_NOT_EXPR:>): Don't call
1126 perform_integral_promotions for non integral type.
1128 2006-08-16 Jason Merrill <jason@redhat.com>
1131 * pt.c (tsubst) [TEMPLATE_TYPE_PARM]: Ignore quals from template
1132 if arg is a function.
1134 2006-08-16 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1137 * init.c (build_new): Return early on invalid placement.
1139 2006-08-15 Lee Millward <lee.millward@codesourcery.com>
1142 * pt.c (process_template_parm): Robustify.
1144 2006-08-14 Steve Ellcey <sje@cup.hp.com>
1148 * operators.def: Remove <?, ?>, <?=, and >?= operators.
1149 * parser.c: Remove CPP_MIN, CPP_MAX, CPP_MIN_EQ, and CPP_MAX_EQ.
1150 (cp_parser_warn_min_max): Remove.
1152 2006-08-11 Jason Merrill <jason@redhat.com>
1155 * parser.c (cp_parser_elaborated_type_specifier): Also ignore
1156 attributes applied to a TYPENAME_TYPE.
1158 2006-08-09 Lee Millward <lee.millward@codesourcery.com>
1161 * pt.c (coerce_template_parms): Copy across the
1162 invalid template arguments to the new template inner arguments.
1163 (retrieve_specialization): Robustify.
1166 * pt.c (coerce_template_template_parms): Robustify.
1169 * error.c (dump_template_parms): Robustify.
1172 * pt.c (redeclare_class_template): Robustify.
1175 * pt.c (type_unification_real): Robustify.
1177 2006-08-03 Lee Millward <lee.millward@codesourcery.com>
1180 * decl.c (start_decl): Return error_mark_node if a
1181 diagnostic was issed for an invalid typedef initialization.
1183 2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1186 * parser.c (cp_parser_unqualified_id): Check for invalid scopes
1187 when parsing destructor names.
1190 * decl.c (duplicate_decls): Call check_default_args here.
1191 (start_preparsed_function): Do not call check_default_args.
1192 * name-lookup.c (pushdecl_maybe_friend): Only call
1193 check_default_args if duplicate_decls got bypassed.
1195 2006-08-02 Richard Guenther <rguenther@suse.de>
1199 2006-07-05 Richard Guenther <rguenther@suse.de>
1200 Andrew Pinski <pinskia@gcc.gnu.org>
1203 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1204 top level qualifiers for pointer type comparisons.
1206 2006-08-02 Mark Mitchell <mark@codesourcery.com>
1209 * pt.c (tsubst_baselink): Substitute into BASELINK_OPTYPE.
1211 2006-07-31 Mark Mitchell <mark@codesourcery.com>
1214 * tree.c (stabilize_expr): Tweak documentation. Add assertion.
1215 (stabilize_call): Tweak documentation.
1216 (stabilize_init): Only call stabilize_call for calls.
1218 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1221 * decl2.c (check_classfn): Remove early return.
1222 * search.c (lookup_member): Return NULL with bad type.
1224 2006-08-01 Steve Ellcey <sje@cup.hp.com>
1227 * decl.c (check_initializer): Check for 1 initializer on scalar types.
1229 2006-08-01 Daniel Jacobowitz <dan@codesourcery.com>
1232 * pt.c (tsubst_copy_and_build): Mark used enum types.
1233 * semantics.c (finish_id_expression): Likewise.
1235 2006-07-31 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1238 * decl.c (grokdeclarator): Check whether "long" or "short" was
1239 specified for non-integral types.
1241 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1243 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1245 2006-07-28 Lee Millward <lee.millward@codesourcery.com>
1249 * pt.c (process_template_parm) Store invalid template
1250 parameters as error_mark_node in the paramater list.
1251 (push_inline_template_parms_recursive): Handle invalid
1252 template parameters.
1253 (comp_template_parms): Likewise.
1254 (check_default_tmpl_arg): Likewise.
1255 (coerce_template_template_parms): Likewise.
1256 (mangle_class_name_for_template): Likewise.
1257 (tsubst_template_parms): Likewise.
1258 * error.c (dump_template_argument_list): Likewise.
1260 2006-07-28 Kazu Hirata <kazu@codesourcery.com>
1262 * cp-tree.h: Fix a comment typo.
1264 2006-07-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1267 * decl.c (grokdeclarator): Return error_mark_node after invalid
1270 2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
1273 * decl.c (grokvardecl): Use FROB_CONTEXT.
1274 * pt.c (register_specialization): Likewise.
1276 2006-07-23 Mark Mitchell <mark@codesourcery.com>
1279 * cp-tree.h (LOOKUP_HIDDEN): New macro. Reformat comments.
1280 * name-lookup.c (unqualified_namespace_lookup): There is no way to
1281 have a hidden name in non-namespace scopes.
1282 * pt.c (tsubst_friend_class): Look for hidden names.
1283 * decl.c (lookup_and_check_tag): Fix typo in comment.
1285 * semantics.c (finish_compound_literal): Fix typo in comment.
1287 2006-07-21 Jason Merrill <jason@redhat.com>
1289 * decl2.c (determine_visibility): Don't propagate visibility from
1291 (constrain_class_visibility): Don't warn in system headers.
1292 Don't warn about pointer fields.
1294 2006-07-20 Mike Stump <mrs@apple.com>
1296 * decl2.c (determine_visibility_from_class): Don't use hidden
1297 visibility for explicit instantiations.
1299 2006-07-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1302 * pt.c (tsubst_expr): Only apply DECL_TEMPLATE_INSTANTIATED to
1303 valid decls. Cleanup.
1306 * semantics.c (check_template_template_default_arg): Simplify
1309 2006-07-20 Jason Merrill <jason@redhat.com>
1312 * decl.c (grokvardecl): Set DECL_THIS_STATIC on file-scope
1313 const variables with implicit internal linkage.
1314 * tree.c (decl_linkage): Only return lk_external if it's set.
1317 * decl2.c (constrain_visibility): Ignore the anonymous namespace
1318 for extern "C" decls.
1319 (VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
1321 * decl2.c (constrain_visibility): Remove specified and reason
1322 parameters. Don't touch decls that already have explicit visibility.
1323 (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
1325 (determine_visibility_from_class): Reverse sense of
1326 DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
1327 (constrain_class_visibility): Only complain about member visibility
1328 if the member type is another class. Don't change visibility of the
1331 2006-07-19 Mark Mitchell <mark@codesourcery.com>
1334 * decl.c (layout_var_decl): Don't call push_local_name here.
1335 (initialize_artificial_var): Assert artificiality.
1336 (cp_finish_decl): Call push_local_name here.
1338 2006-07-18 Mark Mitchell <mark@codesourcery.com>
1341 * typeck.c (build_binary_op): Short-circuit pointer arithmetic in
1344 2006-07-18 Mark Mitchell <mark@codesourcery.com>
1347 * semantics.c (check_accessibility_of_qualified_id): Robustify.
1350 * pt.c (tsubst_decl): Handling substitutions into a static data
1351 member from within the scope of the tempalte itself.
1353 2006-07-18 Lee Millward <lee.millward@gmail.com>
1356 * method.c (locate_copy): Check for non_reference
1357 returning error_mark_node.
1360 * decl.c (duplicate_decls): Return error_mark_node
1361 on ambiguous declaration.
1363 2006-07-18 Steve Ellcey <sje@cup.hp.com>
1366 * search.c (adjust_result_of_qualified_name_lookup): Change
1367 assert to part of if statement.
1369 2006-07-17 Steve Ellcey <sje@cup.hp.com>
1372 * decl.c (reshape_init_class): Return error_mark_node on error.
1374 2006-07-17 Steve Ellcey <sje@cup.hp.com>
1377 * decl2.c (check_classfn): Return NULL_TREE on error.
1379 2006-07-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1382 * name-lookup.c (pushdecl_maybe_friend): Return early on
1384 * except.c (expand_start_catch_block): Use error_mark_node instead
1385 of NULL_TREE for invalid decls.
1386 * parser.c (cp_parser_exception_declaration): Return error_mark_node
1387 on invalid catch parameter. Simplify.
1389 2006-07-16 Jakub Jelinek <jakub@redhat.com>
1392 * decl2.c (note_vague_linkage_var): Removed.
1393 (finish_static_data_member_decl): Add decl to pending_statics vector
1394 directly. Do it even for non-public decls.
1396 2006-07-15 Lee Millward <lee.millward@gmail.com>
1399 * decl2.c (acceptable_java_type): Robustify. Use
1400 proper Boolean return type instead of return 1.
1401 (check_java_method): Don't issue error about
1402 type not being an acceptable Java parameter if
1403 it's error_mark_node.
1406 * parser.c (cp_parser_elaborated_type_specifier):
1407 Return early if an invalid type was detected.
1409 2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1412 * parser.c (cp_parser_check_decl_spec): New function.
1413 (cp_parser_decl_specifier_seq): Factor out check for repeated
1414 decl-specifiers into cp_parser_check_decl_spec. Use it.
1415 (cp_parser_type_specifier_seq): Use it.
1418 * semantics.c (finish_offsetof): Use TREE_OPERAND for COMPONENT_REFs
1422 * decl2.c (cplus_decl_attributes): Check for invalid decls.
1424 2006-07-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1427 * decl.c (cp_finish_decl): Check asmspec_tree for error_mark_node.
1428 * decl2.c (grokfield): Likewise.
1430 2006-07-12 Geoffrey Keating <geoffk@apple.com>
1432 * decl2.c (determine_visibility): Don't change visibility of
1433 function locals because of -fvisibility-inlines-hidden.
1435 2006-07-12 Jason Merrill <jason@redhat.com>
1438 * semantics.c (note_decl_for_pch): Don't premangle templates.
1440 2006-07-12 Martin Michlmayr <tbm@cyrius.com>
1442 * typeck.c (string_conv_p): Remove spurious quotation mark in
1445 2006-07-07 Lee Millward <lee.millward@gmail.com>
1446 Andrew Pinski <pinskia@gmail.com>
1449 * decl.c (define_label): Return error_mark_node on error.
1450 * semantics.c (finish_label_stmt): Don't call
1451 add_stmt for invalid labels.
1453 2006-07-06 Jason Merrill <jason@redhat.com>
1456 * decl2.c (finish_static_data_member_decl): Don't assert
1459 2006-07-05 Jason Merrill <jason@redhat.com>
1463 * class.c (check_field_decls): Check TYPE_PACKED after
1464 stripping array types.
1465 (finish_struct_bits): Don't copy TYPE_SIZE here.
1468 * friend.c (is_friend): Fix DR 45 implementation.
1470 2006-07-05 Richard Guenther <rguenther@suse.de>
1471 Andrew Pinski <pinskia@gcc.gnu.org>
1474 * cp-objcp-common.c (cxx_types_compatible_p): Ignore
1475 top level qualifiers for pointer type comparisons.
1477 2006-07-01 Jason Merrill <jason@redhat.com>
1480 * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
1483 2006-06-30 Jason Merrill <jason@redhat.com>
1486 * call.c (build_new_method_call): Force evaluation of the
1487 instance pointer, not the object.
1489 2006-06-30 Kazu Hirata <kazu@codesourcery.com>
1491 * decl2.c: Fix a comment typo.
1493 2006-06-30 Jason Merrill <jason@redhat.com>
1496 * decl2.c (grokfield): Only try to treat the decl as an access
1497 declaration if the scope is a class.
1499 2006-06-29 Jason Merrill <jason@redhat.com>
1506 * decl2.c (determine_visibility): Overhaul.
1507 (determine_visibility_from_class): Likewise.
1508 (min_vis_r, type_visibility, constrain_visibility): New fns.
1509 (constrain_visibility_for_template): Likewise.
1510 (constrain_class_visibility): Likewise.
1511 * decl.c (cp_finish_decl): Call determine_visibility for function
1513 * name-lookup.c (pushtag): Call determine_visibility.
1514 * decl.c (duplicate_decls): Don't copy visibility from template to
1516 * pt.c (check_explicit_specialization): Likewise.
1517 (lookup_template_class, tsubst_decl): Call determine_visibility.
1518 * class.c (finish_struct_1): Call constrain_class_visibility.
1523 * parser.c (cp_parser_explicit_instantiation): Pass the attributes
1525 (cp_parser_type_specifier): Allow 'enum __attribute ((...)) E'.
1526 (cp_parser_enum_specifier): Likewise.
1527 (cp_parser_elaborated_type_specifier): Apply attributes if this
1528 declares only the class.
1529 (cp_parser_class_specifier): Apply leading attributes immediately.
1530 * semantics.c (begin_class_definition): Add attributes parameter,
1531 apply them to the type.
1535 * tree.c (decl_anon_ns_mem_p): New function.
1536 * cp-tree.h: Declare it.
1537 * decl2.c (determine_visibility): Make anonymous namespace
1539 (min_vis_r, constrain_visibility): Likewise.
1540 * rtti.c (create_pseudo_type_info): Set TREE_PUBLIC on
1542 * decl.c (cxx_init_decl_processing): Set TREE_PUBLIC on
1544 * name-lookup.c (push_namespace_with_attribs): Don't set TREE_PUBLIC
1545 on anonymous namespaces.
1547 2006-06-28 Jason Merrill <jason@redhat.com>
1550 * pt.c (convert_template_argument): Pass all template arguments
1551 on to coerce_template_template_parms.
1553 2006-06-25 Lee Millward <lee.millward@gmail.com>
1554 Mark Mitchell <mark@codesuorcery.com>
1557 * decl2.c (grokbitfied): Remove check for grokdeclarator
1558 returning NULL_TREE, instead check for error_mark_node
1559 to indicate failure.
1560 * decl.c (grokdeclarator): Adjust block comment.
1562 2006-06-25 Lee Millward <lee.millward@gmail.com>
1565 * mangle.c (mangle_conv_op_name_for_type): Check for
1567 * name-lookup.c (push_class_level_binding): Robustify.
1568 (do_class_using_decl): Return early if name is error_mark_node.
1570 2006-06-23 Steve Ellcey <sje@cup.hp.com>
1573 * name-lookup.c (pushtag): Return if we have error_mark_node.
1575 2006-06-23 Steve Ellcey <sje@cup.hp.com>
1578 * typeck2.c (process_init_constructor_array): Set ce->value on errors.
1580 2006-06-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1583 * parser.c (cp_parser_attribute_list): Skip attributes with invalid
1584 arguments. Fix comment.
1587 * init.c (build_new_1): Handle error_mark_nodes returned by
1588 build_java_class_ref.
1589 (build_java_class_ref): Do not abort compilation, but return
1590 error_mark_node. Improve error message. Fix indentation.
1592 2006-06-23 Danny Smith <dannysmith@users.sourceforge.net>
1595 * decl.c (start_decl): Check that dllimports are not initialized.
1597 2006-06-22 Lee Millward <lee.millward@gmail.com>
1600 * typeck2.c (build_m_component_ref): Use error_operand_p.
1603 * decl.c (grokdeclarator): Return error_mark_node on
1604 invalid uses of the scope resolution operator.
1606 2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1609 * pt.c (determine_specialization): Check for invalid decls.
1612 * pt.c (unify) <case TEMPLATE_PARM_INDEX>: Check for invalid
1616 * rtti.c (get_tinfo_decl_dynamic): Robustify.
1618 2006-06-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1621 * init.c (push_base_cleanups): Skip members with invalid types.
1622 * typeck.c (build_class_member_access_expr): Robustify.
1624 2006-06-19 Mark Mitchell <mark@codesourcery.com>
1626 * pt.c (instantiate_template): Fix typo in comment.
1628 2006-06-19 Richard Guenther <rguenther@suse.de>
1630 * parser.c (CP_LEXER_BUFFER_SIZE): Adjust to assure near
1631 power-of-two token vector size.
1633 2006-06-16 Mark Mitchell <mark@codesourcery.com>
1636 * decl.c (cp_finsh_decl): Do not emit uninstantiated static data
1640 * call.c (standard_conversion): Strip cv-qualifiers from bitfield
1644 * decl.c (have_extern_spec): Remove.
1645 (start_decl): Do not check have_extern_spec.
1646 (start_function): Likewise.
1647 * cp-tree.h (have_extern_spec): Remove.
1648 * parser.c (cp_parser_linkage_specification): Don't set
1650 (cp_parser_init_declarator): Likewise.
1651 (cp_parser_parameter_declaration): Do not treat parameters as
1652 within the scope of an unbraced linkage specification.
1654 2006-06-15 Mark Mitchell <mark@codesourcery.com>
1657 * cp-tree.h (CLASSTYPE_SPECIALIZATION_OF_PRIMARY_TEMPLATE_P): New
1659 * pt.c (unify): Use it.
1662 * call.c (build_conditional_expr): Robustify.
1665 * pt.c (instantiate_template): Set processing_template_decl to
1666 zero while performing substitutions.
1668 2006-06-14 Mark Mitchell <mark@codesourcery.com>
1671 * parser.c (cp_parser_unqualified_id): Use constructor_name_p to
1672 identify destructors.
1673 (cp_parser_nested_name_specifier_opt): Remove invalid
1675 (cp_parser_template_id): Refine heuristic for determining whether
1676 we are entering a scope.
1679 * parser.c (cp_parser_declarator): Robustify.
1682 * pt.c (tsubst_expr): Use finish_omp_atomic.
1683 (value_dependent_expression_p): All CALL_EXPRs are dependent.
1684 * semantics.c (finish_omp_atomic): Rework to use standard
1685 paradigms for handling non-dependent expressions.
1687 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1689 * typeck.c (build_modify_expr): Tidy diagnostic message.
1691 2006-06-14 Mark Mitchell <mark@codesourcery.com>
1694 * typeck.c (build_modify_expr): Disallow array assignment.
1696 2006-06-14 Gabriel Dos Reis <gdr@integrable-solutions.net>
1698 * cp-tree.def: Fix typo.
1700 2006-06-13 Mark Mitchell <mark@codesourcery.com>
1703 * decl.c (decls_match): Allow an extern "C" variable declarations
1704 from different namespaces to match.
1705 (duplicate_decls): Disallow redeclaring a variable with a
1706 different linkage specification.
1708 2006-06-13 Jakub Jelinek <jakub@redhat.com>
1711 * cp-tree.h (cxx_int_tree_map): New struct.
1712 (struct language_function): Add extern_decl_map field.
1713 * name-lookup.c (pushdecl_maybe_friend): Add x -> t mapping
1714 to cp_function_chain->extern_decl_map hash table instead of
1715 copying over DECL_UID.
1716 * cp-gimplify.c (cxx_int_tree_map_eq, cxx_int_tree_map_hash): New
1718 (cp_genericize_r): Remap DECL_EXTERN local decls using
1719 cp_function_chain->extern_decl_map hash table.
1720 * decl.c (finish_function): Clear extern_decl_map.
1722 2006-06-12 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1725 * semantics.c (finish_offsetof): Handle pseudo-destructors.
1728 * name-lookup.c (lookup_qualified_name): Always return error_mark_node
1732 * decl2.c (finish_anon_union): Return early if build_anon_union_vars
1735 2006-06-12 Roger Sayle <roger@eyesopen.com>
1738 * typeck2.c (build_functional_cast): Use cp_convert to construct
1739 non-aggregate initializers instead of the user-level build_c_cast.
1741 2006-06-07 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1744 * cp-tree.h (finish_offsetof): Add prototype.
1745 * semantics.c (finish_offsetof): New function.
1746 * parser.c (cp_parser_builtin_offsetof): Call it instead of
1748 * pt.c (tsubst_copy_and_build): Likewise.
1750 2006-06-06 Mark Mitchell <mark@codesourcery.com>
1753 * call.c (standard_conversion): Require that the derived type be
1754 complete when performing a derived-to-base conversion.
1756 2006-06-04 Mark Mitchell <mark@codesourcery.com>
1759 * decl.c (cp_finish_decl): Process initializers for static data
1760 members with non-dependent initializers, even in templates.
1763 * decl.c (maybe_deduce_size_from_array_init): If the declaration
1764 is erroneous, give it an erroneous type.
1765 (layout_var_decl): If the type is erroneous, give up.
1766 (check_initializer): Likewise.
1769 * cp-tree.h (TYPE_OBJ_P): New macro.
1770 (TYPE_PTROB_P): Use it.
1771 (TYPE_REF_OBJ_P): Likewise.
1772 * semantics.c (finish_compound_literal): Do not permit compound
1773 literals of non-object types.
1776 * typeck.c (original_type): Robustify.
1778 2006-06-05 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1781 * init.c (constant_value_1): Return decl instead of error_mark_node
1782 for invalid initializers.
1784 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
1787 * rtti.c (build_dynamic_cast_1): Call c_common_truthvalue_conversion
1788 on operand of the COND_EXPR for the null pointer check.
1790 2006-06-01 Andrew Pinski <pinskia@physics.uc.edu>
1793 * typeck.c (build_unary_op): Mark the function as being used.
1795 2006-06-01 Alexandre Oliva <aoliva@redhat.com>
1798 * parser.c (cp_parser_initial_pragma): Read one more token for
1799 caller after reading PCH file in.
1801 2006-05-31 Mark Mitchell <mark@codesourcery.com>
1804 * call.c (perform_implicit_conversion): Do not actually perform
1805 conversions in templates.
1808 * call.c (resolve_args): Check for invalid uses of bound
1809 non-static member functions.
1810 * init.c (build_offset_ref): Return error_mark_node for errors.
1813 * decl.c (reshape_init): Robustify.
1814 (reshape_init_array_1): Likewise.
1816 2006-05-30 Mark Mitchell <mark@codesourcery.com>
1819 * parser.c (cp_parser_decl_specifier_seq): Issue errors about
1820 "friend" specifiers that do not appear in class scopes.
1823 * class.c (check_bitfield_decl): Ensure that all bitfields have
1826 2006-05-29 Kazu Hirata <kazu@codesourcery.com>
1828 * pt.c (convert_nontype_argument): Fix a typo in an error
1831 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
1833 * decl.c, decl2.c, parser.c: Fix comment typos. Follow
1834 spelling conventions.
1836 2006-05-24 Mark Mitchell <mark@codesourcery.com>
1839 * decl.c (cp_make_fname_decl): Don't set DECL_INITIAL to
1840 error_mark_node to indicate an initialization is OK.
1841 (start_decl): Likewise. Adjust call to start_decl_1.
1842 (start_decl_1): Add initialized parameter. Simplify.
1843 * except.c (initialize_handler_parm): Adjust call to
1845 (expand_start_catch_block): Let cp_finish_decl initialize catch
1847 * cp-tree.h (start_decl_1): Adjust prototype.
1848 * pt.c (tsubst_expr): Don't set DECL_INITIAL to error_mark_node.
1849 (instantiate_decl): Let cp_finish_decl handle initialization.
1850 * semantics.c (finish_compound_literal): Create a temporary
1851 variable for the literal.
1852 * typeck.c (build_unary_op): Remove COMPOUND_LITERAL_P special
1854 * decl2.c (finish_static_data_member_decl): Don't set
1856 (grokfield): Do not try to initialize functions.
1858 2006-05-23 Mark Mitchell <mark@codesourcery.com>
1861 * pt.c (determine_specialization): Disallow partial
1862 specializations of templates.
1864 2006-05-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1867 * typeck.c (build_modify_expr): Test arguments for error_operand_p.
1869 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE.
1871 2006-05-21 Mark Mitchell <mark@codesourcery.com>
1874 * cp-tree.h (cp_save_expr): New function.
1875 * init.c (build_new): Correct logic for zero-element array
1876 warning. Use cp_save_expr.
1877 * tree.c (cp_save_expr): New function.
1879 2006-05-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1882 * decl.c (grokdeclarator): Return error_mark_node instead of NULL_TREE
1885 2006-05-19 Mike Stump <mrs@apple.com>
1887 * typeck.c (default_conversion): Remove static.
1889 2006-05-19 Mark Mitchell <mark@codesourcery.com>
1892 * cp-tree.h (begin_function_try_block): Change prototype.
1893 (finish_function_handler_sequence): Likewise.
1894 * parser.c (cp_parser_function_try_block): Adjust calls.
1895 * pt.c (tsubst_expr): Adjust calls.
1896 * semantics.c (begin_function_try_block): Create an artificial
1898 (finish_function_handler_sequence): Close it.
1900 2006-05-18 Mark Mitchell <mark@codesourcery.com>
1904 * typeck.c (decay_conversion): Convert bitfields to their declared
1905 types here. Improve documentation. Avoid use of cp_convert.
1906 (default_conversion): Make it static. Perform integral promotions
1907 before lvalue-to-rvalue, function-to-pointer, and array-to-pointer
1909 * init.c (build_init): Remove.
1910 (expand_default_init): Do not call rvalue.
1911 * call.c (null_ptr_cst_p): Robustify.
1912 (build_conditional_expr): Tidy.
1913 * except.c (build_throw): Do not perform lvalue-to-rvalue
1914 conversion on operand before initializing temporary.
1915 * tree.c (convert.h): Include it.
1916 (convert_bitfield_to_declared_type): Use convert_to_integer, not
1918 (rvalue): Don't convert bitfields to their declared type here.
1919 * cp-tree.h (build_init): Remove.
1920 (default_conversion): Likewise.
1921 * typeck2.c (build_m_component_ref): Do not perform
1922 lvalue-to-rvalue, function-to-pointer, or array-to-pointer
1923 conversions here. Correct error message.
1925 2006-05-17 Mark Mitchell <mark@codesourcery.com>
1928 * decl2.c (check_member_template): Remove checks for virtual
1930 * parser.c (cp_parser_function_specifier_opt): Complain about
1932 (cp_parser_pure_specifier): Likewise.
1935 * parser.c (cp_parser_set_storage_class): Check for
1936 invalid uses of storage classes on unbraced linkage
1938 (cp_parser_decl_specifier_seq): Pass keywords, not storage classes,
1939 to cp_parser_set_storage_class.
1941 2006-05-17 Jakub Jelinek <jakub@redhat.com>
1944 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR
1948 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
1949 on combined parallel workshare constructs.
1950 * pt.c (tsubst_expr): Copy OMP_PARALLEL_COMBINED flag.
1952 2006-05-16 H.J. Lu <hongjiu.lu@intel.com>
1955 * Make-lang.in (GXX_OBJS): Replace gcc.o with $(GCC_OBJS).
1957 2006-05-15 Mark Mitchell <mark@codesourcery.com>
1960 * cp-tree.h (perform_access_checks): New function.
1961 * semantics.c (perform_access_checks): New function.
1962 (perform_deferred_access_checks): Use it.
1963 * parser.c (cp_parser_simple_declaration): Adjust call to
1964 cp_parser_init_declarator.
1965 (cp_parser_type_parameter): Do not defer checks in default
1967 (cp_parser_explicit_specialization): Adjust call to
1968 cp_parser_single_declaration.
1969 (cp_parser_init_declarator): Perform template-parameter access
1971 (cp_parser_parameter_declaration): Do not defer checks for
1972 template parameter default arguments.
1973 (cp_parser_template_declaration_after_export): Gather access
1974 checks for template parameters, and pass them to
1975 cp_parser_single_declaration.
1976 (cp_parser_template_parameter_access_checks): New function.
1977 (cp_parser_single_declaration): Add checks parameter.
1980 * call.c (convert_like_real): Convert bitfields to their declared
1981 types when forming an rvalue.
1982 * tree.c (convert_bitfield_to_declared_type): New function.
1984 * cp-tree.h (convert_bitfield_to_declare_type): Declare it.
1986 2006-05-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
1989 * pt.c (any_dependent_template_arguments_p): Return early on invalid
1993 * search.c (adjust_result_of_qualified_name_lookup): Skip on
1994 invalid context_class.
1997 * pt.c (do_decl_instantiation): Return early on invalid decl.
2000 * pt.c (push_template_decl_real): Return error_mark_node instead
2004 * pt.c (tsubst_friend_class): Return early on invalid friend
2007 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
2009 * Make-lang.in (cp/decl.o): Add dependency on $(TARGET_H).
2010 (cp/decl2.o): Likewise.
2011 (cp/typeck.o): Likewise.
2012 (cp/cvt.o): Likewise.
2013 (cp/parser.o): Likewise.
2014 (cp/call.o): Replace target.h with $(TARGET_H).
2016 2006-05-14 Alexandre Oliva <aoliva@redhat.com>
2018 * pt.c (build_non_dependent_expr): Leave ADDR_EXPR of
2019 COMPONENT_REF alone.
2021 2006-05-11 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2024 * decl.c (copy_fn_p): Return early on non-member functions.
2026 2006-05-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2029 * decl2.c (build_memfn_type): Skip invalid functions and class types.
2031 2006-05-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2034 * pt.c (convert_nontype_argument): Return early on invalid arguments.
2036 * pt.c (process_template_parm): Remove superfluous temporary.
2039 * pt.c (process_template_parm): Handle erroneous non-type parameters.
2042 * typeck.c (convert_for_initialization): Skip erroneous types.
2045 * typeck.c (convert_arguments): Return early on args with
2048 2006-05-03 Aldy Hernandez <aldyh@redhat.com>
2051 * typeck.c (build_static_cast_1): Save casted types in used types
2053 (build_reinterpret_cast_1): Same.
2054 * rtti.c (build_dynamic_cast_1): Same.
2056 2006-05-04 Jakub Jelinek <jakub@redhat.com>
2059 * parser.c (cp_parser_omp_for_loop): Only call
2060 cp_parser_abort_tentative_parse if cp_parser_parse_definitely was not
2063 2006-05-02 Mark Mitchell <mark@codesourcery.com>
2066 * decl.c (grokdeclarator): Robustify checks for defining members
2067 of incomplete types.
2070 * class.c (add_method): Call grok_special_member_properties.
2071 * decl.c (grokdeclarator): Don't call it here.
2072 (copy_fn_p): A TEMPLATE_DECL is never a copy constructor or
2073 assignment operator. Set TYPE_HAS_CONSTURCTOR if DECL is a
2075 (start_method): Don't call grok_special_member_properties.
2076 * method.c (implicitly_declare_fn): Likewise.
2077 * pt.c (instantiate_class_template): Likewise.
2078 * decl2.c (grokfield): Likewise.
2080 2006-05-02 Jakub Jelinek <jakub@redhat.com>
2083 * cp-gimplify.c (cxx_omp_privatize_by_reference): New function.
2084 * cp-tree.h (cxx_omp_privatize_by_reference): New prototype.
2085 * cp-objcp-common.h (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Define.
2087 2006-04-30 Mark Mitchell <mark@codesourcery.com>
2090 * pt.c (tsubst_default_argument): Increment function_depth around
2091 call to tsubst_expr.
2092 * parser.c (cp_parser_parameter_declaration): Likewise.
2093 * decl2.c (mark_used): Tidy.
2095 2006-04-30 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2098 * decl.c (grok_op_properties): Skip operators with invalid args
2099 when checking for class-type or enum-type args.
2101 2006-04-29 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2104 * decl.c (copy_fn_p): Skip functions with invalid first arg.
2106 2006-04-27 Mark Mitchell <mark@codesourcery.com>
2109 * tree.c (rvalue): Convert bitfields to their declared types.
2112 * typeck2.c (cxx_incomplete_type_diagnostic): Handle
2115 2006-04-24 Mark Mitchell <mark@codesourcery.com>
2118 * typeck.c (decay_conversion): Don't adjust bitfield types.
2119 (perform_integral_promotions): Treat bitfield enums as enums, not
2120 as short integer types.
2121 * tree.c (rvalue): Convert bitfields to their correct types.
2123 2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2126 * class.c (layout_class_type): Skip fields with invalid types.
2128 2006-04-23 Mark Mitchell <mark@codesourcery.com>
2131 * cp-tree.h (build_this_parm): Declare.
2132 (grok_method_quals): Remove.
2133 (build_memfn_type): Declare.
2134 (build_artificial_parm): Declare.
2135 (do_friend): Remove quals parameter.
2136 * decl.c (build_this_parm): New function.
2137 (grokfndecl): Use it. Do not pass quals to grokclassfn.
2138 (grokdeclarator): Rename quals to memfn_quals. Avoid allocating
2139 unnecessary TYPE_DECLs. Correct qualification of member function
2141 * method.c (implicitly_declare_fn): Use build_this_parm.
2142 * friend.c (do_friend): Remove quals parameter.
2143 * decl2.c (grok_method_quals): Remove.
2144 (build_memfn_type): New function.
2145 (build_artificial_parm): Give it external linkage.
2146 (grokclassfn): Remove quals parameter. Do not build "this"
2150 * cp-tree.h (is_bitfield_expr_with_lowered_type): New function.
2151 * typeck.c (is_bitfield_expr_with_lowered_type): New function.
2152 (decay_conversion): Convert bitfield expressions to the correct
2154 (build_modify_expr): Remove spurious conversions.
2155 * class.c (layout_class_type): Modify the type of bitfields to
2156 indicate a limited range.
2157 * call.c (standard_conversion): Adjust the type of bitfield
2158 expressions used in an rvalue context.
2159 (build_conditional_expr): Likewise.
2161 2006-04-22 Kazu Hirata <kazu@codesourcery.com>
2163 * decl.c: Fix comment typos.
2165 2006-04-21 Eric Christopher <echristo@apple.com>
2167 * decl.c: Fix typo in function name.
2169 2006-04-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2172 * parser.c (cp_parser_class_name): Check for invalid typenames.
2176 * pt.c (tsubst_friend_function): Return early if
2177 pushdecl_namespace_level fails.
2180 * typeck.c (convert_arguments): Return error_mark_node instead of
2182 * cp-tree.h (error_mark_list): Remove declaration.
2183 * decl.c (error_mark_list): Remove definition.
2184 (cxx_init_decl_processing): Do not initialize error_mark_list.
2187 * rtti.c (build_dynamic_cast_1): Check for invalid conversions
2188 before calling convert_to_reference.
2189 * cvt.c (convert_to_reference): Assert that reftype is a
2192 2006-04-19 Mark Mitchell <mark@codesourcery.com>
2195 * class.c (currently_open_class): Tidy.
2196 * decl.c (grokdeclarator): If we encounter an erroneous
2197 declarator, assume that we have already issued an error message
2198 and return. Return error_mark_node instead of NULL_TREE in more
2199 places. Issue errors about function definitions that do not have
2200 a function declarator. Check for complete types for all function
2202 * cp-tree.h (cp_error_declarator): Remove.
2203 (currently_open_class): Change return type.
2204 * parser.c (cp_parser_id_expression): Add optional_p parameter.
2205 (cp_parser_parse_diagnose_invalid_type_name): Adjust calls.
2206 (cp_parser_id_expression): Likewise.
2207 (cp_parser_unqualified_id): If the name is optional, return
2209 (cp_parser_postfix_dot_deref_expression): Adjust calls.
2210 (cp_parser_type_parameter): Likewise.
2211 (cp_parser_unqualified_id): Likewise.
2212 (cp_parser_direct_declarator): Likewise.
2213 (cp_parser_declarator_id): Add optional_p parameter.
2214 (cp_parser_function_definition_from_specifiers_and_declarator):
2215 Assume that start_function indicates failure only if it has issued
2217 (cp_parser_omp_var_list_no_open): Adjust calls.
2219 2006-04-17 Janis Johnson <janis187@us.ibm.com>
2221 PR c++/26114, c++/26115
2222 * typeck.c (cxx_mark_addressable): Restore check for extra_warnings.
2223 * class.c (check_field_decls): Ditto.
2225 2006-04-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2227 * init.c (build_offset_ref): Remove superfluous temporary.
2229 2006-04-16 Mark Mitchell <mark@codesourcery.com>
2232 * typeck.c (finish_class_member_access_expr): Robustify
2234 2006-04-15 Kazu Hirata <kazu@codesourcery.com>
2236 * Make-lang.in (cp/pt.o): Depend on vecprim.h.
2237 * pt.c: Include vecprim.h.
2238 (inline_parm_levels): Change the type to VEC(int,heap) *.
2239 (inline_parm_levels_used): Remove.
2240 (maybe_begin_member_template_processing,
2241 maybe_end_member_template_processing): Use VEC instead of
2244 * cp/call.c: Fix comment typos.
2246 2006-04-12 Mark Mitchell <mark@codesourcery.com>
2248 * parser.c (cp_parser_init_declarator): Initialize local variables
2251 2006-04-12 Roger Sayle <roger@eyesopen.com>
2253 * parser.c (cp_parser_init_declarator): Initialise
2254 is_parenthesized_init to false to avoid compiler warning.
2256 2006-04-11 Mark Mitchell <mark@codesourcery.com>
2258 * cp-tree.h (build_operator_new_call): Adjust prototype.
2259 (build_new_method_call): Likewise.
2260 (build_op_delete_call): Likewise.
2261 * init.c (build_raw_new_expr): New function.
2262 (build_new_1): Pass information as parameters, rather than
2263 bundling it into a NEW_EXPR.
2264 (build_new): Adjust accordingly.
2265 (build_vec_delete_1): Adjust for changes to build_op_delete_call.
2266 (build_delete): Likewise.
2267 * decl.c (finish_destructor_body): Likewise.
2268 * call.c (build_operator_new_call): Return the allocation function
2270 (build_op_delete_call): Take allocation function as parameter.
2271 (build_special_member_call): Adjust call to build_new_method_call.
2272 (build_new_method_call): Return function called.
2273 * pt.c (tsubst_copy_and_build): Adjust call to
2274 build_new_method_call.
2275 * semantics.c (finish_call_expr): Likewise.
2276 * parser.c (cp_parser_postfix_expression): Likewise.
2277 * typeck2.c (cxx_incomplete_type_diagnostic): Refer to
2278 "incomplete", not "undefined", types.
2281 * decl.c (grokdeclarator): Remove namespace-handling code for
2282 pointers-to-members.
2283 * parser.c (cp_parser_ptr_operator): Check for qualified names
2287 * parser.c (cp_parser_init_declarator): Adjust logic for deciding
2288 whether or not to look for a pure-specifier.
2289 (cp_parser_member_declaration): Likewise.
2291 2006-04-08 Kazu Hirata <kazu@codesourcery.com>
2293 * decl2.c, pt.c, semantics.c: Fix comment typos.
2295 2006-04-06 Roger Sayle <roger@eyesopen.com>
2297 * call.c (null_ptr_cst_p): Add explicit TREE_CONSTANT_OVERFLOW check.
2299 2006-04-05 Jason Merrill <jason@redhat.com>
2301 * name-lookup.c (push_namespace_with_attribs): Temporarily disable
2302 default hidden visibility for anonymous namespace.
2304 2006-03-29 Roger Sayle <roger@eyesopen.com>
2307 * init.c (build_vec_delete_1): Convert BASE pointer's type to
2308 the base pointer type to avoid a type mismatch in the EQ_EXPR.
2310 2006-03-24 Carlos O'Donell <carlos@codesourcery.com>
2312 * search.c (maybe_suppress_debug_info): If
2313 flag_emit_class_debug_always then don't suppress.
2315 2006-03-22 Jason Merrill <jason@redhat.com>
2317 * name-lookup.c (push_namespace_with_attribs): Only apply hidden
2318 visibility to anonymous namespaces if HAVE_GAS_HIDDEN.
2320 2006-03-21 Jakub Jelinek <jakub@redhat.com>
2323 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle default arguments.
2325 2006-03-21 Jason Merrill <jason@redhat.com>
2328 * parser.c (cp_parser_declaration): Support attributes on
2329 anonymous namespaces.
2330 * name-lookup.c (push_namespace_with_attribs): Anonymous
2331 namespaces default to hidden visibility.
2333 2006-03-20 Jason Merrill <jason@redhat.com>
2335 PR c++/21764, c++/19238
2336 * decl.c (cp_finish_decl): Call determine_visibility later.
2337 (start_preparsed_function): Likewise.
2338 * cp-tree.h (CP_TYPE_CONTEXT, TYPE_NAMESPACE_SCOPE_P): New macros.
2339 (TYPE_CLASS_SCOPE_P, TYPE_FUNCTION_SCOPE_P): New macros.
2340 * name-lookup.h (struct cp_binding_level): Add has_visibility
2342 * name-lookup.c: Include c-pragma.h.
2343 (push_namespace_with_attribs): Split out from push_namespace.
2344 Push visibility if appropriate. Set TREE_PUBLIC on namespaces.
2345 (leave_scope): Pop visibility if appropriate.
2346 * decl2.c (determine_visibility_from_class): Split out from...
2347 (determine_visibility): ...here. Handle function scope and
2349 (import_export_decl): Move visibility handling to
2350 determine_visibility_from_class.
2351 * parser.c (cp_parser_declaration, cp_parser_namespace_name): Allow
2352 attributes on namespace declarations.
2354 2006-03-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2357 * decl.c (grokdeclarator): Do not accept long long double.
2358 Reorganize checks for invalid (combinations of) type modifiers.
2359 Quote modifiers in messages.
2361 2006-03-09 Jason Merrill <jason@redhat.com>
2363 PR c++/16387, c++/16389
2364 * typeck.c (cxx_alignof_expr, cxx_sizeof_expr): New functions.
2365 (cxx_sizeof_or_alignof_expr): Split out from here.
2367 2006-03-09 Diego Novillo <dnovillo@redhat.com>
2369 Merge from gomp-20050608-branch
2371 2006-02-02 Diego Novillo <dnovillo@redhat.com>
2373 * decl.c (pop_labels_1): Use appropriate pointer casting.
2374 (poplevel_named_label_1): Likewise.
2375 (named_label_entry_hash): Likewise.
2376 (named_label_entry_eq): Likewise.
2377 (check_goto): Likewise.
2378 (define_label): Likewise.
2380 2006-01-26 Diego Novillo <dnovillo@redhat.com>
2382 * cp-tree.h (CP_OMP_CLAUSE_INFO): Use TREE_TYPE instead
2384 * pt.c: Use OMP_CLAUSE_CODE and OMP_CLAUSE_OPERAND
2385 instead of TREE_CODE/TREE_OPERAND.
2386 * semantics.c: Likewise.
2387 * parser.c: Likewise.
2389 2005-11-10 Diego Novillo <dnovillo@redhat.com>
2391 * parser.c (cp_parser_omp_threadprivate): Emit diagnostic if
2392 target does not support TLS.
2394 2005-11-09 Jakub Jelinek <jakub@redhat.com>
2396 * decl.c (redeclaration_error_message): Don't error about
2397 DECL_THREAD_LOCAL_P mismatches if CP_DECL_THREADPRIVATE_P
2400 2005-11-08 Jakub Jelinek <jakub@redhat.com>
2403 * semantics.c (finish_omp_barrier, finish_omp_flush): New
2405 * parser.c (cp_parser_omp_barrier): Call finish_omp_barrier.
2406 (cp_parser_omp_flush): Call finish_omp_flush.
2407 * cp-tree.h (finish_omp_barrier, finish_omp_flush): New
2411 * pt.c (tsubst_expr): Handle OMP_MASTER and OMP_ORDERED.
2413 2005-11-03 Jakub Jelinek <jakub@redhat.com>
2415 * semantics.c (finish_omp_threadprivate): Error on class-scope
2418 2005-11-02 Jakub Jelinek <jakub@redhat.com>
2420 * parser.c (cp_parser_omp_all_clauses): If some clause
2421 type is not allowed, don't remove just one of the
2422 clauses, but all clauses added in that loop round.
2424 * semantics.c (finish_omp_clauses): Fix function
2425 comment. Don't handle non-const or mutable specially,
2426 as const and not mutable is predetermined shared and
2427 that leads to double error. Don't ICE if copyin var is
2431 * parser.c (cp_parser_pragma): Diagnose
2432 PRAGMA_OMP_SECTION outside of PRAGMA_OMP_SECTIONS
2435 * semantics.c (finish_omp_threadprivate): Error if V
2436 is automatic variable or has incomplete type.
2438 2005-11-01 Diego Novillo <dnovillo@redhat.com>
2440 * parser.c (cp_parser_omp_all_clauses): Use
2441 OMP_CLAUSE_CHAIN instead of TREE_CHAIN.
2443 2005-11-01 Diego Novillo <dnovillo@redhat.com>
2445 * parser.c (cp_parser_omp_all_clauses): When emitting an
2446 error message, remove the invalid clause from the list.
2448 2005-10-31 Diego Novillo <dnovillo@redhat.com>
2450 * parser.c (cp_parser_omp_parallel): Do not allow 'nowait' in
2451 combined parallel+workshare directives.
2453 2005-10-31 Richard Henderson <rth@redhat.com>
2455 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DTOR):
2456 Use cxx_omp_clause_dtor.
2457 * cp-tree.h (CP_OMP_CLAUSE_INFO): New.
2458 (cxx_omp_clause_dtor): New.
2459 * cp-gimplify.c (cxx_omp_clause_apply_fn): New.
2460 (cxx_omp_clause_default_ctor): Use it.
2461 (cxx_omp_clause_copy_ctor, cxx_omp_clause_assign_op):
2463 (cxx_omp_clause_dtor): New.
2464 * semantics.c (finish_omp_clauses): Rewrite cdtor
2465 checking to fill in CP_OMP_CLAUSE_INFO. Don't
2466 specialcase LASTPRIVATE for removal.
2467 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
2468 cxx_omp_clause_assign_op): Move to cp-gimplify.c.
2470 2005-10-28 Jakub Jelinek <jakub@redhat.com>
2472 * semantics.c (finish_omp_threadprivate): If
2473 DECL_RTL_SET_P, call make_decl_rtl again so that
2474 encode_section_info can update SYMBOL_REF's flags.
2476 2005-10-26 Jakub Jelinek <jakub@redhat.com>
2478 * semantics.c (finish_omp_for): Don't segfault if COND
2479 or INCR is NULL. If not calling c_finish_omp_for
2480 right away and one of COND and INCR is NULL, issue
2481 error and don't expand anything.
2484 * cp-tree.h (finish_omp_for): Add PRE_BODY argument.
2485 * semantics.c (finish_omp_for): Likewise. Set
2486 OMP_FOR_PRE_BODY to PRE_BODY if deferring, add it
2487 into the current statement list if not processing
2488 template decl or pass it to c_finish_omp_for.
2490 * parser.c (cp_parser_omp_for_loop): Expand optional DECL_EXPRs
2491 into PRE_BODY statement list. Pass it to finish_omp_for.
2492 * pt.c (tsubst_expr) <case OMP_FOR>: tsubst_expr also
2493 OMP_FOR_PRE_BODY into PRE_BODY stmt list, pass it to
2494 finish_omp_for. Put all the statements into sk_omp
2497 2005-10-25 Jakub Jelinek <jakub@redhat.com>
2500 * parser.c (struct cp_parser): Rename in_iteration_statement
2501 field to in_statement.
2502 (IN_SWITCH_STMT, IN_ITERATION_STMT): Define.
2503 (IN_OMP_BLOCK, IN_OMP_FOR): Change values.
2504 (cp_parser_new, cp_parser_begin_omp_structured_block,
2505 cp_parser_end_omp_structured_block,
2506 cp_parser_omp_for_loop): Adjust for
2507 in_iteration_statement renaming.
2508 (cp_parser_selection_statement): Save
2509 parser->in_iteration, or it temporarily with
2510 IN_SWITCH_STMT for the
2511 cp_parser_implicitly_scoped_statement call.
2512 (cp_parser_iteration_statement): Adjust for
2513 in_iteration_statement renaming. Use
2514 IN_ITERATION_STMT rather than true.
2515 (cp_parser_jump_statement): Adjust for
2516 in_iteration_statement renaming and new values. Don't
2517 error on break in a switch statement within OMP_FOR or
2518 OpenMP structured block.
2521 * parser.c (cp_parser_cache_group): Don't stop if next
2522 token is CPP_PRAGMA_EOL and end is CPP_PRAGMA_EOL as
2523 well. If current token is CPP_PRAGMA, consume
2524 everything until CPP_PRAGMA_EOL inclusive.
2526 2005-10-24 Jakub Jelinek <jakub@redhat.com>
2529 * semantics.c (finish_omp_for): Handle MODOP_EXPR in
2530 addition to MODIFY_EXPR.
2532 2005-10-23 Richard Henderson <rth@redhat.com>
2534 * cp-gimplify.c (struct cp_gimplify_ctx): Remove.
2536 (begin_bc_block, finish_bc_block): Use it.
2537 (push_context, pop_context): Remove.
2538 (cp_genericize): Don't use them. Assert bc_label is null.
2539 * semantics.c (finish_omp_clauses): Create a fake data
2540 element of TYPE for probing ctors.
2542 2005-10-23 Richard Henderson <rth@redhat.com>
2544 * cp-objcp-common.h (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): New.
2545 (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR): New.
2546 (LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP): New.
2547 (LANG_HOOKS_OMP_CLAUSE_DTOR): New.
2548 * semantics.c (finish_omp_clauses): Look through
2549 arrays when looking up special member calls. Also
2550 remove FIRSTPRIVATE when LASTPRIVATE fails.
2551 (cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor): New.
2552 (cxx_omp_clause_assign_op): New.
2553 * cp-tree.h: Declare them.
2555 2005-10-21 Richard Henderson <rth@redhat.com>
2557 * decl.c (check_previous_goto_1): Return false if error.
2558 (check_switch_goto): Likewise.
2559 (finish_case_label): Don't emit the case label on error.
2560 * parser.c (struct cp_parser): Revert
2561 in_switch_statement_p changes.
2562 (cp_parser_labeled_statement,
2563 cp_parser_selection_statement): Likewise.
2564 (cp_parser_begin_omp_structured_block): Don't save...
2565 (cp_parser_end_omp_structured_block): or restore
2566 in_switch_statement_p.
2568 2005-10-21 Richard Henderson <rth@redhat.com>
2570 * semantics.c (finish_omp_threadprivate): Set
2571 decl_flags.u2sel when necessary.
2573 2005-10-21 Richard Henderson <rth@redhat.com>
2575 * decl.c (poplevel_named_label_1): Restore creation of the
2577 (decl_jump_unsafe): Check for error_mark_node types.
2578 (check_goto): Don't check cdtor_label. Don't use identify_goto.
2579 * semantics.c (finish_return_stmt): Do check_omp_return before
2580 converting to cdtor_label goto.
2582 2005-10-21 Richard Henderson <rth@redhat.com>
2585 * decl.c (check_omp_return): Return false on error.
2586 * cp-tree.h (check_omp_return): Update decl.
2587 * semantics.c (finish_return_stmt): Avoid adding
2590 2005-10-21 Richard Henderson <rth@redhat.com>
2592 * cp-tree.h (struct language_function): Remove
2594 Change x_named_labels to a hashtable.
2595 (check_omp_return): Declare.
2596 * decl.c (struct named_label_use_entry): Rename from
2597 named_label_use_list. Remove label_decl.
2598 (struct named_label_entry): Rename from
2599 named_label_list. Remove old_value and next. Change
2600 in_try_scope and in_catch_scope to bool. Add
2602 (pop_labels_1): New.
2603 (pop_labels): Use it.
2604 (pop_local_label, poplevel_named_label_1): New.
2605 (poplevel): Use them.
2606 (named_label_entry_hash, named_label_entry_eq): New.
2607 (make_label_decl): Create named_labels. Move label
2608 creation bits from lookup_label.
2609 (declare_local_label): Tidy.
2610 (identify_goto): Split out from ...
2611 (check_previous_goto_1): Add exited_omp argument.
2614 (use_label): Merge into...
2615 (check_goto): ... here. Handle omp scopes.
2616 (check_omp_return): New.
2617 (check_previous_gotos): Merge into...
2618 (define_label): ... here.
2619 (save_function_data): Remove x_named_label_uses reference.
2620 (finish_function): Likewise.
2621 * name-lookup.h (sk_omp): New.
2622 * name-lookup.c (begin_scope): Handle it.
2623 * parser.c (cp_parser_omp_for): Don't create extra
2626 (cp_parser_omp_sections): Likewise.
2627 * semantics.c (finish_return_stmt): Call check_omp_return.
2628 (begin_omp_structured_block): Use sk_omp.
2629 (finish_omp_structured_block): Use do_poplevel. Don't build a
2630 MUST_NOT_THROW expression here.
2631 (begin_omp_parallel, finish_omp_parallel): Don't create extra
2632 compound statements.
2634 2005-10-21 Diego Novillo <dnovillo@redhat.com>
2637 * cp/cp-tree.h (struct lang_decl_flags): Add field
2639 (CP_DECL_IS_THREADPRIVATE): Define.
2640 * cp/semantics.c (finish_omp_threadprivate): Set. Do
2641 not error out if CP_DECL_IS_THREADPRIVATE is set
2643 * cp/decl.c (duplicate_decls): Merge
2644 CP_DECL_THREADPRIVATE_P.
2646 2005-10-20 Richard Henderson <rth@redhat.com>
2648 * cp-gimplify.c (cp_gimplify_omp_for): New.
2649 (cp_gimplify_expr): Call it.
2650 * cp-tree.h (OMP_FOR_GIMPLIFYING_P): New.
2651 * parser.c (struct cp_parser): Rename
2652 in_iteration_statement_p to in_iteration_statement and
2653 change to unsigned char. Similarly with
2654 in_switch_statement. Update all users.
2655 (IN_OMP_BLOCK, IN_OMP_FOR): New.
2656 (cp_parser_labeled_statement): Diagnose case labels
2657 binding closer to an openmp block nested than the
2659 (cp_parser_jump_statement): Diagnose break and
2660 continue labels binding closer to an openmp block than
2661 an iteration or switch.
2662 (cp_parser_omp_for_loop): Mark in_iteration_statement
2664 (cp_parser_begin_omp_structured_block): New.
2665 (cp_parser_end_omp_structured_block): New.
2666 (cp_parser_omp_structured_block): Use them.
2667 (cp_parser_omp_for, cp_parser_omp_sections_scope): Likewise.
2668 (cp_parser_omp_parallel): Likewise.
2670 2005-10-20 Richard Henderson <rth@redhat.com>
2672 * semantics.c (begin_omp_structured_block): New.
2673 (finish_omp_structured_block): New.
2674 (begin_omp_parallel, finish_omp_parallel): Use them.
2675 * parser.c (cp_parser_omp_structured_block): Likewise.
2676 (cp_parser_omp_for): Likewise.
2677 (cp_parser_omp_sections_scope): Likewise.
2678 * cp-tree.h: Declare them.
2680 2005-10-20 Richard Henderson <rth@redhat.com>
2682 * parser.c (cp_parser_omp_master): Return the statement.
2683 (cp_parser_omp_ordered): Likewise.
2684 (cp_parser_omp_construct): Set the locus for them.
2686 2005-10-19 Richard Henderson <rth@redhat.com>
2688 * semantics.c (finish_omp_atomic): Revert to
2689 uses_template_parms.
2691 2005-10-19 Richard Henderson <rth@redhat.com>
2693 * semantics.c (finish_omp_clauses): Avoid
2694 DECL_THREAD_LOCAL_P on a PARM_DECL. Remove some
2695 stub asserts guaranteed to fail.
2697 2005-10-19 Richard Henderson <rth@redhat.com>
2699 * cp-tree.h (OMP_ATOMIC_DEPENDENT_P, OMP_ATOMIC_CODE): New.
2700 (finish_omp_clauses, finish_omp_for, finish_omp_atomic): New.
2701 * parser.c (cp_parser_omp_clause_copyin): Remove.
2702 (cp_parser_omp_all_clauses): Use cp_parser_omp_var_list instead.
2703 Call finish_omp_clauses.
2704 (cp_parser_omp_clause_if): Don't do error checking here.
2705 (cp_parser_omp_clause_num_threads): Likewise.
2706 (cp_parser_omp_clause_schedule): Likewise.
2707 (cp_parser_omp_atomic): Use finish_omp_atomic.
2708 (cp_parser_omp_for_loop): Don't discard DECL_EXPR.
2709 Don't decompose assignment statment here. Use
2712 * pt.c (tsubst_omp_clauses): New.
2713 (tsubst_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
2714 OMP_SINGLE, OMP_SECTION, OMP_CRITICAL, OMP_ATOMIC.
2715 * semantics.c (finish_omp_clauses): New.
2716 (begin_omp_parallel, finish_omp_parallel): Know Less about the
2717 internals of the stmt_list stack.
2718 (finish_omp_for, finish_omp_atomic): New.
2720 2005-10-18 Jakub Jelinek <jakub@redhat.com>
2722 * semantics.c (cxx_omp_predetermined_sharing): New function.
2723 * cp-tree.h (cxx_omp_predetermined_sharing): New prototype.
2725 (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
2727 2005-10-18 Richard Henderson <rth@redhat.com>
2729 * parser.c (cp_parser_omp_single): Use make_node and accessors
2732 2005-10-17 Richard Henderson <rth@redhat.com>
2734 * parser.c (cp_parser_omp_for_loop): Handle declarations.
2736 2005-10-12 Richard Henderson <rth@redhat.com>
2738 * Make-lang.in (CXX_C_OBJS): Add c-omp.o.
2739 * cp-tree.h (begin_omp_parallel, finish_omp_parallel): Declare.
2740 (finish_omp_threadprivate): Declare.
2741 * parser.c (struct cp_lexer): Add in_pragma.
2742 (cp_lexer_consume_token): Don't consume a PRAGMA_EOL
2744 (cp_parser_skip_to_closing_parenthesis): Stop at PRAGMA_EOL.
2745 (cp_parser_skip_to_end_of_statement): Likewise.
2746 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
2747 (cp_parser_skip_to_closing_brace): Likewise.
2748 (cp_parser_skip_to_pragma_eol): Reset in_pragma.
2749 (cp_parser_require_pragma_eol): New.
2750 (cp_parser_statement): Add in_compound argument;
2752 Restart if a non-statement pragma seen outside a
2754 (cp_parser_statement_seq_opt): Stop at PRAGMA_EOL.
2755 (cp_parser_declaration_seq_opt): Likewise.
2756 (cp_parser_member_specification_opt): Likewise.
2757 (cp_parser_function_definition_after_decl): Likewise.
2758 (cp_parser_skip_until_found): Likewise.
2759 (cp_parser_cache_group): Likewise.
2760 (enum pragma_omp_clause, cp_parser_omp_clause_name,
2761 check_no_duplicate_clause,
2762 cp_parser_omp_var_list_no_open,
2763 cp_parser_omp_var_list, cp_parser_omp_clause_copyin,
2764 cp_parser_omp_clause_default, cp_parser_omp_clause_if,
2765 cp_parser_omp_clause_nowait,
2766 cp_parser_omp_clause_num_threads,
2767 cp_parser_omp_clause_ordered,
2768 cp_parser_omp_clause_reduction,
2769 cp_parser_omp_clause_schedule,
2770 cp_parser_omp_all_clauses,
2771 cp_parser_omp_structured_block, cp_parser_omp_atomic,
2772 cp_parser_omp_barrier, cp_parser_omp_critical,
2773 cp_parser_omp_flush, cp_parser_omp_for_loop,
2774 cp_parser_omp_for, cp_parser_omp_master,
2775 cp_parser_omp_ordered, cp_parser_omp_sections_scope,
2776 cp_parser_omp_sections, cp_parser_omp_parallel,
2777 cp_parser_omp_single, cp_parser_omp_threadprivate,
2778 cp_parser_omp_construct): New.
2779 (cp_parser_pragma): Handle OpenMP pragmas.
2780 * semantics.c (finish_omp_threadprivate): New.
2781 (begin_omp_parallel, finish_omp_parallel): New.
2783 2005-10-11 Richard Henderson <rth@redhat.com>
2785 * parser.c (struct cp_token): Add pragma_kind.
2786 (eof_token): Initialize it.
2787 (cp_lexer_handle_pragma): Remove.
2788 (cp_parser_initial_pragma): New.
2789 (cp_lexer_new_main): Use it.
2790 (cp_lexer_get_preprocessor_token): Initialize pragma_kind.
2791 (cp_lexer_print_token): Don't handle CPP_PRAGMA.
2792 (cp_parser_skip_to_pragma_eol): New.
2793 (cp_parser_error): Use it.
2796 2005-10-09 Richard Henderson <rth@redhat.com>
2798 * lex.c (parse_strconst_pragma): Update for c_lex name change.
2799 (handle_pragma_java_exceptions): Likewise.
2800 * parser.c (cp_lexer_new_main): Likewise.
2802 2005-10-06 Richard Henderson <rth@redhat.com>
2804 * parser.c (cp_lexer_new_main): Comment out defer_pragmas.
2805 (cp_lexer_handle_pragma): Comment out
2806 cpp_handle_deferred_pragma.
2808 2005-10-01 Richard Henderson <rth@redhat.com>
2810 * name-lookup.c (lookup_name): Remove prefer_type argument.
2811 (lookup_name_prefer_type): New function.
2812 * name-lookup.h (lookup_name_prefer_type): Declare it.
2813 * decl.c (lookup_and_check_tag): Use it.
2814 * pt.c (tsubst_friend_class): Likewise. Update for
2816 (lookup_template_class, tsubst_copy_and_build): Likewise.
2818 2006-03-06 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2821 * tree.c (bot_manip): Don't call mark_used.
2823 2006-03-02 Mike Stump <mrs@apple.com>
2825 * decl2.c (import_export_decl): Remove redundant call to
2826 targetm.cxx.key_method_may_be_inline ().
2828 2006-03-02 Richard Sandiford <richard@codesourcery.com>
2830 * decl.c (start_decl): Use have_global_bss_p when deciding
2831 whether to make the decl common.
2833 2006-03-01 Mike Stump <mrs@apple.com>
2836 * decl2.c (import_export_decl): Fix ABI breakage on darwin.
2838 2006-02-24 Geoffrey Keating <geoffk@apple.com>
2840 * except.c (expand_start_catch_block): Handle
2841 flag_use_cxa_get_exception_ptr.
2843 2006-02-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2846 * decl.c (grok_op_properties): Check for ellipsis in arguments of
2849 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2851 * Make-lang.in (C++): Remove.
2852 (.PHONY): Remove C++.
2854 2006-02-18 Mark Mitchell <mark@codesourcery.com>
2857 * cp-tree.h (cp_finish_decl): Adjust declaration.
2858 (grokbitfield): Likewise.
2859 (finish_static_data_member_decl): Likewise.
2860 * init.c (constant_value_1): Ensure processing_template_decl when
2861 folding non-dependent initializers for static data members of
2862 dependent types. Return error_mark_node for erroneous
2864 * class.c (get_vtable_decl): Use finish_decl, not cp_finish_decl.
2865 * decl.c (cp_make_fname_decl): Adjust call to cp_finish_decl.
2866 (cp_finish_decl): Add init_const_expr_p parameter. Set
2867 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2868 (finish_decl): Adjust call to cp_finish_decl.
2869 (compute_array_index_type): Robustify.
2870 (start_method): Use finish_decl, not cp_finish_decl.
2871 * rtti.c (emit_tinfo_decl): Likewise.
2872 * except.c (initialize_handler_parm): Adjust call to
2874 (expand_start_catch_block): Likewise.
2875 * cvt.c (build_up_reference): Adjust call to cp_finish_decl.
2876 * pt.c (instantiate_class_template): Adjust call to
2877 finish_static_data_member_decl.
2878 (tsubst_expr): Use finish_decl, not cp_finish_decl.
2879 (instantiate_decl): Adjust call to cp_finish_decl.
2880 * name-lookup.c (pushdecl_top_level_1): Use finish_decl, not
2882 * decl2.c (finish_static_data_member_decl): Add init_const_expr_p
2884 (grokfield): Likewise.
2885 * parser.c (cp_parser_condition): Check for constant initializers.
2886 (cp_parser_init_declarator): Adjust calls to grokfield and
2887 cp_finish_decl. Don't set
2888 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P here.
2889 (cp_parser_member_declaration): Likewise.
2890 (cp_parser_objc_class_ivars): Likewise.
2892 2006-02-14 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2894 * call.c (standard_conversion): Return NULL instead of 0.
2895 (build_user_type_conversion_1): Likewise.
2896 (tourney): Likewise.
2897 * decl.c (redeclaration_error_message): Likewise.
2898 * error.c (language_to_string): Likewise.
2900 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2902 * cp-tree.h (warn_hidden): Remove prototype.
2903 * class.c (warn_hidden): Make static.
2905 * cp-tree.h (build_type_conversion): Remove prototype.
2906 * cvt.c (build_type_conversion): Add prototype, make static.
2908 * cp-tree.h (push_tinst_level): Remove prototype.
2909 (pop_tinst_level): Likewise.
2910 * pt.c (push_tinst_level): Add prototype, make static.
2911 (pop_tinst_level): Likewise.
2913 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2915 * decl.c (grokdeclarator): Return NULL_TREE instead of 0.
2916 * typeck.c (unary_complex_lvalue): Likewise.
2918 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2920 * lex.c (parse_strconst_pragma): Return error_mark_node instead of
2921 "(tree)-1" to indicate failure. Simplify.
2922 (handle_pragma_interface): Test for error_mark_node instead of
2924 (handle_pragma_implementation): Likewise.
2926 2006-02-13 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2929 * parser.c (cp_parser_decl_specifier_seq): Check for duplicate
2930 decl-specifiers. Remove extra check for duplicate 'friend'.
2931 * decl.c (grokdeclarator): Remove check for duplicate
2932 decl-specifiers. Set longlong together with long_p.
2934 2006-02-12 Jason Merrill <jason@redhat.com>
2937 * except.c (build_throw): Add a CLEANUP_POINT_EXPR inside the
2938 TRY_CATCH_EXPR or MUST_NOT_THROW_EXPR.
2940 2006-02-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2942 * class.c (debug_class): Remove extern.
2943 (debug_thunks): Likewise.
2945 2006-02-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
2947 * typeck.c (string_conv_p): Don't test for flag_const_strings.
2949 2006-02-08 Jason Merrill <jason@redhat.com>
2952 * cp-gimplify.c (cp_gimplify_expr): Don't call
2953 cp_gimplify_init_expr for MODIFY_EXPRs.
2954 * typeck2.c (split_nonconstant_init_1): Use INIT_EXPR.
2956 2006-02-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
2959 * decl.c (grokdeclarator): Set dname also for destructor.
2962 * decl.c (grokdeclarator): Clear storage_class together with staticp.
2964 2006-02-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
2966 * cp-tree.h (tf_warning_or_error): Renamed from tf_warn_or_error.
2967 (cp_build_qualified_type): Propogate renaming.
2968 * call.c (convert_like_real): Likewise.
2969 * cvt.c (cp_convert_to_pointer, convert_to_reference): Likewise.
2970 * decl.c (make_typename_type, grokdeclarator): Likewise.
2971 * pt.c (tsubst_friend_function, instantiate_class_template,
2972 tsubst_default_argument, instantiate_decl,
2973 tsubst_initializer_list, tsubst_enum): Likewise.
2974 * semantics.c (finish_template_type): Likewise.
2975 * typeck.c (build_ptrmemfunc, convert_for_assignment): Likewise.
2977 2006-02-07 Dirk Mueller <dmueller@suse.com>
2979 * typeck.c (build_binary_op): Annotate div-by-zero
2980 warnings to make -Wno-div-by-zero have an effect.
2982 2006-02-07 Mark Mitchell <mark@codesourcery.com>
2985 * pt.c (coerce_template_template_parms): Do not templates with
2986 excess default arguments to match template template parameters
2987 with fewer parameters.
2988 (coerce_template_parms): Add use_default_args parameter; use
2989 default arguments only when true.
2990 (lookup_template_class): Adjust call to coerce_template_parms.
2991 (fn_type_unification): Likewise.
2993 (get_bindings): Likewise.
2994 (dependent_type_p): Add assertions.
2996 2006-02-06 Roger Sayle <roger@eyesopen.com>
2998 * decl.c (grokdeclarator): Don't bother checking for CHAR_TYPE.
2999 * rtti.c (typeinfo_in_lib_p): Likewise.
3000 * cp-tree.h (INTEGRAL_CODE_P, CP_INTEGRAL_TYPE_P): Likewise.
3001 * name-lookup.c (arg_assoc_type): Likewise.
3003 2006-02-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3005 * cp-tree.h (tf_warn_or_error): New substituion flag.
3006 (cp_build_qualified_type): Use it.
3007 * call.c (convert_like_real): Likewise.
3008 * cvt.c (cp_convert_to_pointer): Likewise.
3009 (convert_to_reference): Likewise.
3010 * decl.c (make_typename_type): Likewise.
3011 (grokdeclarator): Likewise.
3012 * pt.c (tsubst_friend_function): Likewise.
3013 (tsubst_friend_class): Likewise.
3014 (instantiate_class_template): Likewise.
3015 (tsubst_default_argument): Likewise.
3016 (instantiate_decl): Likewise.
3017 (tsubst_initializer_list): Likewise.
3018 (tsubst_enum): Likewise.
3019 * semantics.c (finish_template_type): Likewise.
3020 * typeck.c (build_ptrmemfunc): Likewise.
3021 (convert_for_assignment): Likewise.
3023 2006-02-03 Lee Millward <lee.millward@gmail.com>
3025 * typeck.c (string_conv_p): Pass appropiate
3026 OPT_Wxxxx values when calling warning().
3027 (build_array_ref, cxx_mark_addressable): Likewise.
3028 (check_return_expr): Likewise.
3030 * init.c (perform_member_init): Likewise.
3031 (sort_mem_initializers, emit_mem_initializers): Likewise.
3033 * class.c (check_field_decls): Likewise.
3034 (warn_about_ambiguous_bases): Likewise.
3036 * decl.c (pop_label, poplevel): Likewise.
3037 (duplicate_decls, grok_op_properties): Likewise.
3038 (start_preparsed_function, finish_function): Likewise.
3040 * name-lookup.c (pushdecl_maybe_friend): Likewise.
3041 (pushdecl_maybe_friend): Likewise.
3043 * parser.c (cp_parser_warn_min_max): Likewise.
3044 (cp_parser_cast_expression): Likewise.
3046 * method.c (lazily_declare_fn): Likewise.
3047 * cvt.c (convert_to_void): Likewise.
3048 * mangle.c (finish_mangling): Likewise.
3049 * cp-gimplify.c (gimplify_expr_stmt): Likewise.
3051 2006-02-03 Mark Mitchell <mark@codesourcery.com>
3053 * name-lookup.c (do_class_using_decl): Use IDENTIFIER_TYPENAME_P,
3054 not IDENTIFIER_OPNAME_P.
3056 2006-01-31 Mark Mitchell <mark@codesourcery.com>
3059 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Revise
3061 * pt.c (determine_specialization): Use INNERMOST_TEMPLATE_PARMS,
3063 (instantiate_class_template): Simplify.
3064 (verify_class_unification): Remove.
3065 (unify): Document parameters. Use INNERMOST_TEMPLATE_ARGS to
3066 permit multiple levels of template arguments.
3067 (more_specialized_class): Simplify.
3068 (get_class_bindings): Pass full arguments to unify. Fold
3069 verify_class_unification into this function. Return full
3071 (most_specialized_class): Adjust for changes to
3072 get_class_bindings. Issue errors here for ambiguity. Return the
3073 fully deduced arguments for the most specialized class, in
3074 addition to the partial specialization.
3076 2006-01-31 Ben Elliston <bje@au.ibm.com>
3078 * mangle.c: Comment fix.
3080 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3082 * Make-lang.in (cp-warn): Include CXX_COMPAT_WARN.
3083 * repo.c (extract_string, afgets): Use cast when converting from
3086 2006-01-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
3088 * call.c (alloc_conversion): Use cast when converting from void *.
3089 (alloc_conversions): Likewise.
3090 (add_candidate): Likewise.
3091 (print_z_candidates): Likewise.
3092 (add_warning): Likewise.
3093 * pt.c (retrieve_local_specialization): Likewise.
3094 (process_partial_specialization): Likewise.
3095 (mangle_class_name_for_template): Likewise.
3096 (tsubst_template_args): Likewise.
3097 * typeck2.c (pat_calc_hash): Likewise.
3098 (pat_compare): Likewise.
3099 (abstract_virtuals_error): Likewise.
3100 * class.c (method_name_cmp): Likewise.
3101 (resort_method_name_cmp): Likewise.
3102 (get_vfield_name): Likewise.
3103 * decl2.c (generate_ctor_and_dtor_functions_for_priority): Likewise.
3104 * lex.c (init_reswords): Likewise.
3105 * rtti.c (create_pseudo_type_info): Likewise.
3106 * search.c (dfs_lookup_base): Likewise.
3107 (dfs_dcast_hint_pre): Likewise.
3108 (dfs_dcast_hint_post): Likewise.
3109 * tree.c (hash_tree_cons): Likewise.
3110 * repo.c (extract_string): Likewise.
3112 * cp-objcp-common.c (decl_shadowed_for_var_lookup): Likewise.
3113 * g++spec.c (lang_specific_driver): Likewise.
3115 2006-01-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3117 * call.c (joust): Pass option code to warning. Use inform for
3119 * class.c (check_bases): Likewise.
3120 (maybe_warn_about_overly_private_class): Likewise.
3121 (check_field_decls): Likewise.
3122 (layout_empty_base): Likewise.
3123 (layout_virtual_bases): Likewise.
3124 (layout_class_type): Likewise.
3126 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3129 * decl.c (start_preparsed_function): Call maybe_apply_pragma_weak
3131 (start_function): ... here.
3133 2006-01-28 Mark Mitchell <mark@codesourcery.com>
3136 * class.c (resolve_address_of_overloaded_function): Adjust use of
3137 return value from most_specialized_instantiation.
3138 * pt.c (determine_specialization): Avoid multiple calls to
3140 (most_specialized_instantiation): When a tie occurs, set the
3141 current presumed champion to the next template. Return the
3142 TREE_LIST node containing the template, rather than the template
3144 (most_specialized): Remove.
3145 * name-lookup.c (push_overloaded_decl): When duplicate_decls
3146 indicates a failed redeclaration, report that to callers.
3148 2006-01-26 Jason Merrill <jason@redhat.com>
3151 * name-lookup.c (parse_using_directive): Require strong using to
3152 name a nested namespace.
3154 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3157 * cp-tree.h (do_poplevel): Remove prototype.
3158 * semantics.c (do_poplevel): Add prototype. Make static.
3161 * cp-tree.h (default_conversion): Remove prototype.
3162 * typeck.c (default_conversion): Make static.
3164 2006-01-25 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3166 * cp-tree.h (get_primary_binfo): Remove prototype.
3167 (push_using_decl): Likewise.
3168 (current_template_args): Likewise.
3169 (more_specialized_class): Likewise.
3170 (mark_class_instantiated): Likewise.
3171 (default_conversion): Likewise.
3172 (pfn_from_ptrmemfunc): Likewise.
3173 * class.c (get_primary_binfo): Add prototype, make static, simplify.
3174 * name-lookup.c (push_using_decl): Make static.
3175 * pt.c (current_template_args): Likewise.
3176 (more_specialized_class): Likewise.
3177 (mark_class_instantiated): Likewise.
3178 * typeck.c (default_conversion): Make static.
3179 (pfn_from_ptrmemfunc): Add prototype, make static.
3181 2006-01-24 Dirk Mueller <dmueller@suse.de>
3183 * typeck.c (build_binary_op): Use OPT_Wfloat_equal in warning().
3185 2006-01-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3188 * parser.c (cp_parser_unqualified_id): Check that destructor name
3190 * call.c (check_dtor_name): Do not expect a BIT_NOT_EXPR.
3191 Adjust comment. Return early if possible.
3192 Use same_type_p to compare types.
3193 * typeck.c (lookup_destructor): Adjust call to check_dtor_name.
3195 2006-01-24 Mark Mitchell <mark@codesourcery.com>
3197 * semantics.c: Remove outdated comment.
3199 2006-01-23 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3201 * cp-tree.h (do_poplevel): Remove prototype.
3202 * semantics.c (do_poplevel): Add prototype. Make static.
3204 * cp-tree.h (original_type): Remove prototype.
3205 * typeck.c (original_type): Make static.
3207 * cp-tree.h (declare_global_var): Remove prototype.
3208 * decl.c (declare_global_var): Make static.
3210 * cp-tree.h (implicitly_declare_fn): Remove prototype.
3211 * method.c (implicitly_declare_fn): Make static.
3213 * cp-tree.h (fold_decl_constant_value): Remove prototype.
3214 * pt.c (fold_decl_constant_value): Make static.
3216 * cp-tree.h (build_x_delete): Remove prototype.
3217 * init.c (build_vec_delete_1): Call build_op_delete_call directly
3218 and not via build_x_delete.
3219 (build_x_delete): Remove.
3221 * cp-tree.h (get_vtt_name): Remove prototype.
3222 * class.c (get_vtt_name): Remove.
3223 (build_vtt): Call mangle_vtt_for_type instead of get_vtt_name.
3225 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3227 * rtti.c (build_dynamic_cast): Fix comment.
3229 2006-01-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3232 * rtti.c (build_dynamic_cast): Reject dynamic_cast use if
3235 2006-01-21 Mark Mitchell <mark@codesourcery.com>
3238 * class.c (build_base_path): Generate a NOP_EXPR instead of a
3239 COMPONENT_REF if the base and derived classes are at the same
3243 * decl.c (begin_destructor_body): Robustify.
3246 * parser.c (cp_parser_direct_declarator): Robustify.
3248 2006-01-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3250 * parser.c (cp_lexer_next_token_is_keyword): Simplify.
3252 * parser.c (clear_decl_specs): Remove prototype.
3254 * parser.c (cp_parser_expression_fn): Remove.
3256 * call.c (add_builtin_candidates): Remove superfluous return.
3257 * name-lookup.c (do_toplevel_using_decl): Likewise.
3258 * parser.c (cp_parser_type_specifier_seq): Likewise.
3259 (cp_parser_save_default_args): Likewise.
3261 2006-01-20 Dirk Mueller <dmueller@suse.com>
3264 * semantics.c (finish_if_stmt): Call empty_body_warning.
3265 * parser.c (cp_parser_implicitly_scoped_statement):
3266 Mark empty statement with an empty stmt.
3268 2006-01-19 Mark Mitchell <mark@codesourcery.com>
3271 * name-lookup.c (do_class_using_decl): Don't try to look up base
3272 classes in templates with dependent base types.
3274 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3277 * pt.c (maybe_process_partial_specialization): Return early on
3280 2006-01-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3283 * decl.c (start_preparsed_function): Check default arguments
3285 * name-lookup.c (pushdecl_maybe_friend): Check default arguments
3286 of all functions and function templates.
3287 * parser.c (cp_parser_late_parsing_default_args): Check default
3289 * decl2.c (check_default_args): Set missing default arguments to
3292 2006-01-18 Mark Mitchell <mark@codesourcery.com>
3295 * cp-tree.h (push_class_stack): New function.
3296 (pop_class_stack): Likewise.
3297 * class.c (class_stack_node): Add hidden field.
3298 (pushclass): Clear it.
3299 (push_class_stack): New function.
3300 (pop_class_stack): Likewise.
3301 (currently_open_class): Ignore hidden classes.
3302 (currently_open_derived_class): Likewise.
3303 * name-lookup.c (push_to_top_level): Call push_class_stack.
3304 (pop_from_top_level): Call pop_class_stack.
3306 2006-01-18 Kazu Hirata <kazu@codesourcery.com>
3308 * tree.c (find_tree_t, find_tree): Remove.
3309 * cp-tree.h: Remove the prototype for find_tree.
3311 2006-01-18 Jakub Jelinek <jakub@redhat.com>
3313 * search.c (lookup_conversions_r): Fix a pasto.
3315 2006-01-17 Eric Christopher <echristo@apple.com>
3317 * call.c (convert_like_real): When issuing conversion
3318 warnings, depend on OPT_Wconversion.
3319 * cvt.c (build_expr_type_conversion): Ditto.
3321 2006-01-17 Kazu Hirata <kazu@codesourcery.com>
3323 * name-lookup.c (lookup_namespace_name): Remove.
3324 * name-lookup.h: Remove the prototype for
3325 lookup_namespace_name.
3327 2006-01-17 Jakub Jelinek <jakub@redhat.com>
3330 * decl.c (compute_array_index_type): After issuing not an integral
3331 constant-expression error, set size to 1 to avoid ICEs later on.
3333 2006-01-16 Ian Lance Taylor <ian@airs.com>
3335 * parser.c: Include "cgraph.h".
3336 (cp_parser_asm_definition): Call cgraph_add_asm_node rather than
3339 2006-01-16 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
3341 * g++spec.c (lang_specific_spec_functions): Remove.
3343 2006-01-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
3345 * decl.c (check_initializer): Fix thinko.
3347 2006-01-14 Mark Mitchell <mark@codesourcery.com>
3350 * parser.c (cp_parser_direct_declarator): Use cp_parser_error
3353 2006-01-13 Jason Merrill <jason@redhat.com>
3355 * pt.c (check_explicit_specialization): Use CP_DECL_CONTEXT even more.
3357 * name-lookup.c (set_decl_namespace): Use CP_DECL_CONTEXT.
3358 * pt.c (check_explicit_specialization): Likewise.
3360 2006-01-12 Jason Merrill <jason@redhat.com>
3363 * pt.c (check_explicit_specialization): Handle namespace
3365 * name-lookup.c (set_decl_namespace): Likewise.
3367 2006-01-12 Nathan Sidwell <nathan@codesourcery.com>
3370 * class.c (handle_using_decl): Pass correct scope to
3371 cp_emit_debug_info_for_using.
3373 2006-01-11 Nathan Sidwell <nathan@codesourcery.com>
3376 * tree.c (lvalue_p_1): Any part of a COMPONENT_REF affects
3379 2006-01-06 Gabriel Dos Reis <gdr@integrablesolutions.net>
3381 * parser.c (cp_parser_primary_expression): Document the grammar
3382 for the built-in offsetof, a GNU extension.
3384 2006-01-04 Zdenek Dvorak <dvorakz@suse.cz>
3387 * init.c (constant_value_1): Unshare use of DECL_INITIAL. Fix a typo
3390 2006-01-04 Chris Lattner <sabre@gnu.org>
3392 * typeck2.c: update copyright to 2006
3393 (split_nonconstant_init_1): Set TREE_CONSTANT to true.
3395 2006-01-04 Mark Mitchell <mark@codesourcery.com>
3398 * parser.c (cp_parser_nested_name_specifier_opt): Preserve access
3399 checks, even when parsing tentatively.
3401 2006-01-04 Richard Henderson <rth@redhat.com>
3403 Merge from gomp branch.
3404 * lex.c (handle_pragma_java_exceptions): Fix whitespace.
3405 * parser.c (struct cp_token): Add pragma_kind.
3406 (eof_token): Update to match.
3407 (struct cp_lexer): Add in_pragma; rearrange next for better packing.
3408 (cp_parser_initial_pragma): New.
3409 (cp_lexer_new_main): Use it. Don't bother clearing
3410 c_lex_return_raw_strings.
3411 (cp_lexer_get_preprocessor_token): Always initialize keyword
3412 and pragma_kind fields. Handle CPP_PRAGMA.
3413 (cp_lexer_consume_token): Don't allow CPP_PRAGMA_EOL when
3415 (cp_lexer_handle_pragma): Remove. Update callers to cp_parser_pragma.
3416 (cp_lexer_print_token) <CPP_PRAGMA>: Don't print as a string.
3417 (cp_parser_skip_to_pragma_eol): New.
3418 (cp_parser_error): Use it.
3419 (cp_parser_skip_to_closing_parenthesis): Stop at CPP_PRAGMA_EOL;
3420 rearrange with switch statement.
3421 (cp_parser_skip_to_end_of_statement): Likewise.
3422 (cp_parser_skip_to_end_of_block_or_statement): Likewise.
3423 (cp_parser_skip_to_closing_brace): Likewise.
3424 (cp_parser_skip_until_found): Likewise.
3425 (cp_parser_statement): Add in_compound argument; update callers.
3426 Use it to decide how to handle pragma parsing.
3427 (cp_parser_labeled_statement): Add in_compound argument; pass
3428 it on to cp_parser_statement.
3429 (cp_parser_statement_seq_opt): Stop at CPP_PRAGMA_EOL.
3430 (cp_parser_declaration_seq_opt): Likewise.
3431 (cp_parser_parameter_declaration): Likewise.
3432 (cp_parser_member_specification_opt): Likewise.
3433 (cp_parser_function_definition_after_decl): Likewise.
3434 (cp_parser_cache_group): Handle CPP_PRAGMA/CPP_PRAGMA_EOL pairs.
3435 (cp_parser_pragma): New.
3438 2006-01-04 Dirk Mueller <dmueller@suse.com>
3440 * decl.c (finish_constructor_body): create simple
3441 compound stmt instead of a if(1) { } construct.
3443 2006-01-03 Mark Mitchell <mark@codesourcery.com>
3446 * name-lookup.c (push_class_level_binding): When a derived class
3447 provides a type binding, eliminate any type binding from a base
3451 * repo.c (repo_emit_p): Always instantiate static data members
3452 initialized by constant expressions, so that there values are
3455 2006-01-02 Mark Mitchell <mark@codesourcery.com>
3458 * class.c (add_method): Set TYPE_HAS_CONVERSION for classes with a
3459 conversion operator.
3460 * decl.c (grokdeclarator): Do not set TYPE_HAS_CONVERSION here.
3463 * class.c (add_method): Never associate more than one destructor
3464 with a single class.
3467 * cp-tree.h (do_friend): Adjust prototype.
3468 * decl.c (grokfndecl): Make funcdef_flag a bool, not an int.
3469 (grokdeclarator): Likewise. Refine check for invalid
3470 declarations/definitions of member functions outside of their own
3472 * friend.c (do_friend): Make funcdef_flag a bool, not an int.
3475 * parser.c (cp_parser_mem_initializer_list): Check result of
3476 cp_parser_mem_initializer against error_mark_node, not NULL_TREE.
3477 (cp_parser_mem_initializer): Return error_mark_node for failure.
3480 * parser.c (cp_parser_template_parameter_list): Call
3481 begin_template_parm_list and end_template_parm_list here.
3482 (cp_parser_type_parameter): Not here.
3483 (cp_parser_template_declaration_after_export): Or here.
3484 (cp_parser_elaborated_type_specifier): Call
3485 cp_parser_check_template_parameters.
3487 * tree.c (build_target_expr_with_type): Use force_target_expr.
3489 * decl2.c (mark_used): Fix typo in comment.
3491 2006-01-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
3493 * parser.c (cp_parser_using_declaration): Skip name-lookup on
3498 Copyright (C) 2006 Free Software Foundation, Inc.
3500 Copying and distribution of this file, with or without modification,
3501 are permitted in any medium without royalty provided the copyright
3502 notice and this notice are preserved.