1 2009-04-28 Ben Elliston <bje@au.ibm.com>
6 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
8 * typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum.
10 2009-04-27 Ian Lance Taylor <iant@google.com>
12 * semantics.c (finish_omp_clauses): Change type of c_kind to enum
15 2009-04-27 Jakub Jelinek <jakub@redhat.com>
18 * cvt.c (convert_to_void) <case INDIRECT_REF>: Only warn about
19 -Wunused-value if implicit.
21 2009-04-24 Ian Lance Taylor <iant@google.com>
23 * call.c (build_temp): Change 0 to enum constant.
24 * cp-tree.h (cp_lvalue_kind): Typedef to int rather than enum
26 * cp-gimplify.c (cp_gimplify_expr): Add cast to enum type.
27 * decl2.c (constrain_visibility): Likewise.
28 * parser.c (cp_lexer_get_preprocessor_token): Likewise.
29 (cp_parser_flags): Typedef to int rather than enum type.
30 (cp_parser_expression_stack_entry): Change prec field to enum
33 * typeck.c (build_modify_expr): Add lhs_origtype parameter.
36 2009-04-22 Dodji Seketeli <dodji@redhat.com>
39 * parser.c (cp_parser_template_argument_list): Display an error
40 when an ellipsis is not preceded by a parameter pack. Also, warn
41 about variadic templates usage without -std=c++0x.
43 2009-04-21 Taras Glek <tglek@mozilla.com>
45 * cp-tree.h: Update GTY annotations to new syntax.
48 * name-lookup.c: Likewise.
49 * name-lookup.h: Likewise.
53 * semantics.c: Likewise.
54 * typeck2.c: Likewise.
56 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
59 * parser.c (cp_parser_error): Pass token->flags to c_parse_error.
61 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
64 * typeck.c (check_for_casting_away_constness): We diagnose casting
65 away any qualifiers not just constness.
66 (casts_away_constness): Mention that it handles more than just
69 2009-04-21 Joseph Myers <joseph@codesourcery.com>
71 * ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995,
72 ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999,
73 ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003,
74 ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
75 ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS,
76 cfns.gperf: Add copyright and license notices.
78 * ChangeLog, ChangeLog-2004: Correct dates.
80 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
83 * tree.c (lvalue_p_1): Use const_tree.
84 Use CONST_CAST_TREE to avoid warning.
85 (lvalue_p): Returns bool, receives const_tree.
87 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
90 * parser.c (cp_parser_check_decl_spec): Drop redundant flags.
91 * error.c (pedwarn_cxx98): New.
92 * cp-tree.h (pedwarn_cxx98): Declare.
94 2009-04-20 Le-Chun Wu <lcwu@google.com>
97 * init.c (build_vec_init): Set TREE_NO_WARNING on the
98 compiler-generated INDIRECT_REF expression.
100 2009-04-20 Ian Lance Taylor <iant@google.com>
102 * typeck.c (build_function_call_vec): New function.
103 (cp_build_function_call): Only pass first parameter to
104 objc_rewrite_function_call.
105 (build_modify_expr): Add rhs_origtype parameter. Change all
107 * decl.c (finish_decl): Add origtype parameter. Change all
109 * semantics.c (finish_call_expr): Pass VEC to
110 resolve_overloaded_builtin.
112 2009-04-20 Ian Lance Taylor <iant@google.com>
114 * cp-tree.h (base_access): Change typedef to int.
115 * parser.c (cp_parser_omp_flush): Change 0 to OMP_CLAUSE_ERROR.
116 (cp_parser_omp_threadprivate): Likewise.
117 * pt.c (unify_pack_expansion): Add casts to enum type.
119 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
123 * call.c (build_new_op): Save the original codes of operands
126 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
128 * cp-tree.h: Remove the prototype for insert_block.
129 * decl.c (insert_block): Remove.
131 2009-04-16 Ian Lance Taylor <iant@google.com>
133 * cp-tree.h (enum tsubst_flags): Rename from enum tsubst_flags_t.
134 (tsubst_flags_t): Change typedef from enum type to int.
136 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
138 * decl.c (check_initializer): Use TYPE_VECTOR_OPAQUE
139 instead of targetm.vector_opaque_p.
141 2009-04-15 Le-Chun Wu <lcwu@google.com>
144 * call.c (build_over_call): Set TREE_NO_WARNING on the
145 compiler-generated INDIRECT_REF expression.
146 * cvt.c (convert_to_void): Emit warning when stripping off
149 2009-04-14 Diego Novillo <dnovillo@google.com>
151 * parser.c (cp_parser_type_specifier_seq): Move call to
152 invoke_plugin_callbacks ...
153 (cp_parser_type_specifier_seq): ... here.
155 2009-04-14 Le-Chun Wu <lcwu@google.com>
157 * Make-lang.in: Modify dependencies of files including plugin.h.
158 * decl.c (finish_function): Call invoke_plugin_callbacks.
159 * parser.c (cp_parser_type_specifier): Call invoke_plugin_callbacks.
161 2009-04-14 Jason Merrill <jason@redhat.com>
164 * name-lookup.c (pushdecl_maybe_friend): Avoid all warnings
165 about shadowing by tentative parms.
167 2009-04-13 Jason Merrill <jason@redhat.com>
170 * call.c (build_over_call): Don't call memcpy if the target is
171 the same as the source.
173 2009-04-13 Jason Merrill <jason@redhat.com>
176 * pt.c (uses_template_parms): Handle CONSTRUCTOR.
178 2009-04-12 Jason Merrill <jason@redhat.com>
181 * call.c (joust): Don't crash on variadic fn.
183 2009-04-10 Jason Merrill <jason@redhat.com>
186 * parser.c (cp_parser_skip_to_end_of_block_or_statement): Return
187 if we see a close brace without an open brace.
189 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
191 * parser.c (cp_parser_class_specifier): Remove the unused
192 has_trailing_semicolon.
194 2009-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
197 * parser.c (cp_parser_check_template_parameters): Take a
198 cp_declarator parameter.
199 (cp_parser_elaborated_type_specifier): Update to
200 cp_parser_check_template_parameters.
201 (cp_parser_class_head): Likewise.
202 (cp_parser_check_declarator_template_parameters): Likewise.
203 (cp_parser_check_template_parameters): Handle first the non-error
204 conditions. Give more accurate diagnostics if a declarator is
207 2009-04-08 Jason Merrill <jason@redhat.com>
210 * error.c (dump_aggr_type): Chase template typedefs if
211 -fno-pretty-templates.
213 2009-04-08 Dodji Seketeli <dodji@redhat.com>
216 * parser.c (cp_parser_enumerator_definition): Make sure the
217 initializer of the enumerator doesn't contain any bare parameter pack.
219 2009-04-07 Jason Merrill <jason@redhat.com>
222 * name-lookup.c (merge_functions): Keep multiple extern "C" functions.
223 * call.c (joust): Complain about mismatched default arguments
224 in extern "C" functions.
225 * class.c (resolve_address_of_overloaded_function): Handle multiple
226 extern "C" functions.
227 * pt.c (resolve_overloaded_unification): Likewise.
229 2009-04-07 Jason Merrill <jason@redhat.com>
232 * error.c (dump_function_decl): Don't pretty-print templates
233 if -fno-pretty-templates.
234 (count_non_default_template_args): Print all args if
235 -fno-pretty-templates.
237 2009-04-06 Jason Merrill <jason@redhat.com>
240 * pt.c (fn_type_unification): For DEDUCE_EXACT check that
241 the deduced template arguments give us the parameter types
244 2009-04-05 Giovanni Bajo <giovannibajo@libero.it>
245 Jason Merrill <jason@redhat.com>
248 * error.c (count_non_default_template_args): New fn.
249 (dump_template_parms): Call it.
250 (dump_template_argument_list): Call it. Add parms parm.
251 (dump_template_argument): Adjust call to dump_template_argument_list.
252 (dump_type, dump_decl): Likewise.
253 (dump_template_bindings): Refactor logic.
255 2009-04-03 Jason Merrill <jason@redhat.com>
258 * error.c (dump_template_bindings): Look through typedefs in
260 (dump_type) [TYPENAME_TYPE]: Print the typedef name if any.
261 (find_typenames_r): Also collect typedefs.
262 * pt.c (unify): Strip typedefs.
265 * semantics.c (finish_id_expression): Don't assume a dependent
266 member of the current instantiation isn't a valid integral
267 constant expression. Check dependent_scope_p.
268 * pt.c (dependent_scope_p): Check TYPE_P.
269 (tsubst_copy): If args is null, just return.
271 2009-04-02 Jason Merrill <jason@redhat.com>
274 * error.c (find_typenames, find_typenames_r): New fns.
275 (dump_function_decl): Call find_typenames.
276 (dump_template_bindings): Print typenames as well.
277 * pt.c (tsubst): Non-static.
278 * cp-tree.h: Declare it.
280 2009-04-02 Dodji Seketeli <dodji@redhat.com>
283 * decl2.c (grokfield): when a typedef appears in a
284 class, create the typedef variant type node for it.
285 (save_template_attributes): Creating typedef variant type node
287 * decl.c (grokdeclarator): If the typedef'ed struct/class was
288 anonymous, set the proper type name to all its type variants.
289 (xref_basetypes) : Fixup the variant types after setting
291 * name-lookup.c (pushdecl_maybe_friend): Reuse the
292 set_underlying_type function to install typedef variant types.
293 * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor
295 (append_type_to_template_for_access_check): New entry points.
296 * semantics.c (check_accessibility_of_qualified_id):
297 When a typedef that is a member of a class appears in a template,
298 add it to the template. It will be ...
299 * class.c (finish_struct_bits): Split type variant fixup into ...
300 (fixup_type_variants): A new entry point.
301 * pt.c (instantiate_class_template, instantiate_template ): ... access
302 checked at template instantiation time.
303 (resolve_type_name_type): The type name should be the name of the
305 (retrieve_specialization): Specializations of template typedefs aren't
306 to looked up in DECL_TEMPLATE_INSTANTIATIONS (tmpl).
307 (append_type_to_template_for_access_check): New entry point.
308 (tsubst_decl): For typedefs, build the variant type from the correct
310 (get_class_bindings): Fix function comment.
311 (perform_typedefs_access_check): New entry point.
313 2009-03-31 Jason Merrill <jason@redhat.com>
316 * name-lookup.c (pushdecl_maybe_friend): Diagnose mismatched
317 extern "C" declarations.
320 * semantics.c (finish_non_static_data_member): Allow such references
321 without an associated object in sizeof/decltype/alignof.
323 * ptree.c (cxx_print_decl): Pretty-print full name of
325 (cxx_print_type): Pretty-print full name of class.
327 * decl.c (grokdeclarator): Reject pointer to qualified function
330 PR c++/37806, core issue 547
331 * typeck.c (cp_apply_type_quals_to_decl): Don't apply any quals
333 * tree.c (cp_build_qualified_type_real): Don't apply restrict to a
335 * decl.h (enum decl_context): Add TEMPLATE_TYPE_ARG.
336 * decl.c (groktypename): Add is_template_arg parameter.
337 (grokdeclarator): Allow function cv-quals on a template type arg.
338 * parser.c (cp_parser_new_type_id, cp_parser_type_id): Add
339 is_template_arg argument in calls to groktypename.
340 * cp-tree.h: Adjust prototype.
341 * error.c (dump_type_prefix, dump_type_suffix): Fix plain
342 FUNCTION_TYPE printing.
344 * mangle.c (write_expression): Mangle dependent name as
347 PR c++/38030, 38850, 39070
348 * pt.c (type_dependent_expression_p_push): New fn.
349 (tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the
350 substitution makes the call non-dependent. Preserve koenig_p.
351 * parser.c (cp_parser_postfix_expression): Only do arg-dep lookup
352 for non-dependent calls.
353 * semantics.c (finish_call_expr): Revert earlier changes.
354 * cp-tree.h: Revert change to finish_call_expr prototype.
356 2009-03-29 Joseph Myers <joseph@codesourcery.com>
358 PR preprocessor/34695
359 * cp-tree.h (cp_cpp_error): Remove.
360 * error.c (cp_cpp_error): Remove.
361 * parser.c (cp_lexer_new_main): Set done_lexing instead of
362 client_diagnostic and error callback.
364 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
366 * cp/cp-objcp-common.h (LANG_HOOKS_STATICP): Remove.
367 * cp/cp-objcp-common.c (cxx_staticp): Remove.
368 * cp/cp-tree.h (cxx_staticp): Remove.
370 2009-03-28 Jakub Jelinek <jakub@redhat.com>
373 * parser.c (cp_parser_postfix_expression): Don't call
374 warning_if_disallowed_function_p.
376 2009-03-27 Jan Hubicka <jh@suse.cz>
378 * except.c (choose_personality_routine): Set terminate_node to abort
381 2009-03-27 Dodji Seketeli <dodji@redhat.com>
382 Jakub Jelinek <jakub@redhat.com>
385 * cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
386 (cp_function_decl_explicit_p): New prototype.
387 * cp-objcp-common.c (cp_function_decl_explicit_p): New function.
389 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
392 * parser.c (cp_parser_elaborated_type_specifier): If we have a
393 typename tag and don't have either a TYPE_DECL or a
394 TEMPLATE_ID_EXPR, set the type to NULL.
396 2009-03-27 Simon Martin <simartin@users.sourceforge.net>
399 * decl.c (grokdeclarator): Reject [con|de]stuctors in a non-class
402 2009-03-27 Simon Martin <simartin@users.sourceforge.net>
405 * decl.c (check_array_designated_initializer): Handle error_mark_node.
407 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
410 * typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum.
412 2009-03-26 Andrew Haley <aph@redhat.com>
415 * decl2.c (possibly_inlined_p): If java exceptions are in use
416 don't inline a decl unless it is explicitly marked inline.
417 * lex.c: (pragma_java_exceptions): New variable.
418 (handle_pragma_java_exceptions): Set pragma_java_exceptions.
419 * cp-tree.h (pragma_java_exceptions): Declare new variable.
421 2009-03-24 Jason Merrill <jason@redhat.com>
424 * name-lookup.c (pushdecl_maybe_friend): Check default args later.
426 2009-03-23 Jakub Jelinek <jakub@redhat.com>
429 * semantics.c (handle_omp_for_class_iterator): Swap cond operands and
430 code if iter is the second operand.
431 * parser.c (cp_parser_binary_expression): Add no_toplevel_fold_p
432 argument. If it is set, don't build the toplevel expression with
433 build_x_binary_op, but build2.
434 (cp_parser_assignment_expression, cp_parser_omp_for_incr): Adjust
436 (cp_parser_omp_for_cond): Don't assume the first operand of the
437 comparison must be decl.
439 2009-03-23 Jason Merrill <jason@redhat.com>
442 * pt.c (make_fnparm_pack): Split out from...
443 (instantiate_decl): ...here.
444 (tsubst_pack_expansion): Handle being called in a late-specified
448 * name-lookup.c (pushdecl_maybe_friend): Don't warn about shadowing
451 2009-03-20 Jason Merrill <jason@redhat.com>
454 * parser.c (cp_parser_direct_declarator): In a template, wrap
455 non-constant expression in NOP_EXPR with TREE_SIDE_EFFECTS set.
456 * pt.c (tsubst): Preserve it in a partial instantiation.
457 (dependent_type_p_r): Don't check value_dependent_expression_p.
458 * decl.c (compute_array_index_type): Don't check
459 value_dependent_expression_p if TREE_SIDE_EFFECTS.
462 * typeck2.c (check_narrowing): Don't complain about loss of
463 precision when converting a floating-point constant.
465 2009-03-19 Jakub Jelinek <jakub@redhat.com>
468 * parser.c (cp_parser_omp_for_cond): Don't check lhs if decl is NULL.
469 (cp_parser_omp_for_loop): Always use cp_parser_omp_for_cond.
471 2009-03-18 Jakub Jelinek <jakub@redhat.com>
473 * parser.c (struct cp_token): Reorder fields for 64-bit hosts.
476 2009-03-18 H.J. Lu <hongjiu.lu@intel.com>
479 * parser.c (cp_parser_explicit_specialization): Don't skip the
480 rest of the specialization when begin_specialization returns
483 2009-03-17 Jason Merrill <jason@redhat.com>
485 * decl.c (grokfndecl): Set DECL_CONTEXT on parms.
486 (duplicate_decls): Adjust DECL_CONTEXT of newdecl's parms.
487 * pt.c (check_explicit_specialization): Likewise.
488 (tsubst_copy) [PARM_DECL]: Return a dummy parm if we don't have a
489 local specialization.
490 * tree.c (cp_tree_equal) [PARM_DECL]: Check type and index, not name.
491 * decl2.c (parm_index): New fn.
492 * semantics.c (finish_decltype_type): Don't use describable_type.
493 * mangle.c (write_expression): Likewise. Mangle ALIGNOF_EXPR.
494 Give a sorry for unsupported codes rather than crash. Mangle
495 conversions with other than 1 operand. New mangling for PARM_DECL.
496 * operators.def (ALIGNOF_EXPR): Mangle as "az".
498 2009-03-17 Jing Yu <jingyu@google.com>
501 * method.c (use_thunk): Change is_thunk from crtl to cfun.
503 2009-03-17 Paolo Carlini <paolo.carlini@oracle.com>
506 * semantics.c (check_trait_type): New.
507 (finish_trait_expr): Use it.
509 2009-03-17 Jakub Jelinek <jakub@redhat.com>
511 * name-lookup.c (cp_emit_debug_info_for_using): Emit USING_STMTs
512 instead of calling imported_module_or_decl debug hook if
513 building_stmt_tree ().
514 * cp-gimplify.c (cp_gimplify_expr): Don't assert the first operand
518 * name-lookup.c (do_namespace_alias): Don't call global_decl debug
519 hook at function scope.
522 * cp-gimplify.c (cp_gimplify_expr): Don't set DECL_NAME
525 2009-03-09 Jakub Jelinek <jakub@redhat.com>
528 * semantics.c (finish_switch_cond): Don't call get_unwidened.
529 * decl.c (finish_case_label): Pass SWITCH_STMT_TYPE as 3rd argument
530 instead of TREE_TYPE (cond).
532 2009-03-08 H.J. Lu <hongjiu.lu@intel.com>
535 * parser.c (cp_parser_late_parsing_default_args): Continue
536 the loop when cp_parser_assignment_expression returns
539 2009-03-07 Jason Merrill <jason@redhat.com>
542 * init.c (build_new_1): Don't use a VLA type.
543 (build_vec_init): Handle getting a pointer for BASE.
545 2009-03-06 H.J. Lu <hongjiu.lu@intel.com>
548 * cp-tree.h: Check NO_DOT_IN_LABEL before NO_DOLLAR_IN_LABEL
549 when mangling symbols.
551 2009-03-06 Paolo Carlini <paolo.carlini@oracle.com>
554 * error.c (dump_expr): Don't try to print THROW_EXPRs in full.
556 2009-03-06 Alexandre Oliva <aoliva@redhat.com>
558 * decl.c (record_builtin_java_type): Use canonicalized integer
561 2009-03-04 Jason Merrill <jason@redhat.com>
564 * class.c (is_really_empty_class): New fn.
565 * cp-tree.h: Declare it.
566 * cp-objcp-common.c (cp_expr_size): Use it.
569 * semantics.c (perform_koenig_lookup): Handle TEMPLATE_ID_EXPR.
570 * parser.c (cp_parser_postfix_expression): Call it for
572 * tree.c (is_overloaded_fn): Look through TEMPLATE_ID_EXPR.
573 (get_first_fn): Likewise.
579 * decl.c (make_typename_type): Do look inside currently open classes.
580 * parser.c (cp_parser_lookup_name): Likewise.
581 (cp_parser_template_name): Likewise.
582 * pt.c (dependent_scope_p): New function.
583 * cp-tree.h: Declare it.
584 * class.c (currently_open_class): Return fast if T isn't a class.
586 2009-02-26 H.J. Lu <hongjiu.lu@intel.com>
589 * parser.c (cp_parser_mem_initializer): Return error_mark_node
590 if cp_parser_mem_initializer_id returns error_mark_node.
592 2009-02-24 Richard Guenther <rguenther@suse.de>
595 * pt.c (instantiate_decl): Do not instantiate extern, non-inline
598 2009-02-23 H.J. Lu <hongjiu.lu@intel.com>
601 * pt.c (coerce_template_template_parms): Return 0 if parameter
604 2009-02-23 Jason Merrill <jason@redhat.com>
606 * pt.c (unify): Call maybe_adjust_types_for_deduction when
607 deducing from an initializer list.
609 2009-02-20 Jason Merrill <jason@redhat.com>
612 * decl.c (grokdeclarator): Handle ~identifier.
614 2009-02-19 Jakub Jelinek <jakub@redhat.com>
617 * decl2.c (determine_visibility): If visibility changed and
618 DECL_RTL has been already set, call make_decl_rtl to update symbol
621 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
624 * cp-tree.h (maybe_commonize_var): New.
626 * decl.c (maybe_commonize_var): Make it extern.
628 * decl2.c (finish_anon_union): Call maybe_commonize_var.
630 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
633 * parser.c (cp_parser_enum_specifier): Apply all attributes.
635 2009-02-18 Jason Merrill <jason@redhat.com>
637 * cfns.h: Tweak pathname for cfns.gperf.
639 2009-02-13 Jason Merrill <jason@redhat.com>
642 * semantics.c (finish_call_expr): Change koenig_p parm to int.
643 If -1, don't set KOENIG_LOOKUP_P but do keep hidden candidates.
644 * cp-tree.h: Adjust prototype.
645 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Pass -1.
647 2009-02-12 Jason Merrill <jason@redhat.com>
650 * pt.c (unify)[TEMPLATE_PARM_INDEX]: Convert to the tsubsted type.
652 2009-02-11 Jason Merrill <jason@redhat.com>
655 * decl2.c (cp_write_global_declarations):
656 Check DECL_DEFAULTED_FN, not DECL_ARTIFICIAL.
659 * init.c (build_value_init_noctor): Split out from...
660 (build_value_init): ...here.
661 (expand_aggr_init_1): Handle value-initialization.
662 * cp-tree.h: Add declaration.
663 * class.c (type_has_user_provided_constructor):
664 Handle non-class arguments.
666 2009-02-10 Jason Merrill <jason@redhat.com>
669 * class.c (defaultable_fn_p): Handle ... properly.
672 * tree.c (lvalue_p_1): Condition rvalue ref handling on
673 treat_class_rvalues_as_lvalues, too.
675 2009-02-10 Paolo Carlini <paolo.carlini@oracle.com>
678 * typeck.c (build_x_array_ref): New.
679 * cp-tree.h: Declare it.
680 * pt.c (tsubst_copy_and_build): Use it for case ARRAY_REF.
682 2009-02-09 Jason Merrill <jason@redhat.com>
685 * semantics.c (simplify_aggr_init_expr): Do zero-initialization here.
686 * init.c (build_value_init): Not here. Don't build a TARGET_EXPR.
687 * tree.c (get_target_expr): Handle AGGR_INIT_EXPR.
688 * cp-gimplify.c (cp_gimplify_init_expr): Remove special handling
689 for build_value_init TARGET_EXPR.
690 * cp-tree.h (AGGR_INIT_ZERO_FIRST): New macro.
692 2009-02-06 Paolo Carlini <paolo.carlini@oracle.com>
696 * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Check TREE_VEC_LENGTH.
698 2009-02-04 Jakub Jelinek <jakub@redhat.com>
701 * operators.def: Use COMPONENT_REF code for ->/pt operator again,
702 remove ./dt operator.
703 * mangle.c (write_expression): Handle COMPONENT_REF after handling
704 ADDR_EXPR, for COMPONENT_REF without ARROW_EXPR inside of it
705 write_string ("dt") instead of using operators.def.
707 2009-02-03 Jason Merrill <jason@redhat.com>
709 * typeck.c (cp_build_unary_op): Only complain about taking address
712 2009-02-03 Jakub Jelinek <jakub@redhat.com>
715 * parser.c (cp_parser_primary_expression): Reject FIXED_CSTs.
718 * typeck2.c (digest_init_r): Don't call process_init_constructor
721 2009-02-03 Paolo Bonzini <bonzini@gnu.org>
724 * pt.c (convert_nontype_argument_function): Expect expr to be an
728 * typeck.c (merge_types): Call resolve_typename_type if only
729 one type is a typename.
731 2009-02-02 Jason Merrill <jason@redhat.com>
734 * parser.c (cp_parser_unqualified_id): Don't wrap error_mark_node
737 2009-02-01 Paolo Carlini <paolo.carlini@oracle.com>
740 * parser.c (cp_parser_pure_specifier): If there are no tokens left
741 do not call cp_lexer_consume_token.
743 2009-01-30 Jakub Jelinek <jakub@redhat.com>
746 * parser.c (cp_parser_already_scoped_statement): Handle __label__
749 2009-01-30 Paolo Carlini <paolo.carlini@oracle.com>
752 * error.c (dump_expr): Handle FIX_TRUNC_EXPR and FLOAT_EXPR.
754 2009-01-30 Paolo Carlini <paolo.carlini@oracle.com>
757 * error.c (dump_type_prefix, dump_type_suffix): Handle FIXED_POINT_TYPE.
759 2009-01-29 Paolo Carlini <paolo.carlini@oracle.com>
761 * typeck.c (invalid_nonstatic_memfn_p): Use
762 DECL_NONSTATIC_MEMBER_FUNCTION_P.
764 2009-01-27 Paolo Carlini <paolo.carlini@oracle.com>
767 * call.c (build_over_call): If convert_for_arg_passing returns
768 error_mark_node unconditionally return it.
770 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
772 * class.c (check_field_decls): Also inherit packed for bitfields
773 regardless of their type.
775 2009-01-22 Dodji Seketeli <dodji@redhat.com>
778 * decl2.c (grokfield): Reverting changes of PR c++/26693
779 (save_template_attributes): Likewise.
780 * decl.c (grokdeclarator): Likewise.
781 * name-lookup.c (pushdecl_maybe_friend): Likewise.
782 * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): Likewise.
783 (append_type_to_template_for_access_check): Likewise.
784 * semantics.c (check_accessibility_of_qualified_id): Likewise.
785 * pt.c (instantiate_class_template, instantiate_template ): Likewise.
787 (resolve_type_name_type): Likewise.
788 (append_type_to_template_for_access_check): Likewise.
790 2009-01-21 Dodji Seketeli <dodji@redhat.com>
793 * decl2.c (grokfield): when a typedef appears in a
794 class, create the typedef variant type node for it.
795 (save_template_attributes): Creating typedef variant type node
797 * decl.c (grokdeclarator): If the typedef'ed struct/class was
798 anonymous, set the proper type name to all its type variants.
799 * name-lookup.c (pushdecl_maybe_friend): Reuse the
800 set_underlying_type function to install typedef variant types.
801 * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor
803 (append_type_to_template_for_access_check): New entry points.
804 * semantics.c (check_accessibility_of_qualified_id):
805 When a typedef that is a member of a class appears in a template,
806 add it to the template. It will be ...
807 * pt.c (instantiate_class_template, instantiate_template ): ... access
808 checked at template instantiation time.
809 (tsubst): Handle the case of being called with NULL args.
810 (resolve_type_name_type): The type name should be the name of the
812 (append_type_to_template_for_access_check): New entry point.
814 2009-01-19 Jason Merrill <jason@redhat.com>
817 * parser.c (cp_parser_unqualified_id): In a template,
819 * typeck.c (lookup_destructor): Handle IDENTIFIER_NODE.
821 2009-01-16 Jason Merrill <jason@redhat.com>
824 * tree.c (lvalue_p_1): Allow non-fields in COMPONENT_REF.
825 * init.c (build_new): Don't call describable_type unless we
829 * pt.c (tsubst_decl) [USING_DECL]: Propagate access flags.
832 * search.c (protected_accessible_p): N doesn't vary.
834 2009-01-15 Jason Merrill <jason@redhat.com>
837 * pt.c (tsubst_copy_and_build): Tell finish_call_expr to
838 accept hidden friends.
840 2009-01-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
843 * decl.c (grokdeclarator): Check for a non namespace/class context.
845 2009-01-15 Jason Merrill <jason@redhat.com>
849 * tree.c (lvalue_p_1): Handle BASELINK. A COMPONENT_REF to
850 a function isn't necessarily an lvalue. Take tree, not const_tree.
851 (lvalue_p, real_lvalue_p): Take tree, not const_tree.
852 * typeck.c (lvalue_or_else): Likewise.
853 * cp-tree.h: Adjust prototypes.
855 2009-01-15 Steve Ellcey <sje@cup.hp.com>
858 * pt.c (tsubst): Check for NULL args.
860 2009-01-15 Dodji Seketeli <dodji@redhat.com>
863 * name-lookup.c (pushtag): Don't create members to types that are not
866 2009-01-14 Nick Clifton <nickc@redhat.com>
869 * parser.c: Pass cp_id_kind computed in
870 cp_parser_postfix_dot_deref_expression to
871 cp_parser_primary_expression.
873 2009-01-13 Jakub Jelinek <jakub@redhat.com>
876 * tree.c (cp_walk_subtrees): Handle REINTERPRET_CAST_EXPR,
877 STATIC_CAST_EXPR, CONST_CAST_EXPR and DYNAMIC_CAST_EXPR the same
880 2009-01-12 Jason Merrill <jason@redhat.com>
881 Steve Ellcey <sje@cup.hp.com>
884 * name-lookup.c (lookup_name_real): Keep looking past a hidden
887 2009-01-12 Dodji Seketeli <dodji@redhat.com>
890 * pt.c (parameter_of_template_p): New function.
891 * cp-tree.h: Declare it.
892 * name-lookup.c (binding_to_template_parms_of_scope_p): New
894 (outer_binding): Take template parameters in account when looking for
897 2009-01-12 Jason Merrill <jason@redhat.com>
900 * tree.c (pod_type_p): Return 1 for structs created by the back end.
902 2009-01-12 Jakub Jelinek <jakub@redhat.com>
905 * parser.c (cp_parser_builtin_offsetof): Allow `->' in
906 offsetof member-designator, handle it as `[0].'.
909 * decl.c (start_function): If grokdeclarator hasn't returned
910 FUNCTION_DECL nor error_mark_node, issue diagnostics.
912 2009-01-11 Jakub Jelinek <jakub@redhat.com>
915 * cp-gimplify.c (genericize_if_stmt): Renamed from ...
916 (gimplify_if_stmt): ... this.
917 (cp_gimplify_expr): Don't handle IF_STMT here.
918 (cp_genericize_r): Call genericize_if_stmt for IF_STMT.
920 2009-01-10 Andrew Pinski <pinskia@gmail.com>
923 * typeck.c (cp_build_modify_expr): Check for NULL current_function_decl.
926 * typeck2.c (build_functional_cast): Check for reference type and NULL
929 2009-01-09 Steve Ellcey <sje@cup.hp.com>
931 * typeck.c (cp_build_unary_op): Check for ERROR_MARK.
933 2009-01-09 Jakub Jelinek <jakub@redhat.com>
936 * error.c (dump_expr): Handle EXPR_STMT like BIND_EXPR.
938 2009-01-09 John F. Carr <jfc@mit.edu>
941 * parser.c (cp_parser_class_specifier): Clear
942 parser->in_unbraced_linkage_specification_p while parsing class
945 2009-01-07 Jakub Jelinek <jakub@redhat.com>
948 * semantics.c (finish_goto_stmt): Convert destination to
951 2009-01-06 Jason Merrill <jason@redhat.com>
958 * pt.c (check_default_tmpl_args): Don't complain about
959 out-of-order parameter packs in the enclosing class
960 or parameter packs after default args.
961 (coerce_template_parms): If we have more than one
962 parameter pack, don't flatten argument packs.
963 (template_args_equal): Handle argument packs.
964 (comp_template_args): Don't flatten argument packs.
965 (check_instantiated_arg): Split out from...
966 (check_instantiated_args): Here. Handle arg packs.
967 (convert_template_argument): Just check that nontype argument
968 packs have the right type.
970 2009-01-05 Dodji Seketeli <dodji@redhat.com>
973 * typeck.c (type_after_usual_arithmetic_conversions): Fix a typo.
975 2009-01-05 Jason Merrill <jason@redhat.com>
978 * typeck2.c (process_init_constructor_union): Handle union with
981 * mangle.c (write_expression): Remove mangling for zero-operand
985 * decl.c (cp_finish_decl): Clear DECL_INITIAL for invalid
989 * class.c (defaultable_fn_p): Only operator== can be a copy
992 2009-01-02 Jason Merrill <jason@redhat.com>
995 * typeck2.c (process_init_constructor_union): Handle excess
997 (process_init_constructor_record): Likewise.
1000 * typeck2.c (digest_init_r): Don't use process_init_constructor
1001 for non-aggregate classes.
1004 Copyright (C) 2009 Free Software Foundation, Inc.
1006 Copying and distribution of this file, with or without modification,
1007 are permitted in any medium without royalty provided the copyright
1008 notice and this notice are preserved.