1 2008-06-21 Jonathan Wakely <jwakely.gcc@gmail.com>
3 * typeck.c (composite_pointer_type_r, cxx_sizeof_expr,
4 cxx_alignof_expr, check_template_keyword, cp_build_binary_op,
5 pointer_diff, cp_build_unary_op, build_x_compound_expr_from_list,
6 build_reinterpret_cast_1, cp_build_c_cast, check_return_expr): Change
8 * init.c (perform_member_init, build_new_1, build_new): Likewise.
9 * decl.c (warn_extern_redeclared_static, duplicate_decls,
10 * identify_goto, check_previous_goto_1, check_goto, define_label,
11 check_tag_decl, start_decl, check_class_member_definition_namespace,
12 grokfndecl, grokdeclarator): Likewise.
13 * except.c (check_handlers): Likewise.
14 * typeck2.c (digest_init): Likewise.
15 * pt.c (check_specialization_namespace,
16 check_explicit_instantiation_namespace,
17 maybe_process_partial_specialization, check_explicit_specialization,
18 convert_template_argument, do_decl_instantiation,
19 do_type_instantiation, instantiate_decl): Likewise.
20 * semantics.c (finish_template_type_parm): Likewise.
21 * name-lookup.c (pushdecl_maybe_friend,
22 check_for_out_of_scope_variable): Likewise.
23 * decl2.c (finish_static_data_member_decl, build_anon_union_vars,
24 coerce_new_type): Likewise.
25 * parser.c (cp_parser_nested_name_specifier_opt,
26 cp_parser_mem_initializer, cp_parser_elaborated_type_specifier,
27 cp_parser_class_head, cp_parser_check_class_key): Likewise.
28 (cp_parser_parameter_declaration): Check flag_permissive instead of
30 * call.c (joust): Change pedwarn to warning.
31 * friend.c (make_friend_class): Likewise.
33 2008-06-16 Jan Hubicka <jh@suse.cz>
35 * method.c: Include cgraph.h.
36 (use_thunk): Use cgraph_add_new_function instead of calling backend
39 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
41 * parser.c: Fix comment typo.
43 2008-06-14 Simon Martin <simartin@users.sourceforge.net>
46 * decl2.c (grokbitfield): Receive the list of attributes, pass it to
47 grokdeclarator and apply it to the created declaration.
48 * cp-tree.h (grokbitfield): Update prototype.
49 * parser.c (cp_parser_member_declaration): Don't apply the attributes
50 since they are now applied in grokbitfield. Adjusted the call to
52 (cp_parser_objc_class_ivars): Likewise.
54 2008-06-14 Simon Martin <simartin@users.sourceforge.net>
57 * class.c (type_requires_array_cookie): Do not consider delete[]
58 operators with an ellipsis as second argument.
60 2008-06-09 Jakub Jelinek <jakub@redhat.com>
63 * semantics.c (stmt_expr_value_expr): Don't crash on empty
66 2008-06-08 Paolo Carlini <paolo.carlini@oracle.com>
69 * pt.c (maybe_process_partial_specialization): Check the tree
70 returned by push_template_decl for error_mark_node.
71 * parser.c (cp_parser_class_head): Likewise, check the tree
72 returned by the latter.
74 2008-06-07 Paolo Carlini <paolo.carlini@oracle.com>
77 * decl.c (grokdeclarator): In case of wrong return type return
78 immediately error_mark_node.
80 2008-06-06 Jakub Jelinek <jakub@redhat.com>
82 * cp-tree.h (cxx_omp_finish_clause, cxx_omp_create_clause_info,
83 dependent_omp_for_p, begin_omp_task, finish_omp_task,
84 finish_omp_taskwait): New prototypes.
85 (cxx_omp_clause_default_ctor): Add outer argument.
86 (finish_omp_for): Add new clauses argument.
87 * cp-gimplify.c (cxx_omp_finish_clause): New function.
88 (cxx_omp_predetermined_sharing): Moved from semantics.c, rewritten.
89 (cxx_omp_clause_default_ctor): Add outer argument.
90 (cp_genericize_r): Walk OMP_CLAUSE_LASTPRIVATE_STMT.
91 * cp-objcp-common.h (LANG_HOOKS_OMP_FINISH_CLAUSE): Define.
92 * parser.c (cp_parser_omp_for_loop): Parse collapsed for loops.
93 Add par_clauses argument. If decl is present in parallel's
94 lastprivate clause, change that clause to shared and add
95 a lastprivate clause for decl to OMP_FOR_CLAUSES.
96 Fix wording of error messages. Adjust finish_omp_for caller.
97 Add clauses argument. Parse loops with random access iterators.
98 (cp_parser_omp_clause_collapse, cp_parser_omp_clause_untied): New
100 (cp_parser_omp_for, cp_parser_omp_parallel): Adjust
101 cp_parser_omp_for_loop callers.
102 (cp_parser_omp_for_cond, cp_parser_omp_for_incr): New helper
104 (cp_parser_omp_clause_name): Handle collapse and untied
106 (cp_parser_omp_clause_schedule): Handle auto schedule.
107 (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_COLLAPSE
108 and PRAGMA_OMP_CLAUSE_UNTIED.
109 (OMP_FOR_CLAUSE_MASK): Add PRAGMA_OMP_CLAUSE_COLLAPSE.
110 (OMP_TASK_CLAUSE_MASK): Define.
111 (cp_parser_omp_task, cp_parser_omp_taskwait): New functions.
112 (cp_parser_omp_construct): Handle PRAGMA_OMP_TASK.
113 (cp_parser_pragma): Handle PRAGMA_OMP_TASK and
115 * pt.c (tsubst_omp_clauses): Handle OMP_CLAUSE_COLLAPSE and
116 OMP_CLAUSE_UNTIED. Handle OMP_CLAUSE_LASTPRIVATE_STMT.
117 (tsubst_omp_for_iterator): New function.
118 (dependent_omp_for_p): New function.
119 (tsubst_expr) <case OMP_FOR>: Use it. Handle collapsed OMP_FOR
120 loops. Adjust finish_omp_for caller. Handle loops with random
121 access iterators. Adjust for OMP_FOR_{INIT,COND,INCR} changes.
122 (tsubst_expr): Handle OMP_TASK.
123 * semantics.c (cxx_omp_create_clause_info): New function.
124 (finish_omp_clauses): Call it. Handle OMP_CLAUSE_UNTIED and
126 (cxx_omp_predetermined_sharing): Removed.
127 * semantics.c (finish_omp_for): Allow pointer iterators. Use
128 handle_omp_for_class_iterator and dependent_omp_for_p. Handle
129 collapsed for loops. Adjust c_finish_omp_for caller. Add new
130 clauses argument. Fix check for type dependent cond or incr.
131 Set OMP_FOR_CLAUSES to clauses. Use cp_convert instead of
132 fold_convert to convert incr amount to difference_type. Only
133 fold if not in template. If decl is mentioned in lastprivate
134 clause, set OMP_CLAUSE_LASTPRIVATE_STMT. Handle loops with random
135 access iterators. Adjust for OMP_FOR_{INIT,COND,INCR}
137 (finish_omp_threadprivate): Allow static class members of the
139 (handle_omp_for_class_iterator, begin_omp_task, finish_omp_task,
140 finish_omp_taskwait): New functions.
142 * parser.c (cp_parser_binary_expression): Add prec argument.
143 (cp_parser_assignment_expression): Adjust caller.
144 * cp-tree.h (outer_curly_brace_block): New prototype.
145 * decl.c (outer_curly_brace_block): No longer static.
147 2008-06-02 Paolo Carlini <paolo.carlini@oracle.com>
150 * pt.c (push_template_decl_real): Consistently return error_mark_node
153 2008-06-02 Tomas Bily <tbily@suse.cz>
155 * typeck.c (is_bitfield_expr_with_lowered_type): Use CASE_CONVERT.
156 (cp_build_unary_op): Likewise.
157 (cp_build_indirect_ref): Use CONVERT_EXPR_P.
158 (maybe_warn_about_returning_address_of_local): Likewise.
160 2008-05-29 Paolo Carlini <paolo.carlini@oracle.com>
163 * pt.c (tsubst_initializer_list): Consistently check the tree
164 returned by tsubst_pack_expansion for error_mark_node.
166 2008-05-27 Michael Matz <matz@suse.de>
169 * call.c (build_new_op): Make warning conditional on
172 2008-05-27 Alexandre Oliva <aoliva@redhat.com>
175 * call.c (convert_like_real): Convert bitfield to desired type
176 before creating temporary.
178 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
180 * Makefile.in: Adjusted dependencies on c-incpath.o.
182 2008-05-23 Jakub Jelinek <jakub@redhat.com>
185 * cp-gimplify.c (cxx_omp_clause_apply_fn): Call
186 fold_build_cleanup_point_expr on build_call_a results.
189 * semantics.c (omp_clause_info_fndecl): New function.
190 (finish_omp_clauses): Use it.
192 2008-05-21 Jakub Jelinek <jakub@redhat.com>
195 * cp-tree.h (check_array_initializer): New prototype.
196 * decl.c (check_array_initializer): New function.
197 (check_initializer): Call it.
198 * semantics.c (finish_compound_literal): Call it for ARRAY_TYPEs.
200 2008-05-21 Tom Tromey <tromey@redhat.com>
202 * mangle.c (save_partially_mangled_name): Remove.
203 (restore_partially_mangled_name): Likewise.
204 (write_encoding): Update.
205 (write_unqualified_name): Likewise.
206 (start_mangling): Always use name_obstack. Remove 'ident_p'
208 (get_identifier_nocopy): Remove.
209 (finish_mangling_internal): Rename from finish_mangling.
210 (finish_mangling): New function.
211 (finish_mangling_get_identifier): Likewise.
212 (partially_mangled_name, partially_mangled_name_len): Remove.
213 (mangle_decl_string): Change return type. Update.
214 (mangle_decl, mangle_type_string, mangle_special_for_type,
215 mangle_ctor_vtbl_for_type, mangle_thunk, mangle_guard_variable,
216 mangle_ref_init_variable): Update.
218 2008-05-12 Paolo Carlini <paolo.carlini@oracle.com>
221 * semantics.c (begin_class_definition): Extend checks on the first
224 2008-05-12 Tomas Bily <tbily@suse.cz>
226 * typeck2.c (digest_init): Use CONVERT_EXPR_P.
227 * call.c (build_over_call): Likewise.
228 * error.c (dump_expr): Use CASE_CONVERT.
229 * class.c (fixed_type_or_null): Likewise.
231 2008-05-11 Volker Reichelt <v.reichelt@netcologne.de>
233 * parser.c (cp_parser_omp_clause_reduction): Add missing "expected"
235 (cp_parser_omp_clause_schedule): Remove superfluous "expected"
238 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
240 * decl.c (duplicate_decls): Merge in DECL_PURE_P, TREE_READONLY,
241 DECL_LOOPING_CONST_OR_PURE_P attributes.
242 * rtti.c (build_dynamic_cast_1): Rename DECL_IS_PURE to
245 2008-05-02 Simon Baldwin <simonb@google.com>
248 * typeck.c (build_array_ref): Remove warn_array_subscript_range.
250 2008-05-01 Simon Baldwin <simonb@google.com>
252 * typeck.c (build_array_ref): Call warn_array_subscript_range.
254 2008-04-30 Jakub Jelinek <jakub@redhat.com>
257 * pt.c (more_specialized_fn): Stop the loop even if there are no
258 arguments before ellipsis.
260 2008-04-29 Jakub Jelinek <jakub@redhat.com>
263 * parser.c (cp_parser_lookup_name): Look through single function
267 * typeck.c (cp_build_modify_expr) <case PREINCREMENT_EXPR>: Don't build
268 COMPOUND_EXPR if the second argument would be error_mark_node.
270 2008-04-28 Jason Merrill <jason@redhat.com>
271 Liu Guanwei <liu_gw@163.com>
274 * parser.c (cp_parser_parameter_declaration): Handle < ambiguity
275 in default arguments.
277 2008-04-25 Jan Hubicka <jh@suse.cz>
279 * typeck.c (check_return_expr): Update.
280 * decl.c (start_preparsed_function): Update.
281 * method.c (use_thunk): Update.
283 2008-04-24 Jakub Jelinek <jakub@redhat.com>
286 * cp-tree.h (cp_reconstruct_complex_type): New prototype.
287 * cp-objcp-common.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
288 * decl2.c (is_late_template_attribute): Only make vector_size
289 late tmpl attribute if argument is type or value dependent.
290 (cp_reconstruct_complex_type): New function.
292 2008-04-24 Richard Guenther <rguenther@suse.de>
294 * typeck.c (cp_build_function_call): Call
295 check_builtin_function_arguments.
297 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
299 * typeck.c (get_member_function_from_ptrfunc): Don't set TREE_INVARIANT.
300 (build_ptrmemfunc1): Don't set TREE_INVARIANT.
301 * init.c (build_zero_init): Don't set TREE_INVARIANT.
302 * class.c (build_base_path): Don't set TREE_INVARIANT.
303 (build_vtbl_ref_1): Don't set TREE_INVARIANT.
304 (build_vtbl_initializer): Don't set TREE_INVARIANT.
305 * decl.c (build_enumerator): Don't set TREE_INVARIANT.
306 * rtti.c (tinfo_base_init): Don't set TREE_INVARIANT.
307 (generic_initializer): Don't set TREE_INVARIANT.
308 (ptr_initializer): Don't set TREE_INVARIANT.
309 (ptm_initializer): Don't set TREE_INVARIANT.
310 (class_initializer): Don't set TREE_INVARIANT.
311 * typeck2.c (process_init_constructor): Don't set TREE_INVARIANT.
312 * pt.c (push_inline_template_parms_recursive): Don't set TREE_INVARIANT.
313 (build_template_parm_index): Don't set TREE_INVARIANT.
314 (reduce_template_parm_level): Don't set TREE_INVARIANT.
315 (process_template_parm): Don't set TREE_INVARIANT.
317 2008-04-22 Jason Merrill <jason@redhat.com>
320 * semantics.c (finish_decltype_type): Check DECL_BIT_FIELD_TYPE
321 to see if DECL_BIT_FIELD_TYPE should be used, not some other flag.
322 * typeck.c (is_bitfield_expr_with_lowered_type): Likewise.
324 2008-04-22 Jakub Jelinek <jakub@redhat.com>
327 * semantics.c (finish_stmt_expr): Call pop_stmt_list even if the stmt
328 expression is errorneous.
330 2008-04-21 Jason Merrill <jason@redhat.com>
333 * tree.c (cp_tree_equal): Handle FIXED_CST.
336 * pt.c (template_template_parm_bindings_ok_p): Set
337 processing_template_decl while in this function.
339 2008-04-18 Kris Van Hees <kris.van.hees@oracle.com>
341 * cvt.c (type_promotes_to): Support char16_t and char32_t.
342 * decl.c (grokdeclarator): Disallow signed/unsigned/short/long on
343 char16_t and char32_t.
344 * lex.c (reswords): Add char16_t and char32_t (for c++0x).
345 * mangle.c (write_builtin_type): Mangle char16_t/char32_t as vendor
346 extended builtin type "u8char{16,32}_t".
347 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Support
349 (cp_lexer_print_token): Support CPP_STRING{16,32}.
350 (cp_parser_is_string_literal): Idem.
351 (cp_parser_string_literal): Idem.
352 (cp_parser_primary_expression): Support CPP_CHAR{16,32} and
354 (cp_parser_simple_type_specifier): Support RID_CHAR{16,32}.
355 * tree.c (char_type_p): Support char16_t and char32_t as char types.
356 * typeck.c (string_conv_p): Support char16_t and char32_t.
358 2008-04-17 Jason Merrill <jason@redhat.com>
361 * call.c (build_user_type_conversion_1): Represent second step of
362 copy-init with an rvalue conversion.
363 (convert_like_real) [ck_user]: Don't implicitly add it here.
365 2008-04-15 Jakub Jelinek <jakub@redhat.com>
368 * decl.c (layout_var_decl): If extern or static var has variable
369 size, set TREE_TYPE (decl) to error_mark_node.
371 2008-04-16 Danny Smith <dannysmith@users.sourceforge.net>
374 * optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flag
377 2008-04-09 Jason Merrill <jason@redhat.com>
380 * semantics.c (finish_compound_literal): Return a TARGET_EXPR,
381 not a pushed variable.
383 2008-04-09 Volker Reichelt <v.reichelt@netcologne.de>
385 * call.c (build_op_delete_call): Fix quotation in warning message.
386 * decl.c (grokdeclarator): Quote keyword in error message.
387 * pt.c (check_for_bare_parameter_packs): Fix quotation in error
390 * parser.c (cp_parser_check_type_definition): Print error string
391 directly rather than using "%s".
392 (cp_parser_postfix_expression): Fix quotation.
393 (cp_parser_decltype): Likewise.
394 (cp_parser_sizeof_operand): Fix quotation. Simplify.
396 * parser.c (cp_parser_non_integral_constant_expression): Build error
397 message with CONCAT rather than using "%s".
398 (cp_parser_primary_expression): Fix quotation.
399 (cp_parser_postfix_expression): Likewise.
400 (cp_parser_postfix_dot_deref_expression): Likewise.
401 (cp_parser_unary_expression): Likewise.
402 (cp_parser_new_expression): Likewise.
403 (cp_parser_delete_expression): Likewise.
405 * parser.c (cp_parser_asm_specification_opt): Print CPP_CLOSE_PAREN
406 as `)', not as `('. Fix quotation.
407 (cp_parser_consume_semicolon_at_end_of_statement): Fix quotation.
408 (cp_parser_primary_expression): Likewise.
409 (cp_parser_nested_name_specifier_opt): Likewise.
410 (cp_parser_postfix_expression): Likewise.
411 (cp_parser_postfix_open_square_expression): Likewise.
412 (cp_parser_parenthesized_expression_list): Likewise.
413 (cp_parser_pseudo_destructor_name): Likewise.
414 (cp_parser_new_expression): Likewise.
415 (cp_parser_direct_new_declarator): Likewise.
416 (cp_parser_delete_expression): Likewise.
417 (cp_parser_cast_expression): Likewise.
418 (cp_parser_question_colon_clause): Likewise.
419 (cp_parser_builtin_offsetof): Likewise.
420 (cp_parser_trait_expr): Likewise.
421 (cp_parser_label_for_labeled_statement): Likewise.
422 (cp_parser_compound_statement): Likewise.
423 (cp_parser_selection_statement): Likewise.
424 (cp_parser_condition): Likewise.
425 (cp_parser_iteration_statement): Likewise.
426 (cp_parser_already_scoped_statement): Likewise.
427 (cp_parser_simple_declaration): Likewise.
428 (cp_parser_linkage_specification): Likewise.
429 (cp_parser_static_assert): Likewise.
430 (cp_parser_decltype): Likewise.
431 (cp_parser_conversion_function_id): Likewise.
432 (cp_parser_operator_function_id): Likewise.
433 (cp_parser_operator): Likewise.
434 (cp_parser_type_parameter): Likewise.
435 (cp_parser_template_id): Likewise.
436 (cp_parser_explicit_instantiation): Likewise.
437 (cp_parser_explicit_specialization): Likewise.
438 (cp_parser_enum_specifier): Likewise.
439 (cp_parser_namespace_definition): Likewise.
440 (cp_parser_namespace_alias_definition): Likewise.
441 (cp_parser_using_declaration): Likewise.
442 (cp_parser_using_directive): Likewise.
443 (cp_parser_asm_definition): Likewise.
444 (cp_parser_direct_declarator): Likewise.
445 (cp_parser_ptr_operator): Likewise.
446 (cp_parser_parameter_declaration_clause): Likewise.
447 (cp_parser_initializer_clause): Likewise.
448 (cp_parser_class_specifier): Likewise.
449 (cp_parser_member_specification_opt): Likewise.
450 (cp_parser_member_declaration): Likewise.
451 (cp_parser_pure_specifier): Likewise.
452 (cp_parser_constant_initializer): Likewise.
453 (cp_parser_base_clause): Likewise.
454 (cp_parser_exception_specification_opt): Likewise.
455 (cp_parser_try_block): Likewise.
456 (cp_parser_function_try_block): Likewise.
457 (cp_parser_handler): Likewise.
458 (cp_parser_throw_expression): Likewise.
459 (cp_parser_asm_operand_list): Likewise.
460 (cp_parser_attributes_opt): Likewise.
461 (cp_parser_label_declaration): Likewise.
462 (cp_parser_constructor_declarator_p): Likewise.
463 (cp_parser_template_declaration_after_export): Likewise.
464 (cp_parser_single_declaration): Likewise.
465 (cp_parser_objc_message_expression): Likewise.
466 (cp_parser_objc_message_args): Likewise.
467 (cp_parser_objc_encode_expression): Likewise.
468 (cp_parser_objc_defs_expression): Likewise.
469 (cp_parser_objc_protocol_expression): Likewise.
470 (cp_parser_objc_selector_expression): Likewise.
471 (cp_parser_objc_protocol_refs_opt): Likewise.
472 (cp_parser_objc_typename): Likewise.
473 (cp_parser_objc_method_keyword_params): Likewise.
474 (cp_parser_objc_superclass_or_category): Likewise.
475 (cp_parser_objc_try_catch_finally_statement): Likewise.
476 (cp_parser_objc_synchronized_statement): Likewise.
477 (cp_parser_objc_throw_statement): Likewise.
478 (cp_parser_omp_var_list_no_open): Likewise.
479 (cp_parser_omp_clause_default): Likewise.
480 (cp_parser_omp_clause_if): Likewise.
481 (cp_parser_omp_clause_num_threads): Likewise.
482 (cp_parser_omp_clause_reduction): Likewise.
483 (cp_parser_omp_clause_schedule): Likewise.
484 (cp_parser_omp_critical): Likewise.
485 (cp_parser_omp_for_loop): Likewise.
486 (cp_parser_omp_sections_scope): Likewise.
488 * parser.c (cp_parser_template_parameter_list): Simplify.
490 2008-04-07 James E. Wilson <wilson@tuliptree.org>
492 * pt.c (tsubst_copy, case SIZEOF_EXPR): Initialize len.
494 2008-04-07 Jason Merrill <jason@redhat.com>
497 * class.c (type_has_user_nondefault_constructor): A template
498 counts as a nondefault constructor.
500 2008-04-04 Paolo Bonzini <bonzini@gnu.org>
502 * decl.c (cxx_push_function_context): Delete.
503 (cxx_pop_function_context): Delete.
504 (start_preparsed_function): Merge cxx_push_function_context (!f->decl
506 * cp-objcp-common.h (LANG_HOOKS_FUNCTION_INIT,
507 LANG_HOOKS_FUNCTION_FINAL): Delete.
508 (LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P): Rename to
509 LANG_HOOKS_MISSING_NORETURN_OK_P.
510 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context):
512 * semantics.c (current_stmt_tree): Fix comment.
514 2008-04-03 Jakub Jelinek <jakub@redhat.com>
517 * semantics.c (finish_offsetof): Undo effect of convert_from_reference
518 before calling fold_offsetof.
520 2008-04-03 Tom Tromey <tromey@redhat.com>
522 * Make-lang.in (c++_OBJS): New variable.
524 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
526 * optimize.c (clone_body): New, from tree-inline.c.
528 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
530 * method.c (synthesize_method): Use {push,pop}_function_context.
531 * name-lookup.c (push_to_top_level): Likewise.
532 * parser.c (cp_parser_late_parsing_for_member): Likewise.
534 2008-03-30 Volker Reichelt <v.reichelt@netcologne.de>
537 * parser.c (cp_parser_decl_specifier_seq): Add location to error
540 2008-03-27 Tom Tromey <tromey@redhat.com>
542 * Make-lang.in: Revert automatic dependency patch.
544 2008-03-27 Douglas Gregor <doug.gregor@gmail.com>
547 * typeck.c (build_x_compound_expr): Use cp_build_compound_expr.
548 (build_compound_expr): New, for compatibility with C
550 (cp_build_compound_expr): Renamed from build_compound_expr.
551 (build_c_cast): New, for compatibility with C build_c_cast.
552 (cp_build_c_cast): Renamed from build_c_cast.
553 * init.c (build_vec_delete_1): Fix calls to build_compound_expr.
554 * decl.c (cxx_maybe_build_cleanup): Ditto.
555 * cp-tree.h (build_compound_expr): Add C-compatibile prototype.
556 (cp_build_compound_expr): Renamed from build_compound_expr.
557 (build_c_cast): Add C-compatible prototype.
558 (cp_build_c_cast): Renamed from build_c_cast.
559 * typeck2.c (build_functional_cast): Use cp_build_c_cast.
560 * parser.c (cp_parser_cast_expression): Fix call to build_c_cast.
562 2008-03-27 Douglas Gregor <doug.gregor@gmail.com>
564 * pt.c (tsubst_copy) <case SIZEOF_EXPR>: Cope with
565 tsubst_pack_expansion returning a pack expansion, or a TREE_VEC
566 ending in a pack expansion, both of which can occur when
567 substituting into a nested template.
568 (tsubst_copy_and_build) <case SIZEOF_EXPR>: When we're
569 instantiating the sizeof...(X) form, make tsubst_copy do the work.
570 * parser.c (cp_parser_template_parameter): Deal with unnamed
571 non-type template parameter packs identified by pack expansions in
574 2008-03-26 Jakub Jelinek <jakub@redhat.com>
577 * pt.c (apply_late_template_attributes): Don't call tsubst on
578 first attribute argument if it is IDENTIFIER_NODE.
581 * error.c (dump_expr): Pass {,UN}ORDERED_EXPR, UN{LT,LE,GT,GE,EQ}_EXPR
582 and LTGT_EXPR to pp_expression.
584 2008-03-26 Douglas Gregor <doug.gregor@gmail.com>
586 * pt.c (coerce_template_template_parm): Moved the body of the loop
587 of coerce_template_template_parms here, to make iteration over a
588 template argument pack simpler.
589 Also, allow matching of a template parameter pack in the template
590 template parameter to a template parameter in the template
592 (coerce_template_template_parms): Deal with variadic template
593 template parameters. Use coerce_template_template_parm.
594 (unify): Make sure we coerce the template template argument's
595 template arguments to the template template parameter's template
596 parameters, not the other way around.
598 2008-03-25 Tom Tromey <tromey@redhat.com>
600 * Make-lang.in: Remove .o targets.
601 (cp/g++spec.o): Moved to cp/. Reduce to variable setting.
603 (c++_OBJS): New variable.
604 (CXX_TREE_H, CXX_PRETTY_PRINT_H): Remove.
606 2008-03-25 Douglas Gregor <doug.gregor@gmail.com>
608 * typeck.c (composite_pointer_type_r): Add SFINAE support.
609 (composite_pointer_type): Ditto.
610 (common_type): Fix call to composite_pointer_type.
611 (cxx_sizeof_nowarn): New; used to be a macro.
612 (cxx_sizeof_expr): Add SFINAE support.
613 (cxx_alignof_expr): Ditto.
614 (decay_conversion): Fix calls for SFINAE support.
615 (rationalize_conditional_expr): Add SFINAE support.
616 (build_class_member_access_expr): Ditto.
617 (finish_class_member_access_expr): Ditto.
618 (build_x_indirect_ref): Ditto.
619 (build_indirect_ref): Original version renamed to
620 cp_build_indirect_ref; new version provides a bridge from
622 (cp_build_indirect_ref): Was build_indirect_ref; added SFINAE
624 (get_member_function_from_ptrfunc): Fix calls for SFINAE support.
625 (build_function_call): Original version renamed to
626 cp_build_function_call; new version provides a bridge from
628 (cp_build_function_call): Was build_function_call; added SFINAE
630 (convert_arguments): Add SFINAE support.
631 (build_x_binary_op): Ditto.
632 (build_binary_op): Original version renamed to cp_build_binary_op;
633 new version provides a bridge from c-common.
634 (cp_build_binary_op): Was build_binary_op; added SFINAE support.
635 (pointer_diff): Fix calls for SFINAE.
636 (build_x_unary_op): Add SFINAE support.
637 (condition_conversion): Fix calls for SFINAE.
638 (build_unary_op): Original version renamed to cp_build_unary_op;
639 new version provides a bridge from c-common.
640 (cp_build_unary_op): Was build_unary_op; added SFINAE support.
641 (unary_complex_lvalue): Fix calls for SFINAE.
642 (build_x_conditional_expr): Add SFINAE support.
643 (build_x_compound_expr_from_list): Fix calls for SFINAE.
644 (build_x_compound_expr): Add SFINAE support.
645 (convert_ptrmem): Fix calls for SFINAE.
646 (build_static_cast_1): Add SFINAE support.
647 (build_static_cast): Ditto.
648 (build_reinterpret_cast_1): Ditto.
649 (build_reinterpret_cast): Ditto.
650 (build_const_cast_1): Ditto.
651 (build_const_cast): Ditto.
652 (build_c_cast): Ditto.
653 (build_modify_expr): Original version renamed to
654 cp_build_modify_expr; new version provides a bridge from c-common.
655 (cp_build_modify_expr): Was build_modify_expr; added SFINAE
657 (build_x_modify_expr): Add SFINAE support.
658 (build_ptrmemfunc): Fix calls for SFINAE.
659 (convert_for_assignment): Add SFINAE support.
660 (convert_for_initialization): Ditto.
661 (check_return_expr): Fix calls for SFINAE.
662 (lvalue_or_else): Add SFINAE support.
663 * init.c (perform_member_init): Fix calls for SFINAE.
664 (emit_mem_initializers): Ditto.
665 (expand_virtual_init): Ditto.
666 (expand_cleanup_for_base): Ditto.
667 (build_aggr_init): Add SFINAE support.
668 (expand_default_init): Ditto.
669 (expand_aggr_init_1): Fix calls for SFINAE.
670 (build_offset_ref): Ditto.
671 (build_new_1): Add SFINAE support.
673 (build_vec_delete_1): Fix calls for SFINAE.
674 (get_temp_regvar): Ditto.
675 (build_vec_init): Add SFINAE support.
676 (build_dtor_call): Fix calls for SFINAE.
677 (build_delete): Ditto.
678 (push_base_cleanups): Ditto.
679 (build_vec_delete_1): Ditto.
680 * class.c (build_base_path): Fix calls for SFINAE.
681 (build_simple_base_path): Ditto.
682 (convert_to_base_statically): Ditto.
683 (build_vfn_ref): Ditto.
684 (resolve_address_of_overloaded_function): Ditto.
685 * decl.c (check_initializer): Fix calls for SFINAE.
686 (register_dtor_fn): Ditto.
687 (compute_array_index_type): Ditto.
688 (finish_enum): Ditto.
689 (start_preparsed_function): Ditto.
690 (cxx_maybe_build_cleanup): Ditto.
691 * call.c (convert_like): Add COMPLAIN argument.
692 (convert_like_with_context): Ditto.
693 (build_this): Fix calls for SFINAE.
694 (build_user_type_conversion): Ditto.
695 (resolve_args): Ditto.
696 (build_new_function_call): Add SFINAE support.
697 (build_operator_new_call): Fix calls for SFINAE.
698 (build_object_call): Add SFINAE support.
699 (build_conditional_expr): Ditto.
700 (build_new_op): Ditto.
701 (build_op_delete_call): Fix calls for SFINAE.
703 (convert_like_real): Add SFINAE support.
704 (build_x_va_arg): Fix calls for SFINAE.
705 (convert_default_arg): Ditto.
706 (build_over_call): Add SFINAE support.
707 (build_java_interface_fn_ref): Fix calls for SFINAE.
708 (build_special_member_call): Add SFINAE support.
709 (build_new_method_call): Ditto.
710 (perform_implicit_conversion): Ditto.
711 (perform_direct_initialization_if_possible): Ditto.
712 (initialize_reference): Fix calls for SFINAE.
713 * method.c (do_build_assign_ref): Fix calls for SFINAE.
714 * rtti.c (build_headof): Fix calls for SFINAE.
715 (get_tinfo_decl_dynamic): Ditto.
717 (build_dynamic_cast_1): Add SFINAE support.
718 (build_dynamic_cast): Ditto.
719 (tinfo_base_init): Fix calls for SFINAE.
720 * except.c (do_get_exception_ptr): Fix calls for SFINAE.
721 (do_end_catch): Ditto.
722 (initialize_handler_parm): Ditto.
723 (expand_start_catch_block): Ditto.
724 (do_allocate_exception): Ditto.
725 (do_free_exception): Ditto.
726 (build_throw): Ditto.
727 * cvt.c (build_up_reference): Fix calls for SFINAE.
728 (convert_to_reference): Ditto.
729 (ocp_convert): Ditto.
730 (convert_to_void): Add SFINAE support.
731 * tree.c (build_dummy_object): Fix calls for SFINAE.
732 (stabilize_expr): Ditto.
733 * cp-tree.h (build_conditional_expr): Add tsubst_flags_t
735 (build_new_method_call): Ditto.
736 (build_special_member_call): Ditto.
737 (build_new_op): Ditto.
738 (perform_implicit_conversion): Ditto.
739 (perform_direct_initialization_if_possible): Ditto.
740 (convert_to_void): Ditto.
741 (build_aggr_init): Ditto.
743 (build_vec_init): Ditto.
744 (build_dynamic_cast): Ditto.
745 (finish_call_expr): Ditto
746 (cxx_sizeof_or_alignof_expr): Add COMPLAIN parameter.
747 (cxx_sizeof_nowarn): Remove macro; add function declaration.
748 (build_class_member_access_expr): Add tsubst_flags_t parameter.
749 (finish_class_member_access_expr): Ditto.
750 (build_x_indirect_ref): Ditto.
751 (cp_build_indirect_ref): New.
752 (cp_build_function_call): Add tsubst_flags_t parameter.
753 (build_x_unary_op): Ditto.
754 (cp_build_unary_op): New.
755 (build_x_conditional_expr): Add tsubst_flags_t parameter.
756 (build_x_compound_expr): Ditto.
757 (build_compound_expr): Ditto.
758 (build_static_cast): Ditto.
759 (build_reinterpret_cast): Ditto.
760 (build_const_cast): Ditto.
761 (build_c_cast): Ditto.
762 (build_x_modify_expr): Ditto.
763 (cp_build_modify_expr): New.
764 (convert_for_initialization): Add tsubst_flags_t parameter.
765 (cp_build_binary_op): Remove macro; add function declaration.
766 (invalid_nonstatic_memfn_p): Add tsubst_flags_t parameter.
767 (lvalue_or_else): Ditto.
768 (build_functional_cast): Ditto.
769 * typeck2.c (digest_init): Fix calls for SFINAE.
770 (process_init_constructor_array): Ditto.
771 (process_init_constructor_record): Ditto.
772 (build_x_arrow): Ditto.
773 (build_m_component_ref): Ditto.
774 (build_functional_cast): Add SFINAE support.
775 * pt.c (tsubst_copy_and_build): Add (more) SFINAE support.
776 * semantics.c (simplify_loop_decl_cond): Fix calls for SFINAE.
777 (finish_expr_stmt): Ditto.
778 (finish_for_expr): Ditto.
779 (finish_asm_stmt): Ditto.
780 (finish_non_static_data_member): Ditto.
781 (finish_qualified_id_expr): Ditto.
782 (finish_call_expr): Add SFINAE support.
783 (finish_increment_expr): Fix calls for SFINAE.
784 (finish_unary_op_expr): Ditto.
785 (simplify_aggr_init_expr): Ditto.
786 (finish_omp_clauses): Ditto.
787 (finish_omp_for): Ditto.
788 (finish_omp_barrier): Ditto.
789 (finish_omo_flush): Ditto.
790 * decl2.c (grok_array_decl): Fix calls or SFINAE.
791 (build_anon_union_vars): Ditto.
792 (get_guard_cond): Ditto.
794 (one_static_initialization_or_destruction): Ditto.
795 (do_static_initialization_or_destruction): Ditto.
796 (generate_ctor_or_dtor_function): Ditto.
797 (build_offset_ref_call_from_tree): Ditto.
798 * parser.c (cp_parser_postfix_expression): Fix calls for SFINAE.
799 (cp_parser_postfix_dot_deref_expression): Ditto.
800 (cp_parser_unary_expression): Ditto.
801 (cp_parser_new_expression): Ditto.
802 (cp_parser_cast_expression): Ditto.
803 (cp_parser_binary_expression): Ditto.
804 (cp_parser_question_colon_clause): Ditto.
805 (cp_parser_assignment_expression): Ditto.
806 (cp_parser_expression): Ditto.
807 (cp_parser_builtin_offsetof): Ditto.
808 (cp_parser_template_argument): Ditto.
809 (cp_parser_functional_cast): Ditto.
811 2008-03-24 Tom Tromey <tromey@redhat.com>
813 * lex.c (handle_pragma_interface): Don't copy the filename.
814 (handle_pragma_implementation): Copy filename using xstrdup.
816 2008-03-21 Paolo Carlini <pcarlini@suse.de>
818 * cp-tree.h (IS_AGGR_TYPE): Rename to MAYBE_CLASS_TYPE_P.
819 (SET_IS_AGGR_TYPE): Rename to SET_CLASS_TYPE_P.
820 (IS_AGGR_TYPE_CODE): Rename to RECORD_OR_UNION_CODE_P.
821 (PROMOTES_TO_AGGR_TYPE): Remove.
822 (CLASS_TYPE_P, TYPE_NON_AGGREGATE_CLASS): Adjust.
823 * typeck.c (unary_complex_lvalue, build_modify_expr,
824 convert_for_initialization): Adjust.
825 * init.c (is_aggr_type): Remove.
826 (is_class_type): Add.
827 (build_offset_ref, build_new_1, build_vec_delete_1, build_vec_init,
828 build_delete): Adjust.
829 * lex.c (make_aggr_type): Remove.
830 (make_class_type): Add.
831 (cxx_make_type): Adjust.
832 * class.c (finish_struct_1, fixed_type_or_null, is_empty_class):
834 * decl.c (build_typename_type, make_typename_type,
835 make_unbound_class_template, cxx_init_decl_processing,
836 check_tag_decl, groktypename, start_decl_1, layout_var_decl,
837 check_initializer, cp_finish_decl, build_ptrmemfunc_type, grokparms,
838 grok_op_properties, xref_tag, check_function_type): Adjust.
839 * call.c (check_dtor_name, standard_conversion, implicit_conversion,
840 add_builtin_candidate, add_builtin_candidates,
841 build_user_type_conversion_1, convert_like_real, build_cxx_call,
842 is_subseq, compare_ics): Adjust.
843 * method.c (use_thunk): Adjust.
844 * rtti.c (build_dynamic_cast_1, create_pseudo_type_info,
845 create_tinfo_types): Adjust.
846 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
847 build_up_reference, convert_to_reference, convert_from_reference,
848 ocp_convert, build_expr_type_conversion): Adjust.
849 * tree.c (bind_template_template_parm, error_type): Adjust.
850 * dump.c (cp_dump_tree): Adjust.
851 * search.c (lookup_member): Adjust.
852 * friend.c (make_friend_class, do_friend): Adjust.
853 * typeck2.c (store_init_value, process_init_constructor_array,
854 process_init_constructor_record, build_x_arrow, build_m_component_ref,
855 build_functional_cast): Adjust.
856 * pt.c (finish_member_template_decl, process_template_parm,
857 lookup_template_class, tsubst_function_type, tsubst,
858 tsubst_copy_and_build, get_template_base, bt_instantiate_type_proc):
860 * semantics.c (begin_class_definition, finish_base_specifier,
861 finish_typeof, cxx_omp_predetermined_sharing, finish_decltype_type):
863 * name-lookup.c (constructor_name_p, push_overloaded_decl,
864 do_class_using_decl, lookup_qualified_name,
865 maybe_process_template_type_declaration): Adjust.
866 * decl2.c (grok_array_decl, check_member_template,
867 constrain_class_visibility): Adjust.
868 * parser.c (cp_parser_class_name): Adjust.
870 2008-03-18 Paolo Bonzini <bonzini@gnu.org>
872 * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
874 2008-03-17 Jason Merrill <jason@redhat.com>
877 * call.c (reference_binding): Check LOOKUP_NO_TEMP_BIND when binding
878 a temp directly to a reference as per DR391.
880 2008-03-12 Richard Guenther <rguenther@suse.de>
884 2008-02-04 Richard Guenther <rguenther@suse.de>
887 * decl.c (record_builtin_java_type): Make jboolean a
888 integer type again where its mode doesn't match that of bool.
890 2008-01-25 Richard Guenther <rguenther@suse.de>
893 * decl.c (record_builtin_java_type): Make __java_boolean
895 * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
896 after TYPE_MAIN_VARIANT check.
898 2008-03-10 Jakub Jelinek <jakub@redhat.com>
901 * semantics.c (finish_omp_clauses): Look through NOP_EXPR even
905 * semantics.c (finish_omp_clauses): Use %qD instead of %qE for
906 DECL_P in not a variable and appears more than once error messages.
908 2008-03-07 Paolo Bonzini <bonzini@gnu.org>
912 2008-02-06 Douglas Gregor <doug.gregor@gmail.com>
916 * typeck.c (structural_comptypes): Call cp_comptypes.
917 (comptypes): New; called from the C/C++ common bits to perform
919 (cp_comptypes): Renamed from comptypes, which is already used,
920 with a different signature, by the C++ front end.
921 (build_reinterpret_cast_1): Call cp_comptypes.
922 (ptr_reasonably_similar): Ditto.
923 * decl.c (decls_match): Ditto.
924 * cvt.c (convert_to_reference): Ditto.
925 * cp-tree.h (same_type_p): Ditto.
926 (same_or_base_type_p): Ditto.
927 (comptypes): Rename to cp_comptypes.
928 * pt.c (canonical_type_parameter): Call cp_comptypes.
930 2008-03-07 Paolo Bonzini <bonzini@gnu.org>
932 * cp-objcp-common.c (cxx_types_compatible_p): Remove obsolete
933 test for equivalence between pointer and references.
935 2008-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
938 * class.c (finish_struct_anon): Use permerror instead of pedwarn.
939 (check_field_decls): Likewise.
940 (note_name_declared_in_class): Likewise.
941 * call.c (build_new_op): Likewise.
942 (convert_like_real): Likewise.
943 (build_over_call): Likewise.
944 * lex.c (unqualified_fn_lookup_error): Likewise.
945 * parser.c (cp_parser_template_id): Likewise.
946 * cvt.c (warn_ref_binding): Likewise.
947 (convert_to_reference): Likewise.
948 (ocp_convert): Likewise.
949 (convert_to_void): Use error instead of pedwarn.
950 * error.c (cp_cpp_error): Use pedantic_warning_kind.
951 * decl.c (compute_array_index_type): Use constant_expression_error.
953 2008-03-01 Douglas Gregor <doug.gregor@gmail.com>
955 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Note
956 that auto is either a storage class or a simple type specifier,
957 depending on the dialect.
958 (cp_parser_decl_specifier_seq): Complain about `auto' as a storage
959 specifier in C++98 mode, error in C++0x mode (since we don't
960 support auto as a type specifier, yet).
961 (cp_parser_storage_class_specifier_opt): Don't treat `auto' as a
962 storage specifier in C++0x mode.
963 (cp_parser_simple_type_specifier): Parse `auto' as a
964 simple-type-specifier, but error because we don't support it yet.
966 2008-02-29 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
968 * parser.c (cp_parser_nonclass_name): New.
969 (cp_parser_pseudo_destructor_name): Use it instead of
971 (cp_parser_type_name): Move code to cp_parser_nonclass_name.
973 2008-02-29 Tom Tromey <tromey@redhat.com>
975 * parser.c (struct cp_token) <input_file_stack_index>: Remove.
976 (cp_lexer_get_preprocessor_token): Update.
977 (cp_lexer_set_source_position_from_token): Don't call
978 restore_input_file_stack.
979 * lex.c (cxx_init): Don't use push_srcloc or pop_srcloc.
981 2008-02-28 Richard Guenther <rguenther@suse.de>
984 2008-02-26 Richard Guenther <rguenther@suse.de>
986 * decl.c (duplicate_decls): Remove decl from global mapping
987 before ggc_freeing it.
989 2008-02-27 Jakub Jelinek <jakub@redhat.com>
992 * rtti.c: Include c-pragma.h.
993 (push_abi_namespace, pop_abi_namespace): New functions.
994 (build_dynamic_cast_1, tinfo_base_init, get_pseudo_ti_index,
995 create_tinfo_types, emit_support_tinfos): Use them.
996 * Make-lang.in (cp/rtti.o): Depend on $(C_PRAGMA_H).
998 2008-02-26 Jason Merrill <jason@redhat.com>
1001 * decl.c (grokdeclarator): Allow a typedef of an unnamed struct
1002 to name the struct for linkage purposes even if it has attributes.
1003 (start_decl): In that case, set ATTR_FLAG_TYPE_IN_PLACE.
1005 2008-02-26 Tom Tromey <tromey@redhat.com>
1007 * parser.c (eof_token): Remove old location code.
1008 (check_empty_body): Remove test of USE_MAPPED_LOCATION.
1009 * decl2.c (generate_ctor_or_dtor_function): Remove old location
1011 (cp_write_global_declarations): Likewise.
1012 * lex.c (cxx_init): Remove old location code.
1013 (handle_pragma_implementation): Remove test of
1014 USE_MAPPED_LOCATION.
1015 * pt.c (tsubst): Remove old location code.
1016 * error.c (cp_print_error_function): Remove test of
1017 USE_MAPPED_LOCATION.
1018 * decl.c (pop_label): Remove old location code.
1019 (finish_function): Likewise.
1021 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1024 * call.c (magic_varargs_p): Remove BUILT_IN_STDARG_START.
1026 2008-02-26 Richard Guenther <rguenther@suse.de>
1028 * decl.c (duplicate_decls): Remove decl from global mapping
1029 before ggc_freeing it.
1031 2008-02-26 Paolo Carlini <pcarlini@suse.de>
1034 * name-lookup.c (arg_assoc_type): Handle FIXED_POINT_TYPE.
1036 2008-02-26 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1038 * typeck.c (build_class_member_access_expr): Add appropriate
1039 OPT_W* parameter to warning.
1040 (build_reinterpret_cast_1): Likewise.
1041 * name-lookup.c (push_overloaded_decl): Likewise.
1043 2008-02-25 Paolo Carlini <pcarlini@suse.de>
1046 * error.c (dump_expr): Handle CONJ_EXPR.
1048 2008-02-25 Paolo Carlini <pcarlini@suse.de>
1051 * error.c (dump_type): Handle FIXED_POINT_TYPE.
1052 (dump_expr): Handle FIXED_CST.
1054 2008-02-24 Jason Merrill <jason@redhat.com>
1056 * parser.c (cp_parser_declaration): Handle "inline namespace".
1057 (cp_parser_namespace_definition): Likewise.
1060 * name-lookup.c (arg_assoc_namespace): Look down into inline
1063 2008-02-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1065 * typeck.c (check_for_casting_away_constness): Use 1 single
1066 argument, the type of cast, to decide what diagnostics generate.
1067 (build_static_cast_1): Remove unused code. Update call to
1068 check_for_casting_away_constness.
1069 (build_reinterpret_cast_1): Update call to
1070 check_for_casting_away_constness.
1071 (build_const_cast_1): Likewise.
1073 2008-02-24 Paolo Carlini <pcarlini@suse.de>
1075 * error.c (dump_expr): Don't deal directly with NEW_EXPR (and
1076 VEC_NEW_EXPR), forward to pp_expression.
1077 * cxx-pretty-print.c (pp_cxx_new_expression): Fix FIXME.
1079 2008-02-24 Danny Smith <dannysmith@users.sourceforge.net>
1082 * friend.c (do_friend): Call cplus_decl_attributes earlier.
1084 2008-02-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
1087 * decl.c (duplicate_decls): Merge DECL_DISREGARD_INLINE_LIMITS for
1088 template decls' function decl.
1090 2008-02-22 Paolo Carlini <pcarlini@suse.de>
1094 2008-02-14 Paolo Carlini <pcarlini@suse.de>
1097 * pt.c (determine_specialization): In case of function templates,
1098 when the type of DECL does not match FN there is no match.
1100 2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1103 * typeck.c (build_binary_op): Warn about floating point
1104 comparisons if FLOAT_TYPE_P, not only for REAL_TYPE.
1106 2008-02-19 Jason Merrill <jason@redhat.com>
1109 * pt.c (resolve_overloaded_unification): Set processing_template_decl
1110 while we look for possible bindings.
1112 2008-02-19 Jakub Jelinek <jakub@redhat.com>
1115 * cp-gimplify.c (cxx_omp_clause_apply_fn): Handle vararg copy ctors.
1119 * semantics.c (finish_omp_threadprivate): Do nothing for error_operand_p
1120 vars. Afterwards ensure v is VAR_DECL.
1123 * parser.c (cp_parser_omp_for_loop): If DECL has REFERENCE_TYPE, don't
1124 call cp_finish_decl.
1125 * semantics.c (finish_omp_for): Fail if DECL doesn't have integral type
1128 2008-02-15 Douglas Gregor <doug.gregor@gmail.com>
1133 * pt.c (finish_member_template_decl): If the type in a TYPE_DECL
1134 is error_mark_node, return an error early.
1135 (find_parameter_packs_r): Pass the pointer set along to recursive
1136 calls of cp_walk_subtrees; don't try to manage the pointer set
1138 (uses_parameter_packs): Pass the pointer set to cp_walk_tree.
1139 (make_pack_expansion): Ditto.
1140 (check_for_bare_parameter_packs): Ditto. Also, don't bother taking
1141 a second pass through the tree with find_parameter_packs_r; that
1142 second pass no longer does anything.
1143 (push_template_decl_real): If we have an erroneous declaration,
1144 set its type to error_mark_node before returning an error.
1146 2008-02-14 Douglas Gregor <doug.gregor@gmail.com>
1149 * pt.c (tsubst_initializer_list): Deal with the use of
1150 VOID_TYPE_NODE to indicate value-initialization of the bases.
1152 2008-02-14 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1153 Jason Merrill <jason@redhat.com>
1157 * class.c (type_has_user_nondefault_constructor): New fn.
1158 * cp-tree.h: Declare it.
1159 * init.c (emit_mem_initializers): Use it for -W warning about
1160 missing base initializer.
1162 2008-02-14 Paolo Carlini <pcarlini@suse.de>
1165 * pt.c (determine_specialization): In case of function templates,
1166 when the type of DECL does not match FN there is no match.
1168 2008-02-13 Jakub Jelinek <jakub@redhat.com>
1169 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1172 * parser.c (cp_parser_pseudo_destructor_name): If next tokens
1173 are not identifier :: ~, return before calling cp_parser_type_name.
1175 2008-02-13 Jason Merrill <jason@redhat.com>
1177 PR c++/34962, c++/34937, c++/34939
1178 * decl2.c (is_late_template_attribute): Always defer attributes
1179 vector_size and weak.
1182 * pt.c (value_dependent_expression_p): Look into DECL_INITIAL
1183 of enumerators, too.
1185 2008-02-12 Jason Merrill <jason@redhat.com>
1188 * call.c (convert_like_real): Pass LOOKUP_NO_CONVERSION to build_temp
1189 if we're doing conversions to call a user-defined conversion function.
1191 2008-02-12 Steven Bosscher <steven@gcc.gnu.org>
1194 * semantics.c (finish_qualified_id_expr): Avoid duplicate access
1197 2008-02-12 Jakub Jelinek <jakub@redhat.com>
1200 * init.c (build_new_1): Don't create placement_expr before
1201 constructing alloc_call. Verify that the pointer is passed by
1202 value to operator new.
1204 2008-02-11 Jason Merrill <jason@redhat.com>
1207 * pt.c (tsubst): Don't look up a template typedef in an explicit
1210 2008-02-11 Douglas Gregor <doug.gregor@gmail.com>
1213 * tree.c (cp_build_qualified_type_real): When building a
1214 cv-qualified array type, build it as a unique type with
1215 build_cplus_array_type_1 and then adopt the unqualified type's
1218 2008-02-11 Paolo Carlini <pcarlini@suse.de>
1221 * decl.c (groktypename): Check grokdeclarator return.
1223 2008-02-10 Jason Merrill <jason@redhat.com>
1226 * decl2.c (cp_write_global_declarations): Don't write out static
1227 data members with DECL_IN_AGGR_P set.
1229 2008-02-08 Jason Merrill <jason@redhat.com>
1232 * tree.c (build_target_expr_with_type): Handle void initializer.
1233 (bot_manip): Remap slot before recursing.
1235 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1238 * Make-lang.in (cc1plus-dummy, cc1plus): Add $(GMPLIBS).
1240 2008-02-06 Alexandre Oliva <aoliva@redhat.com>
1243 * tree.c: Include tree-flow.h.
1244 (build_target_expr): Check type compatibility.
1245 * Make-lang.in (cp/tree.o): Depend on $(TREE_FLOW_H).
1246 * call.c (convert_like_real): Convert bitfield to expected type.
1248 2008-02-06 Douglas Gregor <doug.gregor@gmail.com>
1252 * typeck.c (structural_comptypes): Call cp_comptypes.
1253 (comptypes): New; called from the C/C++ common bits to perform
1255 (cp_comptypes): Renamed from comptypes, which is already used,
1256 with a different signature, by the C++ front end.
1257 (build_reinterpret_cast_1): Call cp_comptypes.
1258 (ptr_reasonably_similar): Ditto.
1259 * decl.c (decls_match): Ditto.
1260 * cvt.c (convert_to_reference): Ditto.
1261 * cp-tree.h (same_type_p): Ditto.
1262 (same_or_base_type_p): Ditto.
1263 (comptypes): Rename to cp_comptypes.
1264 * pt.c (canonical_type_parameter): Call cp_comptypes.
1266 2008-02-05 Jakub Jelinek <jakub@redhat.com>
1269 * pt.c (tsubst) <case INTEGER_TYPE>: Don't issue error if max is
1270 value dependent expression.
1272 2008-02-05 Douglas Gregor <doug.gregor@gmail.com>
1275 * decl2.c (save_template_attributes): When we're modifying the
1276 TYPE_MAIN_VARIANT to add new attributes, be sure to also modify
1277 all of the other variants to add those same attributes. Otherwise,
1278 the main variant will be inconsistent with those other variants.
1280 2008-02-04 Richard Guenther <rguenther@suse.de>
1283 * decl.c (record_builtin_java_type): Make jboolean a
1284 integer type again where its mode doesn't match that of bool.
1286 2008-02-02 Jason Merrill <jason@redhat.com>
1287 Mark Mitchell <mark@codesourcery.com>
1290 * init.c (build_value_init_1): New function.
1291 (build_value_init): New function.
1292 * typeck2.c (build_functional_cast): Call it.
1293 * cp-gimplify.c (cp_gimplify_init_expr): Handle its output.
1295 * cp-tree.h (TYPE_HAS_USER_CONSTRUCTOR): Rename from
1296 TYPE_HAS_CONSTRUCTOR.
1297 * class.c (finish_struct_bits, maybe_warn_about_overly_private_class,
1298 add_implicitly_declared_members): Adjust.
1299 (check_field_decls): Adjust. Remove warnings about reference/const
1300 in class without constructor.
1301 (check_bases_and_members): Adjust. Give those warnings here instead.
1302 * decl.c (fixup_anonymous_aggr): Adjust.
1303 (check_initializer): Adjust, clarify logic slightly.
1304 (grok_special_member_properties): Adjust, only set if user-provided.
1305 * rtti.c (create_tinfo_types): Don't set.
1306 * cvt.c (ocp_convert): Remove exception for vtable_entry_type et al.
1307 Use same_type_ignoring_top_level_qualifiers_p.
1308 * pt.c (check_explicit_specialization): Adjust.
1309 (instantiate_class_template): Adjust.
1311 2008-01-31 Douglas Gregor <doug.gregor@gmail.com>
1312 Jakub Jelinek <jakub@redhat.com>
1316 * typeck.c (structural_comptypes): Handle comparisons of
1317 VOID_TYPE, BOOLEAN_TYPE, INTEGER_TYPE, FIXED_POINT_TYPE, and
1319 * mangle.c (write_builtin_type): Map down to the canonical type,
1320 which will be one of the predefined type nodes.
1322 2008-01-29 Michael Meissner <michael.meissner@amd.com>
1325 * cp-tree.h (struct full_lang_decl): Make tree_code bitfield 16
1326 bits to allow for expansion of the number of middle end tree
1329 2008-01-29 Douglas Gregor <doug.gregor@gmail.com>
1340 * typeck.c (check_return_expr): Tweak call to
1341 check_for_bare_parameter_packs.
1342 * class.c (add_method): Be careful with error_mark_nodes.
1343 * cp-tree.h (check_for_bare_parameter_packs): Remove "*" from
1345 * pt.c (struct find_parameter_pack_data): Remove
1347 (find_parameter_packs_r): Don't use SET_PACKS_TO_ERROR.
1348 (uses_parameter_packs): Don't set SET_PACKS_TO_ERROR.
1349 (make_pack_expansion): Ditto.
1350 (check_for_bare_parameter_packs): Parameter is now a tree, not a
1352 (process_template_parm): Tweak call to
1353 check_for_bare_parameter_packs.
1354 (push_template_decl_real): Tweak calls to
1355 check_for_bare_parameter_packs. If bare parameter packs are found
1356 in the list of exceptions, clear out that list after giving an
1358 * semantics.c (finish_cond): Tweak call to
1359 check_for_bare_parameter_packs.
1360 (finish_expr_stmt): Ditto.
1361 (finish_for_expr): Ditto.
1362 (finish_switch_cond): Ditto.
1363 (finish_mem_initializers): Ditto.
1364 (finish_member_declaration): Ditto.
1365 (finish_static_assert): Check for bare parameter packs in the
1367 * decl2.c (cplus_decl_attributes): Check for bare parameter packs in the
1368 attributes of a declaration.
1369 * parser.c (cp_parser_using_declaration): Tweak call to
1370 check_for_bare_parameter_packs.
1371 (cp_parser_base_clause): Ditto.
1373 2008-01-28 Jason Merrill <jason@redhat.com>
1376 * class.c (build_base_path): Fix !want_pointer case.
1378 2008-01-27 Jason Merrill <jason@redhat.com>
1381 * class.c (build_base_path): Fix previous change.
1383 2008-01-26 Jakub Jelinek <jakub@redhat.com>
1386 * error.c (dump_expr): Handle TRUTH_AND_EXPR, TRUTH_OR_EXPR
1389 2008-01-26 Richard Guenther <rguenther@suse.de>
1392 * typeck.c (build_binary_op): Remove code to shorten compares.
1394 2008-01-25 Richard Guenther <rguenther@suse.de>
1397 * decl.c (record_builtin_java_type): Make __java_boolean
1399 * typeck.c (structural_comptypes): Move TYPE_FOR_JAVA check
1400 after TYPE_MAIN_VARIANT check.
1402 2008-01-25 Jason Merrill <jason@redhat.com>
1405 * class.c (build_base_path): Don't mess with virtual access if
1407 * call.c (standard_conversion): Don't check whether source type
1410 * decl2.c (is_late_template_attribute): Don't defer attribute
1411 visibility just because the type is dependent.
1413 2008-01-25 Jason Merrill <jason@redhat.com>
1414 Mark Mitchell <mark@codesourcery.com>
1417 * call.c (standard_conversion): Allow conversion from integer/real
1419 (compare_ics): Such a conversion is worse than a normal arithmetic
1422 2008-01-25 Richard Guenther <rguenther@suse.de>
1425 * cp-lang.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define
1428 2008-01-24 Paolo Carlini <pcarlini@suse.de>
1431 * pt.c (push_template_decl_real): Return error_mark_node in case
1432 of template definition of non-template.
1434 2008-01-24 Jason Merrill <jason@redhat.com>
1437 * decl2.c (is_late_template_attribute): Defer any attribute with
1438 dependent args. Also defer type attributes if the type is dependent.
1440 2008-01-22 Jakub Jelinek <jakub@redhat.com>
1441 Alexandre Oliva <aoliva@redhat.com>
1444 * call.c (reference_binding): For bitfields use the declared bitfield
1446 (add_builtin_candidates): Likewise.
1447 * class.c (layout_class_type): For bitfields copy over the
1448 original type quals.
1450 2008-01-22 Jason Merrill <jason@redhat.com>
1453 * decl.c (groktypename): Also ignore attributes on dependent
1454 possibly-class types.
1457 * friend.c (do_friend): Check for prior declaration of a friend
1458 function of a local class.
1459 * name-lookup.c (lookup_name_innermost_nonclass_level):
1461 * name-lookup.h: Declare it.
1463 2008-01-22 Tom Tromey <tromey@redhat.com>
1466 * init.c (build_new_1): Only disallow Java aggregates.
1468 2008-01-22 Jakub Jelinek <jakub@redhat.com>
1471 * semantics.c (finish_omp_for): Don't call c_finish_omp_for
1472 if decl or init is error_mark_node.
1475 * error.c (dump_expr): Handle VECTOR_CST.
1477 2008-01-21 Jason Merrill <jason@redhat.com>
1480 * pt.c (tsubst_aggr_type): Make sure our context is complete.
1483 * pt.c (retrieve_local_specialization): Robustify.
1484 (tsubst_pack_expansion, tsubst_decl): Remove redundant checks.
1487 * pt.c (tsubst): Only call retrieve_local_specialization if the
1488 original typedef was in a function template.
1491 * decl.c (wrap_cleanups_r): Set TRY_CATCH_IS_CLEANUP.
1493 2008-01-21 Richard Guenther <rguenther@suse.de>
1496 * error.c (cp_print_error_function): Deal with recursive
1499 2008-01-20 Paolo Carlini <pcarlini@suse.de>
1502 * error.c (dump_expr): Deal with VIEW_CONVERT_EXPR.
1504 2008-01-20 Paolo Carlini <pcarlini@suse.de>
1508 * name-lookup.c (do_class_using_decl): Do not call constructor_name_p
1509 on non-IS_AGGR_TYPE scope.
1510 (constructor_name_p): Assert IS_AGGR_TYPE.
1512 2008-01-18 Ian Lance Taylor <iant@google.com>
1515 * decl.c (duplicate_decls): Copy DECL_IS_OPERATOR_NEW flag.
1516 (grok_op_properties): For NEW_EXPR and VEC_NEW_EXPR set
1517 DECL_IS_OPERATOR_NEW flag.
1519 2008-01-16 Richard Guenther <rguenther@suse.de>
1522 * typeck.c (is_bitfield_expr_with_lowered_type): Recurse
1523 for conversions to type variants.
1525 2008-01-15 Andreas Tobler <a.tobler@schweiz.org>
1527 * parser.c (cp_parser_template_parameter): Fix C90 issue with mixing
1528 declaration and code. Update copyright year.
1530 2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
1533 * friend.c (do_friend): Don't query TYPE_BEING_DEFINED unless we
1534 know we have a class type.
1536 2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
1539 * pt.c (coerce_template_parameter_pack): When substituting into
1540 the type of a non-type template parameter pack. use the
1541 deduced/substituted arguments.
1542 * parser.c (declarator_can_be_parameter_pack): A pointer-to-member
1543 can be a parameter pack with the ellipsis following it. When we
1544 have an erroneous declaration, allow it to be a parameter pack.
1545 (cp_parser_template_parameter): Complain about default
1546 arguments on non-type template parameter packs, and parse them
1547 using the new cp_parser_default_argument.
1548 (cp_parser_parameter_declaration): Complain about parameter packs
1549 with default arguments. Move parsing of default arguments into a
1550 new function, cp_parser_default_argument.
1551 (cp_parser_default_argument): New; extracted from
1552 cp_parser_parameter_declaration.
1554 2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
1560 * typeck.c (check_return_expr): If there are bare parameter packs
1561 in the return value, set it to error_mark_node.
1562 * tree.c (cp_walk_subtrees): Walk USING_DECL nodes.
1563 * pt.c (find_parameter_packs_r): Look at the type of
1564 IDENTIFIER_NODEs (e.g., for user-defined conversions).
1565 (check_for_bare_parameter_packs): Flip the result: now returns
1566 TRUE when there were bare parameter packs, FALSE otherwise.
1567 (push_template_decl_real): Deal with flipped result of
1568 check_for_bare_parameter_packs.
1569 * semantics.c (finish_cond): If there are bare parameter packs in
1570 the conditional, set it to error_mark_node.
1571 (finish_expr_stmt): If there are bare parameter packs in the
1572 expression, set it to error_mark_node.
1573 (finish_for_expr): Ditto.
1574 (finish_switch_cond): If there are bare parameter packs in
1575 the conditional, set it to error_mark_node.
1576 (finish_mem_initializers): If there are bare parameter packs in
1577 the member initializer, set it to error_mark_node.
1578 (finish_member_declaration): Check the attributes of the
1579 declaration for bare parameter packs, and remove the attributes if
1580 any have bare parameter packs.
1581 * parser.c (cp_parser_using_declaration): Check the using
1582 declaration for bare parameter packs.
1583 (cp_parser_base_clause): If there are bare parameter packs in a
1584 base specifier, don't add it to the chain.
1586 2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
1589 * error.c (dump_simple_decl): Display ellipsis for template
1590 non-type parameter packs.
1591 (dump_decl): Display ellipsis for template type parameter packs.
1592 (dump_template_decl): Display ellipsis for template template
1594 * pt.c (redeclare_class_template): When redeclaring a class
1595 template, check for collisions between template parameters and
1596 template parameter packs.
1598 2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
1601 * pt.c (process_partial_specialization): Don't mark template
1602 parameters that occur in non-deduced contexts.
1603 (struct pair_fn_data): Add include_nondeduced_p.
1604 (for_each_template_parm_r): Only visit non-deduced contexts if
1605 include_nondeduced_p is set.
1606 (for_each_template_parm): Added parameter include_nondeduced_p,
1607 which states whether template parameters found in non-deduced
1608 contexts should be visited.
1609 (uses_template_parms): Visit all template parameters, even those
1610 in non-deduced contexts.
1612 2008-01-15 Douglas Gregor <doug.gregor@gmail.com>
1615 * pt.c (check_default_tmpl_args): Check for parameter packs that
1616 aren't at the end of a primary template.
1617 (push_template_decl_real): Remove check for parameter packs that
1618 aren't at the end of a primary template; that now happens in
1619 check_default_tmpl_args.
1620 * semantics.c (finish_template_template_parm): Use
1621 check_default_tmpl_args to check for errors in the template
1624 2008-01-12 Doug Kwan <dougkwan@google.com>
1626 * decl.c: (grokdeclarator): Use OPT_Wignored_qualifiers
1627 instead of OPT_Wreturn_type in warning due to ignored return type
1629 * pt.c: (tsubst_function_type): Use OPT_Wignored_qualifiers
1630 instead of OPT_Wreturn_type in warning due to ignored return type
1633 2008-01-08 Jakub Jelinek <jakub@redhat.com>
1636 * semantics.c (finish_omp_for): Don't call
1637 fold_build_cleanup_point_expr if processing_template_decl.
1639 2008-01-04 Paolo Carlini <pcarlini@suse.de>
1640 Jakub Jelinek <jakub@redhat.com>
1643 * error.c (dump_template_argument): Deal with TREE_LIST.
1645 2008-01-01 Douglas Gregor <doug.gregor@gmail.com>
1647 * parser.c (cp_parser_check_decl_spec): Don't warn about "long
1648 long" in C++0x mode; change the warning to note that "long long"
1649 is only unsupported in C++98 mode.
1651 2007-12-20 Jason Merrill <jason@redhat.com>
1654 * call.c (standard_conversion): Derived-to-base is considered a
1655 standard conversion.
1657 2007-12-19 Jakub Jelinek <jakub@redhat.com>
1660 * parser.c (cp_parser_omp_parallel): For non-combined parallel
1661 call cp_parser_statement rather than
1662 cp_parser_already_scoped_statement.
1664 2007-12-18 Jason Merrill <jason@redhat.com>
1667 * pt.c (tsubst_aggr_type): Do nothing if the type already doesn't
1669 (dependent_type_p_r): Handle the domain of an array.
1671 2007-12-18 Douglas Gregor <doug.gregor@gmail.com>
1672 Jakub Jelinek <jakub@redhat.com>
1677 * pt.c (template_template_parm_bindings_ok_p): New; verifies
1678 bindings of template template parameters after all template
1679 arguments have been deduced.
1680 (coerce_template_parms): Don't complain when COMPLAIN doesn't
1682 (fn_type_unification): Use template_template_parm_bindings_ok_p.
1683 (unify): Deal with variadic, bound template template parameters.
1684 (get_class_bindings): Use template_template_parm_bindings_ok_p.
1686 2007-12-18 Jakub Jelinek <jakub@redhat.com>
1689 * decl.c (grokdeclarator): Reject friend sfk_constructor
1692 2007-12-17 Jakub Jelinek <jakub@redhat.com>
1695 * parser.c (cp_parser_omp_all_clauses): Accept optional comma
1698 2007-12-15 Alexandre Oliva <aoliva@redhat.com>
1701 * cp-lang.c (cp_classify_record): New.
1702 (LANG_HOOKS_CLASSIFY_RECORD): Override.
1704 2007-12-11 Jakub Jelinek <jakub@redhat.com>
1707 * decl2.c (cp_write_global_declarations): Revert 2007-11-22 change.
1710 * rtti.c (build_dynamic_cast): Call convert_from_reference even for
1711 dynamic_cast in a template.
1713 2007-12-10 Simon Martin <simartin@users.sourceforge.net>
1716 * typeck.c (build_class_member_access_expr): Compute MEMBER_SCOPE from
1717 MEMBER's BASELINK_ACCESS_BINFO instead of its BASELINK_BINFO.
1719 2007-12-10 Jakub Jelinek <jakub@redhat.com>
1722 * error.c (dump_type_prefix, dump_type_suffix): Handle
1723 TYPE_PACK_EXPANSION.
1726 * error.c (dump_expr): Handle ABS_EXPR.
1728 2007-12-09 Jakub Jelinek <jakub@redhat.com>
1732 * repo.c (repo_emit_p): Return 2 for DECL_INTEGRAL_CONSTANT_VAR_P
1733 in class scope rather than DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
1734 Return 2 also if DECL_EXPLICIT_INSTANTIATION.
1735 * decl2.c (import_export_decl): Don't make VAR_DECLs import_p when
1736 flag_use_repository and repo_emit_p returned 2.
1738 2007-12-06 Jakub Jelinek <jakub@redhat.com>
1741 * tree.c (stabilize_call, stabilize_init): Do nothing if
1742 processing_template_decl.
1744 2007-12-05 Jakub Jelinek <jakub@redhat.com>
1747 * semantics.c (finish_decltype_type): For SCOPE_REF issue an
1748 error instead of assertion failure.
1749 * parser.c (cp_parser_decltype): If closing paren is not found,
1750 return error_mark_node.
1752 2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
1755 * name-lookup.c (arg_assoc_template_arg): Recurse on argument
1757 (arg_assoc_type): We don't need to handle TYPE_ARGUMENT_PACK here,
1758 since arg_assoc_template_arg will deal with them (better).
1760 2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
1763 * pt.c (tsubst_exception_specification): Handle substitutions into
1764 member templates, where tsubst_pack_expansion returns a
1765 TYPE_PACK_EXPANSION.
1767 2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
1770 * pt.c (unify_pack_expansion): If we didn't deduce any actual
1771 bindings for the template parameter pack, don't try to keep the
1772 empty deduced arguments.
1773 (unify): If a parameter is a template-id whose template argument
1774 list contains a pack expansion that is not at the end, then we
1775 cannot unify against that template-id.
1777 2007-12-02 Paolo Carlini <pcarlini@suse.de>
1780 * pt.c (current_template_args): Use error_operand_p.
1782 2007-12-02 Paolo Carlini <pcarlini@suse.de>
1785 * error.c (dump_decl): Handle TREE_BINFO.
1787 2007-12-01 Ollie Wild <aaw@google.com>
1790 * typeck.c (build_binary_op): Add conversion of pointers to function
1791 members appearing as operands to the equality operators.
1793 2007-11-30 Jakub Jelinek <jakub@redhat.com>
1796 * error.c (dump_expr): Handle OBJ_TYPE_REF.
1798 2007-11-29 Jakub Jelinek <jakub@redhat.com>
1801 * tree.c (lvalue_p_1) <case COND_EXPR>: Handle x ?: y
1803 * typeck.c (is_bitfield_expr_with_lowered_type) <case COND_EXPR>:
1808 * parser.c (cp_parser_decltype): Don't call finish_id_expression
1810 * semantics.c (finish_decltype_type): Issue error on types, TYPE_DECLs
1813 2007-11-27 Jakub Jelinek <jakub@redhat.com>
1815 PR tree-optimization/34181
1816 * method.c (use_thunk): Don't inline the call in the thunk.
1819 * tree.c (decl_linkage): Static data members and static member
1820 functions in anonymous ns classes are lk_external.
1822 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
1825 * decl.c (start_preparsed_function): Pass
1826 processing_template_decl for the new allocate_struct_function
1829 2007-11-25 Richard Guenther <rguenther@suse.de>
1831 * decl.c (poplevel): Use BLOCK_CHAIN.
1833 2007-11-24 Ollie Wild <aaw@google.com>
1835 * typeck.c (delta_from_ptrmemfunc): New function.
1836 (get_member_function_from_ptrfunc): Call delta_from_ptrmemfunc.
1837 (build_binary_op): Call delta_from_ptrmemfunc.
1839 2007-11-23 Jakub Jelinek <jakub@redhat.com>
1843 * decl.c (cp_finish_decl): Disallow variable or field
1844 definitions if extern "Java" aggregates.
1845 (grokparms): Disallow parameters with extern "Java"
1847 (check_function_type): Disallow function return values
1848 with extern "Java" aggregates.
1849 * init.c (build_new_1): Disallow placement new with
1850 extern "Java" aggregates.
1852 2007-11-23 Mark Mitchell <mark@codesourcery.com>
1853 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1856 * call.c (convert_like_real): Build a zero constant when __null is
1857 converted to an integer type.
1859 2007-11-22 Jakub Jelinek <jakub@redhat.com>
1862 * decl2.c (cp_write_global_declarations): Issue error about static
1863 data members in anonymous namespace which are declared and used,
1866 2007-11-20 Jakub Jelinek <jakub@redhat.com>
1869 * parser.c (cp_parser_class_head): Reject function template ids.
1872 * tree.c (build_cplus_array_type_1): Don't pass any VLA types
1873 when processing_template_decl to build_array_type.
1876 * pt.c (more_specialized_fn): Don't segfault if one or
1877 both argument list end with ellipsis.
1879 2007-11-18 Jakub Jelinek <jakub@redhat.com>
1882 * semantics.c (finish_call_expr): Set
1883 current_function_returns_abnormally if fn is noreturn FUNCTION_DECL
1884 or OVERLOAD with all noreturn functions.
1886 2007-11-16 Jakub Jelinek <jakub@redhat.com>
1889 * pt.c (apply_late_template_attributes): Do nothing if decl's type is
1892 2007-11-13 Jakub Jelinek <jakub@redhat.com>
1899 * pt.c (find_parameter_packs_r): If ppd->set_packs_to_error,
1900 set to error_mark_node the outermost POINTER_TYPE to the pack if
1901 it is seen in a POINTER_TYPE.
1902 (push_template_decl_real): If check_for_bare_parameter_packs
1903 fails for function return type, set the return type to
1904 integer_type_node. If check_for_bare_parameter_packs failed
1905 for non-function, return error_mark_node.
1908 * call.c (build_new_op): Call resolve_args before calling
1911 2007-11-11 Tom Tromey <tromey@redhat.com>
1914 * lex.c (handle_pragma_implementation): Use cpp_included_before.
1916 2007-11-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
1919 * pt.c (redeclare_class_template): Update error message. Use a
1920 note to show the previous declaration.
1921 (tsubst_friend_class): Use the location of the friend template as
1922 the input location before calling redeclare_class_template.
1924 2007-11-11 Jakub Jelinek <jakub@redhat.com>
1927 * semantics.c (finish_pseudo_destructor_expr): Handle
1928 object == error_mark_node.
1930 2007-11-10 Jakub Jelinek <jakub@redhat.com>
1933 * pt.c (tsubst_copy_and_build) <case COMPONENT_REF>: If object_type
1934 is not scalar type, let finish_class_member_access_expr handle
1935 diagnostics. Pass BIT_NOT_EXPR argument to
1936 finish_pseudo_destructor_expr. Handle SCOPE_REF properly.
1938 2007-11-09 Douglas Gregor <doug.gregor@gmail.com>
1941 * decl.c (cp_complete_array_type): If any of the initializer
1942 elements are pack expansions, don't compute the array size yet.
1944 2007-11-08 Andrew Pinski <pinskia@gmail.com>
1947 * tree.c (decl_linkage): Fields have no linkage.
1949 2007-11-08 Daniel Jacobowitz <dan@codesourcery.com>
1951 * class.c (build_ctor_vtbl_group): Lay out the new type and decl.
1953 2007-11-07 Douglas Gregor <doug.gregor@gmail.com>
1958 * semantics.c (finish_decltype_type): See through INDIRECT_REFs.
1959 Be careful with ERROR_MARK_NODEs.
1960 * parser.c (cp_parser_check_access_in_redeclaration): Handle NULL
1963 2007-11-07 Jakub Jelinek <jakub@redhat.com>
1966 * call.c (build_over_call): Don't check TREE_ADDRESSABLE
1969 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
1973 * tree.c (c_build_qualified_type): Define bridge to
1974 cp_build_qualified_type.
1976 2007-11-06 Douglas Gregor <doug.gregor@gmail.com>
1987 * typeck.c (check_return_expr): Pass address of retval to
1988 check_for_bare_parameter_packs.
1989 * class.c (build_base_field): Tolerate bases that have no layout
1991 (end_of_base): Ditto.
1992 * tree.c (canonical_type_variant): Be careful with
1994 * cp-tree.h (check_for_bare_parameter_packs): Now accepts a
1996 * pt.c (find_parameter_pack_data): Add set_packs_to_error field,
1997 which states whether parameter packs should be replaced with
1999 (find_parameter_packs_r): Pass addresses to cp_walk_tree wherever
2000 possible. If set_packs_to_error is set true, replace the parameter
2001 pack with ERROR_MARK_NODE. Manage our own pointer sets.
2002 (uses_parameter_packs): Don't set parameter packs to
2004 (check_for_bare_parameter_packs): Now takes a pointer to a tree,
2005 which may be modified (if it is a parameter pack). Instructs
2006 find_parameter_packs_r to replace parameter packs with
2007 ERROR_MARK_NODE (so that they won't cause errors later on).
2008 (process_template_parm): Pass pointer to
2009 check_for_bare_parameter_packs.
2010 (process_partial_specialization): Replace pack expansions before
2011 the end of the template argument list with ERROR_MARK_NODE.
2012 (push_template_decl_real): Pass pointer to
2013 check_for_bare_parameter_packs. Replace parameter packs not at the
2014 end of the template parameter list with ERROR_MARK_NODE.
2015 (convert_template_argument): Be more careful about using DECL_NAME
2016 on only declarations.
2017 (unify): Can't unify against ERROR_MARK_NODE.
2018 * semantics.c (finish_cond): Pass pointer to
2019 check_for_bare_parameter_packs.
2020 (finish_expr_stmt): Ditto.
2021 (finish_for_expr): Ditto.
2022 (finish_switch_cond): Pass pointer to
2023 check_for_bare_parameter_packs, and call it before we put the
2024 condition into the statement.
2025 (finish_mem_initializers): Pass pointer to
2026 check_for_bare_parameter_packs.
2027 (finish_member_declaration): Ditto.
2028 * parser.c (cp_parser_base_clause): Ditto.
2030 2007-11-06 Jakub Jelinek <jakub@redhat.com>
2033 * decl.c (cp_finish_decl): Call make_rtl_for_nonlocal_decl already
2034 with the final TREE_READONLY flag in place. processing_template_decl
2035 is known to be 0 in this part of function.
2038 * cp-tree.h: Update comment - TYPE_LANG_FLAG_0 is not
2039 OMP_ATOMIC_DEPENDENT_P in OMP_ATOMIC.
2040 * pt.c (tsubst_expr): Assert OMP_ATOMIC_DEPENDENT_P.
2041 * semantics.c (finish_omp_atomic): Revert most of the
2042 2007-02-05 changes, just keep the new representation of
2043 OMP_ATOMIC_DEPENDENT_P OMP_ATOMIC.
2045 2007-11-05 H.J. Lu <hongjiu.lu@intel.com>
2048 * decl2.c (constrain_visibility): Clear DECL_ONE_ONLY if marked
2051 2007-11-05 Douglas Gregor <doug.gregor@gmail.com>
2056 * typeck.c (merge_types): Don't lose rvalue references when
2058 * call.c (build_over_call): Don't elide move constructors just
2059 because the copy constructor is trivial (!).
2060 (compare_ics): If comparing cv-qualifiers fails, we can still order
2061 based on binding lvalues vs. rvalues.
2063 2007-11-05 Douglas Gregor <doug.gregor@gmail.com>
2066 * pt.c (unify_pack_expansion): bring handling of function call
2067 arguments into line with type_unification_real.
2069 2007-11-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2071 * typeck.c (build_binary_op): Use pedwarn instead of error for
2074 2007-11-05 Jakub Jelinek <jakub@redhat.com>
2077 * parser.c (cp_parser_unary_expression): For &&label call
2078 cp_parser_non_integral_constant_expression and return error_mark_node
2079 if it returned true.
2082 * decl.c (grokdeclarator): Don't call build_memfn_type if type
2083 is neither FUNCTION_TYPE nor METHOD_TYPE.
2085 2007-11-02 Jakub Jelinek <jakub@redhat.com>
2088 * parser.c (cp_parser_nested_name_specifier_opt): Use
2089 TYPE_MAIN_VARIANT (new_scope) as scope if new_scope is an incomplete
2090 typedef of currently open class.
2092 2007-11-02 Paolo Carlini <pcarlini@suse.de>
2095 * error.c (dump_expr): Deal specially with statements.
2097 2007-11-01 Jason Merrill <jason@redhat.com>
2100 * pt.c (push_template_decl_real): Set DECL_CONTEXT on template
2102 (lookup_template_class): Use it to get the outer template args
2103 for instantiating one.
2106 * pt.c (reduce_template_parm_level): tsubst the parameters
2107 of a template template parm.
2109 2007-11-01 Douglas Gregor <doug.gregor@gmail.com>
2112 * pt.c (find_parameter_packs_r): Handle TYPENAME_TYPE.
2114 2007-11-01 Jakub Jelinek <jakub@redhat.com>
2117 * parser.c (cp_parser_postfix_dot_deref_expression): If
2118 POSTFIX_EXPRESSION is type dependent, try to parse it as pseudo dtor
2119 first and if that succeeds and type is SCALAR_TYPE_P, create
2123 * rtti.c (enum_tinfo_kind): Fix TK_TYPE_INFO_TYPE comment.
2124 (typeid_ok_p): Use the same alias set for abi::__type_info_pseudo
2125 as for std::type_info.
2127 2007-10-31 Paolo Carlini <pcarlini@suse.de>
2130 * cxx-pretty-print.c (pp_cxx_typeid_expression,
2131 pp_cxx_delete_expression): Change to static linkage.
2132 * cxx-pretty-print.h: Adjust declarations.
2133 * error.c (dump_expr, case EXPR_PACK_EXPANSION, TYPEID_EXPR,
2134 MEMBER_REF, DOTSTAR_EXPR, DELETE_EXPR, VEC_DELETE_EXPR,
2135 MODOP_EXPR): Forward to pp_expression.
2137 * cxx-pretty-print.c (pp_cxx_expression, case NON_DEPENDENT_EXPR):
2140 2007-10-31 Christian Bruel <christian.bruel@st.com>
2141 Mark Mitchell <mark@codesourcery.com>
2144 * typeck.c (check_return_expr): Don't set named_return_value_okay_p
2145 if retval is volatile.
2147 2007-10-30 Jakub Jelinek <jakub@redhat.com>
2150 * decl2.c (build_offset_ref_call_from_tree): Call
2151 build_non_dependent_expr on object prior to building ADDR_EXPR from it
2152 if FN is DOTSTAR_EXPR.
2154 2007-10-30 Douglas Gregor <doug.gregor@gmail.com>
2158 * pt.c (find_parameter_packs_r): Fix typo in comment.
2159 (convert_template_argument): Look at the pattern of a pack
2160 expansion to determine what kind of entity we're converting.
2161 (coerce_template_parameter_pack): When we have coerced a non-type
2162 template parameter pack, substitute into the type of that pack.
2163 (tsubst_pack_expansion): When our substitution of a parameter pack
2164 is a "trivial" substitution of itself, just substitute into the
2165 pack expansion rather than actually expanding.
2167 2007-10-29 Jakub Jelinek <jakub@redhat.com>
2170 * class.c (check_bitfield_decl): Don't set field's type to error_mark_node
2171 for non-integral type bitfields. Return true if bitfield is correct, false
2172 error has been diagnosed.
2173 (check_field_decls): If check_bitfield_decl returned false, call also
2176 2007-10-28 Paolo Carlini <pcarlini@suse.de>
2177 Mark Mitchell <mark@codesourcery.com>
2180 * pt.c (do_decl_instantiation): If the VAR_DECL is not a
2181 class member error out and return.
2183 2007-10-27 Jakub Jelinek <jakub@redhat.com>
2185 * error.c (reinit_cxx_pp): Initialize cxx_pp->enclosing_scope
2186 to current_function_decl rather than 0.
2189 * cxx-pretty-print.c (pp_cxx_pm_expression) <case MEMBER_REF>: Print
2191 * error.c (dump_expr): Handle MEMBER_REF and DOTSTAR_EXPR.
2193 2007-10-27 Jason Merrill <jason@redhat.com>
2196 * call.c (convert_default_arg): Detect recursion.
2198 2007-10-27 Jakub Jelinek <jakub@redhat.com>
2201 * cxx-pretty-print.h (pp_cxx_offsetof_expression): New prototype.
2202 * cxx-pretty-print.c (pp_cxx_primary_expression): Handle
2204 (pp_cxx_offsetof_expression_1, pp_cxx_offsetof_expression): New
2206 * error.c (dump_expr): Handle OFFSETOF_EXPR.
2208 2007-10-26 Jason Merrill <jason@redhat.com>
2211 * pt.c (get_template_info): New fn.
2212 (template_class_depth): Use it.
2213 (push_template_decl_real): Check that the template args of the
2214 definition match the args of the previous declaration.
2216 2007-10-26 Paolo Carlini <pcarlini@suse.de>
2219 * decl2.c (coerce_new_type): Do not allow a default argument for
2220 the first parameter.
2222 2007-10-26 Douglas Gregor <doug.gregor@gmail.com>
2225 * parser.c (cp_parser_decltype): Return ERROR_MARK_NODE if we
2226 don't see the leading '('. Only lookup names if we get an
2229 2007-10-26 Jakub Jelinek <jakub@redhat.com>
2232 * parser.c (cp_parser_parenthesized_expression_list): Set
2233 greater_than_is_operator_p to true in between the parens.
2235 2007-10-26 Paolo Carlini <pcarlini@suse.de>
2238 * decl.c (grokdeclarator): In case of conflicting specifiers
2239 just return error_mark_node.
2241 2007-10-26 Ollie Wild <aaw@google.com>
2243 * expr.c (cxx_expand_expr): Removed.
2244 * cp-tree.h (exx_expand_expr): Removed.
2245 * cp-objcp-common.h (LANK_HOOKS_EXPAND_EXPR): Replace cxx_expand_expr
2248 2007-10-25 Paolo Carlini <pcarlini@suse.de>
2251 * cxx-pretty-print.c (pp_cxx_unqualified_id): Deal with BIT_NOT_EXPR.
2253 2007-10-23 Jason Merrill <jason@redhat.com>
2255 PR c++/25950 (DR 391)
2256 * call.c (struct conversion): Remove check_copy_constructor_p.
2257 (reference_binding): Always bind a reference directly to a
2258 compatible class rvalue. Pass down LOOKUP_NO_TEMP_BIND during
2260 (check_constructor_callable): Remove.
2261 (convert_like_real): Don't call it.
2262 (initialize_reference): Don't call check_constructor_callable.
2263 (standard_conversion): Check LOOKUP_NO_CONVERSION instead of
2264 LOOKUP_CONSTRUCTOR_CALLABLE. Don't require a temporary for base
2265 conversions if LOOKUP_NO_TEMP_BIND.
2266 (implicit_conversion): Pass through LOOKUP_NO_TEMP_BIND.
2267 (build_user_type_conversion_1): Pass through LOOKUP_NO_TEMP_BIND for
2269 * cp-tree.h (LOOKUP_CONSTRUCTOR_CALLABLE): Remove.
2271 2007-10-22 Jakub Jelinek <jakub@redhat.com>
2274 * semantics.c (finish_omp_clauses): Check !type_dependent_expression_p
2275 before checking if its type is integral.
2277 2007-10-22 Jason Merrill <jason@redhat.com>
2280 * class.c (finish_struct_bits): Copy TYPE_ATTRIBUTES.
2281 * pt.c (apply_late_template_attributes): Splice out dependent
2282 attributes from DECL_ATTRIBUTES.
2284 * decl.c (cxx_maybe_build_cleanup): Use build_address.
2286 2007-10-17 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2288 * typeck.c (build_binary_op) : Use appropriate warning option
2289 instead of unnamed warning.
2291 2007-10-16 Paolo Carlini <pcarlini@suse.de>
2294 * pt.c (current_template_args): Do not change TREE_LIST elements
2295 with a TREE_VALUE of error_mark_node.
2297 2007-10-16 Mark Mitchell <mark@codesourcery.com>
2299 * typeck.c (cp_apply_type_quals_to_decl): Expand documentation.
2300 * decl.c (start_decl): Tidy.
2301 (start_decl_1): Call cp_apply_type_quals_to_decl after completing
2303 (grokdeclarator): Clarify comment.
2305 2007-10-14 Andrew Pinski <pinskia@gmail.com>
2308 * decl.c (grokfndecl): Return NULL after the "definition of
2309 implicitly-declared" error happened.
2311 2007-10-12 Simon Martin <simartin@users.sourceforge.net>
2314 * call.c (build_user_type_conversion_1): Do not consider conversion
2315 functions to convert a (possibly cv-qualified) object to the (possibly
2316 cv-qualified) same object type (or a reference to it), to a (possibly
2317 cv-qualified) base class of that type (or a reference to it).
2319 2007-10-12 Paolo Carlini <pcarlini@suse.de>
2321 * pt.c (tsubst): Use template_parm_level_and_index.
2323 2007-10-12 Jakub Jelinek <jakub@redhat.com>
2326 * parser.c (cp_parser_compound_statement): Handle label-declarations
2327 at the beginning of the compound statement.
2328 (cp_parser_block_declaration): Issue diagnostics about __label__
2329 not at the beginning of a block.
2331 2007-10-11 Paolo Carlini <pcarlini@suse.de>
2334 * pt.c (coerce_template_parameter_pack): Do not pass error_mark_node
2335 to convert_template_argument.
2336 (coerce_template_parms): Return error_mark_node after fixed-length
2338 (tsubst_decl): Check for error_mark_node the return value of the
2339 first tsubst in 'case VAR_DECL'.
2341 2007-10-08 Ollie Wild <aaw@google.com>
2343 * typeck2.c (digest_init): Call cplus_expand_constant after
2344 convert_for_initialization.
2345 * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2346 * expr.c (cplus_expand_constant): Updated function description.
2348 2007-10-04 Jason Merrill <jason@redhat.com>
2351 * call.c (initialize_reference): Handle local static reference
2354 2007-10-03 Jason Merrill <jason@redhat.com>
2357 * name-lookup.c (push_namespace_with_attrs): Fold back into...
2358 (push_namespace): Here.
2359 (handle_namespace_attrs): New fn for the attr code.
2360 (leave_scope): Don't pop_visibility.
2361 * name-lookup.h (struct cp_binding_level): Remove has_visibility.
2362 * parser.c (cp_parser_namespace_definition): Call
2363 handle_namespace_attrs and pop_visibility as appropriate.
2366 * mangle.c (write_type) [TYPEOF_TYPE]: Just sorry.
2368 2007-10-03 Alexandre Oliva <aoliva@redhat.com>
2370 * decl.c (duplicate_decls): Preserve linkage flags for mere
2371 redeclarations of gnu_inline definitions.
2373 2007-10-03 Jason Merrill <jason@redhat.com>
2376 * decl.c (wrap_cleanups_r): New fn.
2377 (wrap_temporary_cleanups): New fn.
2378 (initialize_local_var): Call it.
2380 2007-09-29 Jason Merrill <jason@redhat.com>
2383 * decl.c (make_rtl_for_nonlocal_decl): It's ok for a member
2384 constant to not have DECL_EXTERNAL if it's file-local.
2386 2007-09-28 Ollie Wild <aaw@google.com>
2389 2007-09-27 Ollie Wild <aaw@google.com>
2391 * typeck2.c (digest_init): Call cplus_expand_constant after
2392 convert_for_initialization.
2393 * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2394 * expr.c (cplus_expand_constant): Updated function description.
2396 2007-09-28 Jason Merrill <jason@redhat.com>
2399 * class.c (layout_empty_base): Take rli parameter, update
2400 rli->record_align if empty base has user-specified alignment.
2401 (build_base_field): Pass rli to it.
2403 2007-09-28 Paolo Carlini <pcarlini@suse.de>
2406 * error.c (dump_decl): Deal with TYPE_PACK_EXPANSION.
2408 2007-09-28 Paolo Carlini <pcarlini@suse.de>
2411 * error.c (dump_expr): Deal with ARGUMENT_PACK_SELECT.
2412 (dump_type): Use dump_template_argument for TYPE_ARGUMENT_PACK.
2413 (dump_parameters): Just call dump_type for argument packs too.
2415 2007-09-28 Jakub Jelinek <jakub@redhat.com>
2418 * tree.c (cp_build_qualified_type_real): Handle TYPE_PACK_EXPANSION
2419 qualification by creating qualified PACK_EXPANSION_PATTERN and
2420 then calling make_pack_expansion on it.
2422 2007-09-27 Ollie Wild <aaw@google.com>
2424 * typeck2.c (digest_init): Call cplus_expand_constant after
2425 convert_for_initialization.
2426 * cp-objcp-common.h (LANG_HOOKS_EXPAND_CONSTANT): Removed.
2427 * expr.c (cplus_expand_constant): Updated function description.
2429 2007-09-27 Jason Merrill <jason@redhat.com>
2432 * decl2.c (is_late_template_attribute): Don't crash on unknown
2435 2007-09-27 Paolo Carlini <pcarlini@suse.de>
2438 * error.c (dump_expr): Deal with DELETE_EXPR and VEC_DELETE_EXPR.
2439 * cxx-pretty-print.c (pp_cxx_delete_expression): Add missing
2440 spaces in the formatting.
2441 * cxx-pretty-print.h (pp_cxx_delete_expression): Declare.
2443 2007-09-27 Jakub Jelinek <jakub@redhat.com>
2445 * error.c (cxx_print_error_function): Add third argument, pass
2446 it over to lhd_print_error_function.
2447 (cp_print_error_function): If diagnostic->abstract_origin, print
2449 * cp-tree.h (struct diagnostic_info): New forward decl.
2450 (cxx_print_error_function): Add third argument.
2452 2007-09-25 Simon Martin <simartin@users.sourceforge.net>
2455 * name-lookup.c (pushtag): Do not create an implicit typedef before
2456 the associated type declaration is known to be valid.
2458 2007-09-25 Jakub Jelinek <jakub@redhat.com>
2460 * tree.c (cxx_printable_name): Compare FUNCTION_DECL uids
2461 rather than pointers.
2463 2007-09-24 Danny Smith <dannysmith@user.sourceforge.net>
2466 * search.c (check_final_overrider): Fail if
2467 targetm.comp_type_attributes returns 0.
2469 2007-09-24 Jason Merrill <jason@redhat.com>
2472 * pt.c (resolve_typename_type): Don't look things up in the original
2473 template if it would mean losing template arguments.
2475 2007-09-24 Jakub Jelinek <jakub@redhat.com>
2478 * cp-tree.h (cxx_type_hash_eq): New prototype.
2479 * cp-objcp-common.h (LANG_HOOKS_TYPE_HASH_EQ): Redefine.
2480 * tree.c (cxx_type_hash_eq): New function.
2482 2007-09-24 Douglas Gregor <doug.gregor@gmail.com>
2485 * tree.c (cp_build_qualified_type_real): Build a canonical
2486 ARRAY_TYPE if the original ARRAY_TYPE was not a canonical type.
2488 2007-09-24 Douglas Gregor <doug.gregor@gmail.com>
2492 * tree.c (cplus_array_compare): Compare pointers, not types.
2493 (build_cplus_array_type_1): Store new array type into the hash
2494 table before building the canonical type; build the canonical type
2496 (cp_build_qualified_type_real): Put all of the array types with
2497 cv-qualified element types into the C++ array hash table, built as
2498 variants of the unqualified versions.
2500 2007-09-23 Jason Merrill <jason@redhat.com>
2503 * decl.c (grokdeclarator): Look through implicit TYPE_DECLs
2504 for deprecation warnings.
2506 2007-09-22 Jason Merrill <jason@redhat.com>
2509 * call.c (build_over_call): Warn about deprecated virtuals.
2512 * cp-tree.h (ATTR_IS_DEPENDENT): New macro.
2513 (MAYBE_TAGGED_TYPE_P): Remove.
2514 * pt.c (apply_late_template_attributes): Check ATTR_IS_DEPENDENT
2515 instead of calling is_late_template_attribute again.
2516 (tsubst_decl) [TYPE_DECL]: Just check if the name is the tag.
2517 (tsubst): A typedef is a TYPE_NAME != TYPE_MAIN_DECL.
2518 Don't crash on typedefs from non-template classes.
2519 * decl2.c (grokfield): Don't sorry about attrs on template parms.
2520 (is_late_template_attribute): All attributes applied to template
2521 parms or typename types are dependent. Static.
2522 (splice_template_attributes): Pass decl through.
2523 (save_template_attributes): Likewise.
2525 2007-09-20 Jakub Jelinek <jakub@redhat.com>
2528 * pt.c (tsubst_copy) <case SIZEOF_EXPR>: Handle error_mark_node
2529 returned from tsubst_pack_expansion.
2530 (tsubst_copy_and_build) <case SIZEOF_EXPR>: Likewise.
2531 (tsubst_copy_and_build) <case CONSTRUCTOR>: Likewise.
2533 2007-09-20 Paolo Carlini <pcarlini@suse.de>
2536 * semantics.c (finish_id_expression): Use consistently
2537 context_for_name_lookup.
2538 * decl.c (fixup_anonymous_aggr): Fix error message for
2539 anonymous struct (vs union).
2541 2007-09-19 Jason Merrill <jason@redhat.com>
2544 * pt.c (tsubst): Handle typedefs by looking for the specialization.
2545 (retrieve_specialization): Only tagged types use
2546 DECL_TEMPLATE_INSTANTIATIONS.
2547 (instantiate_class_template): Push nested classes too.
2548 (tsubst_decl) [TYPE_DECL]: Only check for canonical decl for
2550 * cp-tree.h (MAYBE_TAGGED_TYPE_P): New macro.
2551 * init.c (is_aggr_type): Remove redundant tests.
2552 * class.c (push_nested_class): Use CLASS_TYPE_P.
2554 2007-09-20 Paolo Carlini <pcarlini@suse.de>
2557 * init.c (build_zero_init): If, recursively, build_zero_init
2558 returns a NULL_TREE, do not append it to the VEC of constructors.
2560 2007-09-18 Jason Merrill <jason@redhat.com>
2563 * pt.c (apply_late_template_attributes): Set processing_template_decl.
2564 (tsubst_decl) [TYPE_DECL]: Preserve naming typedef, pass
2565 ATTR_FLAG_TYPE_IN_PLACE.
2566 (tsubst): Do unqualified lookup to find typedefs from current class.
2567 [ARRAY_TYPE]: Propagate alignment info.
2568 * decl2.c (is_late_template_attribute): Only defer handling of
2569 attribute aligned if the expression is dependent.
2570 (save_template_attributes): If we're deferring any attributes,
2571 make this a naming typedef.
2573 2007-09-18 Paolo Carlini <pcarlini@suse.de>
2575 PR c++/33462 (again)
2576 * cxx-pretty-print.c (pp_cxx_va_arg_expression): Print
2577 va_arg instead of __builtin_va_arg.
2579 2007-09-18 Paolo Carlini <pcarlini@suse.de>
2582 * cxx-pretty-print.c (pp_cxx_va_arg_expression): Add.
2583 (pp_cxx_primary_expression): Use it.
2584 * cxx-pretty-print.h (pp_cxx_va_arg_expression): Declare.
2585 * error.c (dump_expr): Use it.
2587 2007-09-18 Paolo Carlini <pcarlini@suse.de>
2590 * cxx-pretty-print.c (pp_cxx_postfix_expression): Split
2591 out case TYPEID_EXPR to...
2592 (pp_cxx_typeid_expression): ... here; use pp_cxx_left_paren
2593 and pp_cxx_right_paren.
2594 * cxx-pretty-print.h (pp_cxx_typeid_expression): Declare.
2595 * error.c (dump_expr): Use it.
2597 2007-09-18 Paolo Carlini <pcarlini@suse.de>
2600 * cxx-pretty-print.c (pp_cxx_trait_expression): Add.
2601 (pp_cxx_primary_expression): Use it.
2602 * cxx-pretty-print.h (pp_cxx_trait_expression): Declare.
2603 * error.c (dump_expr): Use it.
2605 2007-09-16 Paolo Carlini <pcarlini@suse.de>
2608 * init.c (build_new): Remove warning for zero-element
2611 2007-09-16 Nathan Sidwell <nathan@codesourcery.com>
2614 * call.c (maybe_handle_implicit_object): Set this_p, clear
2615 rvaluedness_matches_p.
2616 (compare_ics): Do not compare rvaluedness matching when one of the
2617 operands is an implicit object.
2619 2007-09-14 Jason Merrill <jason@redhat.com>
2621 PR c++/17743, c++/19163
2622 * decl2.c (is_late_template_attribute): New fn.
2623 (splice_template_attributes, save_template_attributes): New fns.
2624 (cplus_decl_attributes): Call save_template_attributes.
2625 * pt.c (apply_late_template_attributes): New fn.
2626 (instantiate_class_template, tsubst_decl): Use it.
2627 * cp-tree.h: Declare is_late_template_attribute.
2629 2007-09-13 Tom Tromey <tromey@redhat.com>
2631 * parser.c (cp_lexer_new_main): Don't use
2632 c_lex_return_raw_strings.
2633 (cp_lexer_get_preprocessor_token): Update. Add special case when
2636 2007-09-11 Jan Hubicka <jh@suse.cz>
2638 * method.c (use_thunk): Use tree_rest_of_compilation
2639 * cp-objecp-common.h (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
2640 (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Define.
2641 * cp-tree.h (expand_body): Kill.
2642 (emit_associated_thunks): Declare.
2643 * semantics.c (emit_associated_thunks): Export.
2644 (expand_body): Kill.
2646 2007-09-09 David Daney <ddaney@avtrex.com>
2649 * init.c (build_new_1): Use POINTER_PLUS_EXPR instead of MINUS_EXPR
2650 to calculate cookie_ptr.
2652 2007-09-08 Jason Merrill <jason@redhat.com>
2655 * pt.c (most_specialized_class): Set processing_template_decl
2656 while tsubsting partial spec args.
2658 2007-09-06 Jason Merrill <jason@redhat.com>
2660 * decl2.c (get_guard): Copy visibility from the guarded variable.
2662 2007-09-06 Jan Hubicka <jh@suse.cz>
2664 * semantics.c (expand_body): Do not mark arguments of clones used.
2666 2007-09-06 Paolo Carlini <pcarlini@suse.de>
2669 * decl.c (cp_finish_decl): When processing_template_decl,
2670 deal correctly with init as TREE_LIST.
2672 2007-09-06 Tom Tromey <tromey@redhat.com>
2674 * decl.c (finish_function): Put return's location on line zero of
2677 2007-09-05 Jason Merrill <jason@redhat.com>
2680 * except.c (prepare_eh_type): Use type_decays_to.
2683 * init.c (build_delete): Use build_headof to get the address of the
2684 complete object if we aren't using the deleting destructor.
2685 * rtti.c (build_headof): No longer static.
2686 * cp-tree.h: Declare it.
2688 2007-09-06 Jakub Jelinek <jakub@redhat.com>
2690 * decl.c (duplicate_decls): Set TREE_NOTHROW on __builtin_XX
2691 decl if a prototype for XX is provided with throw().
2694 * decl.c (builtin_function_1): Set DECL_ANTICIPATED also
2695 on __*_chk non-__builtin_* decls.
2697 2007-09-05 Paolo Carlini <pcarlini@suse.de>
2700 * semantics.c (finish_id_expression): Use context_for_name_lookup
2701 insted of DECL_CONTEXT, to see through anonymous structs and unions.
2702 * class.c (finish_struct_anon): Deal correctly with anonymous
2703 structs (vs unions, as GNU extension) in error messages.
2705 2007-09-05 Jan Hubicka <jh@suse.cz>
2707 * sematics.c (expand_body): Remove unnecesary import_export_decl
2708 call, DECL_EXTERNAL checks and current_function_decl saving.
2710 2007-09-05 Paolo Carlini <pcarlini@suse.de>
2712 PR c++/29731 (again)
2713 * parser.c (cp_parser_primary_expression): Return error_mark_node
2714 when a statement-expression is found in a template-argument list.
2716 2007-09-04 Jason Merrill <jason@redhat.com>
2718 * except.c (initialize_handler_parm): Use
2719 fold_build_cleanup_point_expr.
2722 * call.c (reference_binding): Don't look for user-defined conversions
2726 * except.c (initialize_handler_parm): Put a CLEANUP_POINT_EXPR inside
2727 the MUST_NOT_THROW_EXPR.
2729 2007-09-04 Richard Sandiford <richard@codesourcery.com>
2731 * decl.c (cp_finish_decl): Call determine_visibility before
2732 make_rtl_for_nonlocal_decl.
2734 2007-09-04 Jason Merrill <jason@redhat.com>
2737 * pt.c (most_specialized_class): Substitute outer template
2738 arguments into the arguments of a member template partial
2740 (strip_innermost_template_args): New fn.
2742 2007-09-03 Daniel Jacobowitz <dan@codesourcery.com>
2744 * Make-lang.in (g++spec.o): Remove SHLIB_MULTILIB.
2746 2007-09-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2748 * call.c (name_as_c_string): Supply a TYPE for CONST_CAST.
2749 * decl.c (cp_make_fname_decl): Likewise,
2750 * parser.c (cp_parser_string_literal): Likewise,
2751 * tree.c (pod_type_p, zero_init_p): Use CONST_CAST_TREE.
2752 * typeck.c (cp_type_quals, cp_type_readonly, cp_has_mutable_p):
2755 2007-09-02 Paolo Carlini <pcarlini@suse.de>
2758 * typeck.c (build_unary_op): Fix error message for
2759 Boolean expression as operand to operator--.
2761 2007-09-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2763 * tree.c (pod_type_p, zero_init_p): Use strip_array_types.
2764 * typeck.c (cp_type_quals, cp_type_readonly, cp_has_mutable_p):
2767 2007-08-31 Douglas Gregor <doug.gregor@gmail.com>
2770 * init.c (build_default_init): Make extern.
2771 * cp-tree.h (build_default_init): Declare here.
2772 * pt.c (tsubst_expr): When the instantiation of the initializer of
2773 a variable results in an empty list, default-initialize the
2775 (tsubst_copy_and_build): When the instantiation of the initializer
2776 in a new expression results in an empty initializer list,
2777 default-initialize it.
2779 2007-08-31 Douglas Gregor <doug.gregor@gmail.com>
2781 * mangle.c (write_type): Change mangling of rvalue reference from
2784 2007-08-31 Jakub Jelinek <jakub@redhat.com>
2786 * decl.c (duplicate_decls): Remove duplicated line.
2788 2007-08-31 Paolo Carlini <pcarlini@suse.de>
2791 * cxx-pretty-print.c (pp_cxx_unqualified_id): Deal with
2792 BOUND_TEMPLATE_TEMPLATE_PARM.
2794 2007-08-31 Paolo Carlini <pcarlini@suse.de>
2797 * search.c (lookup_member): Check the name argument for
2800 2007-08-31 Paolo Carlini <pcarlini@suse.de>
2803 * parser.c (cp_parser_trait_expr): Check rerurn value of
2806 2007-08-30 Ollie Wild <aaw@google.com>
2808 * cvt.c (cp_convert_to_pointer): Remove force parameter. Call
2809 convert_ptrmem for pointer to member conversions.
2810 (convert_to_pointer_force): Update cp_convert_to_pointer call.
2811 (ocp_convert): Update cp_convert_to_pointer call.
2812 * typeck.c (convert_ptrmem): Add conditional for null pointers to
2814 (build_static_cast_1): Check can_convert for conversions in either
2816 (get_delta_difference_1): New function.
2817 (get_delta_difference): Refactor to call get_delta_difference_1.
2819 2007-08-30 Jakub Jelinek <jakub@redhat.com>
2821 * decl.c (start_preparsed_function): Set
2822 DECL_DISREGARD_INLINE_LIMITS for GNU_INLINE_P functions.
2824 2007-08-28 Paolo Carlini <pcarlini@suse.de>
2827 * error.c (dump_expr): Deal with TEMPLATE_TYPE_PARM and
2828 BOUND_TEMPLATE_TEMPLATE_PARM.
2830 2007-08-28 Jakub Jelinek <jakub@redhat.com>
2834 * pt.c (check_explicit_specialization): Set DECL_INTERFACE_KNOWN
2835 and DECL_NOT_REALLY_EXTERN if tmpl_func is not public.
2837 2007-08-27 Jason Merrill <jason@redhat.com>
2840 * pt.c (build_non_dependent_expr, type_dependent_expression_p):
2841 Look inside STMT_EXPR.
2842 * semantics.c (stmt_expr_value_expr): New fn.
2843 * cp-tree.h: Declare it.
2846 * decl.c (groktypename): Ignore attributes applied to class type.
2848 2007-08-28 Richard Guenther <rguenther@suse.de>
2850 * decl.c (duplicate_decls): Merge DECL_DISREGARD_INLINE_LIMITS.
2852 2007-08-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
2854 * error.c (dump_expr): Handle COMPLEX_CST.
2855 * cxx-pretty-print.c (pp_cxx_primary_expression): Likewise.
2856 (pp_cxx_expression): Likewise.
2858 2007-08-27 Alexandre Oliva <aoliva@redhat.com>
2860 * decl.c (GNU_INLINE_P): New.
2861 (duplicate_decls): Handle gnu_inline. Merge attributes and
2862 some flags in overriding definitions.
2863 (redeclaration_error_message): Handle gnu_inline.
2864 (start_preparsed_function): Likewise.
2866 2007-08-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2868 * call.c (sufficient_parms_p): Constify.
2869 * class.c (same_signature_p): Likewise.
2870 * cp-gimplify.c (is_invisiref_parm,
2871 cxx_omp_privatize_by_reference): Likewise.
2872 * cp-objcp-common.c (has_c_linkage): Likewise.
2873 * cp-tree.h (NON_THUNK_FUNCTION_CHECK, THUNK_FUNCTION_CHECK,
2874 sufficient_parms_p, same_signature_p, copy_fn_p, move_fn_p,
2875 grok_ctor_properties, nothrow_libfn_p, skip_artificial_parms_for,
2876 num_artificial_parms_for, comp_template_parms,
2877 template_parameter_pack_p, any_dependent_template_arguments_p,
2878 any_type_dependent_arguments_p, any_value_dependent_elements_p,
2879 repo_export_class_p, cxx_omp_privatize_by_reference, pod_type_p,
2880 zero_init_p, member_p, cp_lvalue_kind,
2881 builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p,
2882 varargs_function_p, is_dummy_object, special_function_kind,
2883 string_conv_p, type_unknown_p, comp_except_specs, compparms,
2884 comp_cv_qualification, is_bitfield_expr_with_lowered_type,
2885 unlowered_expr_type, ptr_reasonably_similar, cp_type_readonly,
2886 cp_has_mutable_p, at_least_as_qualified_p,
2887 invalid_nonstatic_memfn_p, lvalue_or_else, lvalue_p): Likewise.
2888 * decl.c (copy_fn_p, move_fn_p, grok_ctor_properties): Likewise.
2889 * except.c (nothrow_libfn_p): Likewise.
2890 * method.c (skip_artificial_parms_for, num_artificial_parms_for):
2892 * pt.c (comp_template_parms, template_parameter_pack_p,
2893 any_type_dependent_arguments_p, any_value_dependent_elements_p,
2894 any_dependent_template_arguments_p): Likewise.
2895 * repo.c (repo_export_class_p): Likewise.
2896 * semantics.c (anon_aggr_type_p): Likewise.
2897 * tree.c (lvalue_p_1, real_lvalue_p, lvalue_p,
2898 builtin_valid_in_constant_expr_p, decl_anon_ns_mem_p,
2899 varargs_function_p, member_p, is_dummy_object, pod_type_p,
2900 zero_init_p, special_function_p): Likewise.
2901 * typeck.c (comp_array_types, type_unknown_p, comp_except_specs,
2902 comp_array_types, at_least_as_qualified_p, comp_cv_qualification,
2903 compparms, invalid_nonstatic_memfn_p,
2904 is_bitfield_expr_with_lowered_type, unlowered_expr_type,
2905 string_conv_p, ptr_reasonably_similar, cp_type_readonly,
2906 cp_has_mutable_p, lvalue_or_else): Likewise.
2908 2007-08-25 Paolo Bonzini <bonzini@gnu.org>
2910 * decl.c (cp_tree_node_structure): Kill TINST_LEVEL case.
2911 * cp-objcp-common.c (cp_tree_size): Ditto.
2912 * tree.c (cp_walk_subtrees): Ditto
2913 * cp-tree.def (TINST_LEVEL): Go away.
2914 * cp-tree.h (struct tinst_level_s): Rename to struct tinst_level,
2915 move together with other non-tree structs.
2916 (enum cp_tree_node_structure_enum): Nuke TS_CP_TINST_LEVEL.
2917 (union lang_tree_node): Eliminate tinst_level field.
2918 (TINST_DECL, TINST_LOCATION, TINST_IN_SYSTEM_HEADER_P): Annihilate.
2919 (current_instantiation, outermost_tinst_level): Return
2920 a "struct tinst_level *".
2922 * error.c (print_instantiation_partial_context): Change second
2923 parameter to a "struct tinst_level *". Replace accessor macros
2925 (print_instantiation_full_context): Likewise.
2926 * lex.c (in_main_input_context): Likewise.
2928 * pt.c (struct pending_templates): New.
2929 (pending_templates, last_pending_template): Use it as a type.
2930 (current_tinst_level): Change typo to "struct tinst_level *"
2931 (reopen_tinst_level): Accept "struct tinst_level *", return decl.
2932 (add_pending_template): Construct a "struct pending_template".
2933 Replace TINST_LEVEL accessor macros with field access.
2934 (push_tinst_level): Likewise, using GGC_NEW instead of make_node.
2935 (pop_tinst_level): Likewise.
2936 (instantiate_pending_templates): Likewise. Factor common code used
2937 when an instantiation has been done.
2938 (outermost_tinst_level): Replace tree_last with loop.
2939 (current_instantiation): Return a "struct tinst_level *".
2941 2007-08-24 Ollie Wild <aaw@google.com>
2943 * name-lookup.c (add_decl_to_level): Remove addition to vtables chain.
2944 * name-lookup.h (cp_binding_level): Remove vtables member.
2946 2007-08-24 Richard Guenther <rguenther@suse.de>
2948 * tree.c (cp_cannot_inline_tree_fn): Remove.
2949 * cp-tree.h (cp_cannot_inline_tree_fn): Likewise.
2950 * cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN):
2953 2007-08-24 Jakub Jelinek <jakub@redhat.com>
2956 * typeck.c (build_unary_op) <case PREINCREMENT_EXPR>: Return
2957 error_mark_node right away if build_expr_type_conversion
2961 * name-lookup.c (set_decl_namespace): lookup_qualified_name failure
2962 is error_mark_node rather than NULL_TREE.
2963 * pt.c (check_explicit_specialization): Likewise.
2966 * error.c (resolve_virtual_fun_from_obj_type_ref): Handle
2967 TARGET_VTABLE_USES_DESCRIPTORS targets properly.
2969 2007-08-22 Jason Merrill <jason@redhat.com>
2972 * pt.c (outermost_tinst_level): New function.
2973 * lex.c (in_main_input_context): New function.
2974 * cp-tree.h: Declare it.
2975 * decl2.c (constrain_class_visibility): Use it to avoid warning
2976 about uses of the anonymous namespace in the main input file.
2978 2007-08-21 Jakub Jelinek <jakub@redhat.com>
2980 * init.c (build_new_1): Use get_target_expr instead of save_expr.
2982 2007-08-20 Pawel Sikora <pluto@pld-linux.org>
2985 * class.c (finish_struct_1): Warn when a class has virtual
2986 functions and accessible non-virtual destructor.
2988 2007-08-20 Richard Guenther <rguenther@suse.de>
2992 * call.c (build_new_method_call): Convert initializer to
2994 * init.c (build_aggr_init): Do not fiddle with types.
2995 (build_vec_delete_1): Use correct type for POINTER_PLUS_EXPR.
2996 * except.c (build_throw): Do not drop qualifiers for the
2998 * typeck.c (get_member_function_from_ptrfunc): Do not
2999 fiddle with types, instead convert.
3000 (build_ptrmemfunc1): Convert to the target type for
3002 (gfc_trans_allocate): Convert result to target type.
3003 * cp-objcp-common.c (cxx_get_alias_set): Pointers to
3004 pointer-to-member structures shall have alias set zero as well.
3006 2007-08-20 Richard Guenther <rguenther@suse.de>
3008 * cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_AUTO_VAR_IN_FN_P):
3010 * cp-tree.h (cp_auto_var_in_fn_p): Remove.
3011 (nonstatic_local_decl_p): Likewise.
3012 * tree.c (cp_auto_var_in_fn_p): Remove.
3013 * decl.c (nonstatic_local_decl_p): Remove.
3015 2007-08-20 Richard Guenther <rguenther@suse.de>
3017 * cp-objcp-common.h (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES):
3019 * tree.h (cp_walk_tree): New define to walk_tree_1 with
3020 cp_walk_subtrees lh parameter.
3021 (cp_walk_tree_without_duplicates): New define to
3022 walk_tree_without_duplicates_1 with cp_walk_subtrees lh parameter.
3023 * tree.c (count_trees): Call
3024 cp_walk_tree_without_duplicates.
3025 (verify_stmt_tree): Call cp_walk_tree.
3026 (break_out_target_exprs): Likewise.
3027 (WALK_SUBTREE): Likewise.
3028 * cp-gimplify.c (cp_genericize): Likewise.
3029 * cp-pt.c (find_parameter_packs_r): Likewise.
3030 (uses_parameter_packs): Likewise.
3031 (make_pack_expansion): Likewise.
3032 (check_for_bare_parameter_packs): Likewise.
3033 (for_each_template_parm): Likewise.
3034 * decl.c (check_default_argument): Call
3035 cp_walk_tree_without_duplicates.
3036 * except.c (build_throw): Likewise.
3037 * decl2.c (type_visibility): Likewise.
3038 * semantics.c (expand_or_defer_fn): Likewise.
3039 (finalize_nrv): Call cp_walk_tree.
3041 2007-08-20 Jakub Jelinek <jakub@redhat.com>
3044 * init.c (build_new_1): Rename placement_var variable to placement_expr.
3045 Initialize it with save_expr rather than get_temp_regvar.
3047 2007-08-17 Andrew Pinski <andrew_pinski@playstation.sony.com>
3050 * tree.c (lvalue_p_1 <case SAVE_EXPR>): SAVE_EXPRs are never
3053 2007-08-17 Ollie Wild <aaw@google.com>
3056 * name-lookup.c (do_nonmember_using_decl): Shift implicit type
3057 declarations into appropriate slots for comparison. Fix type
3060 2007-08-17 Paolo Carlini <pcarlini@suse.de>
3063 * error.c (dump_decl): Deal with UNBOUND_CLASS_TEMPLATE.
3064 * cxx-pretty-print.c (pp_cxx_unqualified_id): Likewise.
3066 2007-08-17 Paolo Carlini <pcarlini@suse.de>
3069 * parser.c (cp_parser_class_head): Improve error message.
3071 2007-08-16 Seongbae Park <seongbae.park@gmail.com>
3073 * pt.c (instantiate_decl): Set input_location
3074 for the function end.
3076 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3078 * cp-objcp-common.c (cxx_warn_unused_global_decl, cp_expr_size):
3080 * cp-tree.h (local_variable_p, nonstatic_local_decl_p,
3081 class_tmpl_impl_spec_p, cp_auto_var_in_fn_p, cp_type_quals,
3082 cxx_incomplete_type_diagnostic, cxx_incomplete_type_error,
3083 cxx_warn_unused_global_decl, cp_expr_size): Likewise.
3084 * decl.c (local_variable_p, nonstatic_local_decl_p): Likewise.
3085 * tree.c (class_tmpl_impl_spec_p, cp_auto_var_in_fn_p): Likewise.
3086 * typeck.c (cp_type_quals): Likewise.
3087 * typeck2.c (cxx_incomplete_type_diagnostic,
3088 cxx_incomplete_type_error): Likewise.
3090 2007-08-16 Paolo Carlini <pcarlini@suse.de>
3093 * pt.c (tsubst_friend_function): When check_classfn
3094 returns error_mark_node likewise return it.
3096 2007-08-15 Jakub Jelinek <jakub@redhat.com>
3099 * typeck.c (check_return_expr): Don't NRV optimize vars in
3101 * decl.c (finish_function): Comment fix.
3103 2007-08-15 Paolo Carlini <pcarlini@suse.de>
3106 * pt.c (push_template_decl_real): Depending on TYPE_P
3107 use either TYPE_CONTEXT or DECL_CONTEXT.
3109 2007-08-14 Mark Mitchell <mark@codesourcery.com>
3111 * semantics.c (finish_omp_clauses): Strip a NOP_EXPR if
3112 constructors and destructors return this.
3114 2007-08-14 Paolo Carlini <pcarlini@suse.de>
3117 * decl2.c (check_classfn): Return error_mark_node in case of error;
3118 in that case, do not call add_method.
3119 * decl.c (start_decl): Deal with check_classfn returning
3121 (grokfndecl): Likewise.
3122 * pt.c (tsubst_friend_function): Likewise.
3124 2007-08-14 Andrew Pinski <pinskia@gmail.com>
3127 * typeck.c (build_binary_op): Disallow vector float types with
3128 BIT_IOR_EXPR, BIT_AND_EXPR, and BIT_XOR_EXPR.
3130 2007-08-11 Ian Lance Taylor <iant@google.com>
3132 * cp-objcp-common.c (cxx_get_alias_set): Change return type to
3134 * cp-tree.h (cxx_get_alias_set): Update declaration.
3136 2007-08-10 Ollie Wild <aaw@google.com>
3138 * name-lookup.c (do_nonmember_using_decl): Print an error for ambiguous
3140 (ambiguous_decl): Construct tree of ambiguous types. Remove extaneous
3142 (unqualified_namespace_lookup): Fix ambiguous_decl call.
3143 (lookup_using_namespace): Fix ambiguous_decl call.
3144 (qualified_lookup_using_namespace): Fix ambiguous_decl call.
3146 2007-08-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3148 * call.c (name_as_c_string): Use CONST_CAST.
3149 * decl.c (build_decl): Likewise.
3150 * parser.c (cp_parser_string_literal): Likewise.
3152 2007-08-10 Paolo Carlini <pcarlini@suse.de>
3155 * error.c (dump_expr): Consistently use the *_cxx_*
3156 variants of the pretty-print functions.
3158 2007-08-10 Paolo Carlini <pcarlini@suse.de>
3161 * decl.c (check_special_function_return_type): Just error
3162 on return type specified for conversion operator.
3164 2007-08-09 Daniel Berlin <dberlin@dberlin.org>
3166 * typeck2.c (readonly_error): Handle general expressions.
3167 * error.c (dump_expr): Handle POINTER_PLUS_EXPR
3169 2007-08-06 Dan Hipschman <dsh@google.com>
3171 * method.c (use_thunk): Use DECL_NAME instead of DECL_RTL to
3172 access function name.
3174 2007-08-04 Alfred Minarik <a.minarik@aon.at>
3177 * lang-specs.h: Add .hp, .hxx, .hpp, .h, .HPP, .tcc as c++ header.
3178 * g++spec.c (lang_specific_driver): Check them.
3180 2007-08-06 Paolo Carlini <pcarlini@suse.de>
3183 * pt.c (inline_needs_template_parms): Fix comment; change return type
3186 2007-08-05 Volker Reichelt <v.reichelt@netcologne.de>
3189 2007-03-26 Dirk Mueller <dmueller@suse.de>
3191 * parser.c (cp_parser_member_declaration): Pedwarn
3192 about stray semicolons after member declarations.
3194 2007-08-02 Lee Millward <lee.millward@gmail.com>
3199 * parser.c (cp_parser_asm_definition): Detect and discard asm
3200 statements with invalid inputs or outputs.
3201 (cp_parser_asm_operand_list): Return error mark node if any
3202 of the operands are invalid. Adjust documentation.
3204 2007-08-02 Nick Clifton <nickc@redhat.com>
3206 * typeck.c: Change copyright header to refer to version 3 of the
3207 GNU General Public License and to point readers at the COPYING3
3208 file and the FSF's license web page.
3209 * optimize.c, lang-specs.h, init.c, class.c, repo.c, decl.c,
3210 config-lang.in, cp-tree.def, call.c, decl.h, ptree.c,
3211 Make-lang.in, method.c, rtti.c, cp-objcp-common.c, g++spec.c,
3212 cp-objcp-common.h, except.c, error.c, operators.def, cvt.c,
3213 tree.c, mangle.c, cp-tree.h, dump.c, search.c, friend.c, expr.c,
3214 cp-gimplify.c, cxx-pretty-print.c, cp-lang.c, typeck2.c, pt.c,
3215 cxx-pretty-print.h, semantics.c, name-lookup.c, lex.c, decl2.c,
3216 name-lookup.h, parser.c: Likewise.
3218 2007-08-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3221 * call.c (magic_varargs_p): Honor the "type generic" attribute.
3223 2007-07-30 Paolo Carlini <pcarlini@suse.de>
3226 * semantics.c (finish_label_stmt): Reject the __label__
3227 extension outside function scopes.
3229 2007-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3231 * parser.c (eof_token): Un-constify.
3232 (cp_lexer_new_main, cp_lexer_new_from_tokens, VEC_alloc,
3233 cp_lexer_consume_token, cp_lexer_purge_token): Remove spurious
3236 2007-07-28 Kazu Hirata <kazu@codesourcery.com>
3238 * pt.c, tree.c, typeck2.c: Fix comment typos.
3240 2007-07-28 Simon Martin <simartin@users.sourceforge.net>
3241 Mark Mitchell <mark@codesourcery.com>
3244 * name-lookup.c (lookup_name_real): Non namespace-scope bindings can be
3245 hidden due to friend declarations in local classes.
3247 2007-07-27 Douglas Gregor <doug.gregor@gmail.com>
3249 * typeck.c (structural_comptypes): Compare DECLTYPE_TYPE nodes.
3250 * cp-tree.def (DECLTYPE_TYPE): New.
3251 * error.c (dump_type): Dump DECLTYPE_TYPE nodes.
3252 (dump_type_prefix): Ditto.
3253 (dump_type_suffix): Ditto.
3254 * tree.c (DECLTYPE_TYPE): Walk DECLTYPE_TYPE nodes.
3255 * mangle.c (write_type): Handle DECLTYPE_TYPE.
3256 * cp-tree.h (IS_AGGR_TYPE): DECLTYPE_TYPE nodes can be aggregate
3258 (DECLTYPE_TYPE_EXPR): New.
3259 (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): New.
3260 (finish_declared_type): Declare.
3261 * cxx-pretty-print.c (pp_cxx_type_specifier_seq): Print
3262 DECLTYPE_TYPE nodes.
3263 (pp_cxx_type_id): Ditto.
3264 * pt.c (for_each_template_parm_r): Walk DECLTYPE_TYPE children.
3265 (tsubst): Substitute into a DECLTYPE_TYPE node.
3266 (tsubst_copy): Ditto.
3267 (unify): Cannot deduce anything from TYPEOF_TYPE or DECLTYPE_TYPE
3269 (dependent_type_p_r): DECLTYPE_TYPE types are always dependent.
3270 * semantics.c (finish_typeof): TYPEOF_TYPE types need to use
3271 structural equality (because we can't hash the expressions).
3272 (finish_declared_type): New.
3273 * lex.c (reswords): Add "decltype" keyword.
3274 * parser.c cp_lexer_next_token_is_decl_specifier_keyword
3275 (cp_parser_postfix_expression): Add member_access_only_p to
3276 restrict postfix expression to member access expressions.
3277 (cp_parser_unary_expression): Update call to
3278 cp_parser_postfix_expression to reflect new parameter.
3279 (cp_parser_declared_type): New.
3280 (cp_parser_simple_type_specifier): Parse decltype types.
3282 2007-07-27 Mark Mitchell <mark@codesourcery.com>
3285 * call.c (convert_for_arg_passing): Only widen bitfields to their
3286 declared types if necessary.
3288 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3290 * parser.c (cp_parser_string_literal, cp_parser_sizeof_operand):
3293 2007-07-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3295 * decl.c (typename_hash, typename_compare): Constify.
3296 * mangle.c (hash_type, compare_type): Likewise.
3297 * pt.c (eq_local_specializations, hash_local_specialization):
3299 * tree.c (cplus_array_hash, cplus_array_compare, list_hash_eq,
3300 list_hash): Likewise.
3301 * typeck2.c (pat_compare): Likewise.
3303 2007-07-24 Nathan Sidwell <nathan@codesourcery.com>
3305 * method.c (implicitly_declare_fn): Increase alignment if member
3306 function pointer format requires it.
3308 2007-07-24 Paolo Carlini <pcarlini@suse.de>
3311 * typeck.c (check_return_expr): Do not pass a null argument
3314 2007-07-24 Paolo Carlini <pcarlini@suse.de>
3317 * decl.c (redeclaration_error_message): Call DECL_ANON_UNION_VAR_P
3320 2007-07-22 Nathan Sidwell <nathan@codesourcery.com>
3323 * typeck.c (convert_arguments): Only use default args if we have
3327 * typeck.c (structural_comptypes): No need to check
3328 resolve_typename_type return value here.
3329 * cp-tree.h (TYPENAME_IS_RESOLVING_P): New.
3330 * pt.c (resolve_typename_type): Follow typename typedefs. Return
3331 original type rather than error_mark_node in case of failure.
3332 * parser.c (cp_parser_nested_name_specifier_opt): Adjust
3333 resolve_typename_type result check.
3334 (cp_parser_direct_declarator, cp_parser_head,
3335 cp_parser_constructor_declarator_p): Likewise.
3337 2007-07-12 Kazu Hirata <kazu@codesourcery.com>
3339 * pt.c (template_parms_variadic_p): Remove.
3340 * cp-tree.h: Remove the prototype for template_parms_variadic_p.
3342 2007-07-12 Jakub Jelinek <jakub@redhat.com>
3345 * error.c (dump_expr) <case AGGR_INIT_EXPR>: Pass true as last
3346 argument to dump_aggr_init_expr_args instead of false.
3348 2007-07-11 Douglas Gregor <doug.gregor@gmail.com>
3350 * typeck.c (comptypes): When USE_CANONICAL_TYPES, use the
3351 canonical types; otherwise, fall back to structural type
3352 comparisons. If ENABLE_CHECKING and USE_CANONICAL_TYPES, give an
3353 internal compiler error if the canonical types are wrong.
3355 2007-07-11 Paolo Carlini <pcarlini@suse.de>
3358 * parser.c (cp_parser_make_indirect_declarator): When the
3359 the code argument is ERROR_MARK return cp_error_declarator.
3361 2007-07-09 Geoffrey Keating <geoffk@apple.com>
3364 * decl.c (cxx_init_decl_processing): Don't set
3365 force_align_functions_log.
3366 (grokfndecl): Honour ptrmemfunc_vbit_in_pfn.
3367 * typeck.c (cxx_alignof_expr): When alignof is used on a plain
3368 FUNCTION_DECL, return its alignment.
3370 2007-07-09 Richard Guenther <rguenther@suse.de>
3372 * decl.c (start_preparsed_function): Do not promote return type.
3374 2007-07-08 Paolo Carlini <pcarlini@suse.de>
3377 * pt.c (unify): Never pass error_mark_node to template_decl_level.
3379 2007-07-07 Mark Mitchell <mark@codesourcery.com>
3382 * pt.c (resolve_overloaded_unification): Robustify. Return a
3384 (type_unification_real): Adjust accordingly.
3386 2007-07-06 Richard Guenther <rguenther@suse.de>
3388 * init.c (build_new_1): Use the correct pointer type.
3389 * typeck2.c (build_m_component_ref): Likewise.
3391 2007-07-05 Mark Mitchell <mark@codesourcery.com>
3394 * init.c (build_zero_init): Always build an initializer for
3396 * typeck2.c (build_functional_cast): Use build_zero_init.
3399 * init.c (build_new_1): Always pass the allocation function to
3400 build_op_delete_call.
3401 * call.c (build_op_delete_call): Handle operator delete with a
3402 variable-argument list. Do not issue an error when no matching
3403 deallocation function is available for a new operator.
3406 * cp-tree.h (any_value_dependent_elements_p): Declare it.
3407 * decl.c (value_dependent_init_p): New function.
3408 (cp_finish_decl): Use it.
3409 * pt.c (value_dependent_expression_p): Use
3410 any_value_dependent_elements_p.
3411 * parser.c (cp_parser_primary_expression): Add comment about
3412 treating dependent qualified names as integral
3413 constant-expressions.
3415 2007-07-04 Douglas Gregor <doug.gregor@gmail.com>
3417 * decl.c (build_ptrmemfunc_type): Always use structural equality
3418 tests when comparing pointer-to-member-function types, because the
3419 handling of TYPE_GET_PTRMEMFUNC_TYPE currently defeats canonical
3422 2007-07-03 Mark Mitchell <mark@codesourcery.com>
3424 * init.c (build_new): Tweak comment.
3426 2007-06-29 Dave Brolley <brolley@redhat.com>
3429 * parser.c (cp_parser_new_type_id): Don't reduce a named array
3430 type to its base type and number of elements here.
3431 * init.c (build_new): Call complete_type_or_else to ensure that the
3432 type is complete and to issue a diagnostic if it is not.
3433 (build_new_1): Don't call complete_type_or_else here.
3435 2007-07-03 Richard Guenther <rguenther@suse.de>
3438 * class.c (fixed_type_or_null): Re-lookup the hashtable slot
3441 2007-07-02 Simon Baldwin <simonb@google.com>
3443 * parser.c (cp_parser_elaborated_type_specifier): Added a warning
3444 for inner-style nested forward declarations that don't declare
3447 2007-07-02 Jakub Jelinek <jakub@redhat.com>
3450 * semantics.c (finish_omp_clauses): Use %qD instead of %qE for
3451 DECL_P in not a variable and appears more than once error messages.
3453 2007-07-01 Ollie Wild <aaw@google.com>
3455 * name-lookup.c (ambiguous_decl): Fix case when new->value is hidden.
3456 (select_decl): Remove function.
3457 (unqualified_namespace_lookup): Populate binding by calling
3458 ambiguous_decl. Remove select_decl call.
3459 (lookup_qualified_name): Remove select_decl call.
3460 * decl.c (lookup_and_check_tag): Check for ambiguous references.
3461 * parser.c (cp_parser_elaborated_type_specifier): Skip redundant error
3462 generation when name lookup is ambiguous.
3464 2007-06-29 Douglas Gregor <doug.gregor@gmail.com>