OSDN Git Service

Daily bump.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2
3         * typeck.c (build_binary_op): Allow % on integal vectors.
4
5 2009-05-18  Jason Merrill  <jason@redhat.com>
6
7         Implement explicit conversions ops as specified in N2437.
8         * decl.c (grokdeclarator): Handle explicit conversion ops.
9         (check_initializer): Pass flags to store_init_value.
10         * decl2.c (maybe_emit_vtables): Likewise.
11         * init.c (expand_aggr_init_1): Likewise.
12         * call.c (convert_class_to_reference): Take flags parm,
13         check DECL_NONCONVERTING_P.
14         (build_user_type_conversion_1): Check DECL_NONCONVERTING_P.
15         (add_builtin_candidates): Simplify getting type of conversion.
16         (build_object_call): Likewise.  Check DECL_NONCONVERTING_P.
17         (implicit_conversion): Pass through LOOKUP_ONLYCONVERTING.
18         (reference_binding): Take flags parm.  Direct-initialize copy parm.
19         (add_function_candidate): Direct-initialize the copy parm.
20         (add_conv_candidate): Use LOOKUP_IMPLICIT, not LOOKUP_NORMAL.
21         (build_builtin_candidate): Add LOOKUP_ONLYCONVERTING.
22         (conditional_conversion): Likewise.
23         (convert_like_real): Only complain about DECL_NONCONVERTING_P
24         constructors.
25         (perform_implicit_conversion_flags): Add flags parm to
26         perform_implicit_conversion.  Improve diagnostics.
27         * cp-tree.h (LOOKUP_IMPLICIT): New macro.
28         (LOOKUP_COPY_PARM): New bit macro.
29         * cvt.c (build_expr_type_conversion): Check DECL_NONCONVERTING_P.
30         * typeck.c (convert_for_assignment): Take flags parm, pass it to
31         perform_implicit_conversion_flags.
32         (cp_build_modify_expr): Pass flags to convert_for_assignment.
33         (convert_for_initialization): Likewise.
34         * typeck2.c (store_init_value): Take flags parm, pass to
35         digest_init_flags.
36         (digest_init_flags): Add flags parm to digest_init.
37         (digest_init_r): Take flags parm, pass to convert_for_initialization.
38         (process_init_constructor_array): Pass it.
39         (process_init_constructor_record): Likewise.
40         (process_init_constructor_union): Likewise.
41
42 2009-05-16  Jason Merrill  <jason@redhat.com>
43
44         PR c++/40139
45         * pt.c (tsubst_qualified_id): Retain the type if we aren't dealing
46         with a dependent type.  Actually look up the destructor.
47         * semantics.c (finish_id_expression): Fix logic.
48         (finish_qualified_id_expr): Don't try to use 'this' if we aren't in
49         a function.
50         * typeck.c (build_x_unary_op): Diagnose taking the address of a
51         constructor or destructor.
52         * tree.c (get_first_fn): Handle OFFSET_REF.
53
54 2009-05-17  Joseph Myers  <joseph@codesourcery.com>
55
56         * tree.c (cxx_printable_name_internal): Allow consecutive
57         translated and untranslated cached copies of the name of the
58         current function.
59
60 2009-05-15  Ian Lance Taylor  <iant@google.com>
61
62         * cp-tree.h (enum cp_lvalue_kind_flags): Rename from
63         cp_lvalue_kind.  Change all uses.
64         (enum base_access_flags): Rename from enum base_access.  Change
65         all uses.
66         * parser.c (enum cp_parser_flags): Remove enum tag.
67
68 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
69
70         PR 16302
71         * call.c (build_new_op): Update calls to warn_logical_operator.
72
73 2009-05-14  Ian Lance Taylor  <iant@google.com>
74
75         * class.c (layout_class_type): Change itk to unsigned int.
76         * decl.c (finish_enum): Change itk to unsigned int.
77         * parser.c (cp_parser_check_decl_spec): Change ds to int.  Remove
78         casts.
79
80 2009-05-13  David Mandelin <dmandelin@mozilla.com>:
81
82         * decl.c (duplicate_decls): Preserve parameter attributes.
83
84 2009-05-10  Jan Hubicka  <jh@suse.cz>
85
86         * decl2.c (cxx_callgraph_analyze_expr): Use
87         cgraph_mark_address_taken.
88
89 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
90
91         * call.c (name_as_c_string): Call type_as_string_translate.
92         Translate identifiers to locale character set.
93         * cp-tree.h (lang_decl_name): Update prototype.
94         (type_as_string_translate, decl_as_string_translate,
95         cxx_printable_name_translate): Declare.
96         * cxx-pretty-print.c (M_): Define.
97         (pp_cxx_unqualified_id, pp_cxx_canonical_template_parameter): Mark
98         English fragments for conditional translation with M_.
99         * decl.c (grokdeclarator): Translate identifiers to locale
100         character set for diagnostics.
101         * error.c (M_): Define.
102         (dump_template_bindings, dump_type, dump_aggr_type,
103         dump_type_prefix, dump_global_iord, dump_simple_decl, dump_decl,
104         dump_function_decl, dump_template_parms, dump_expr,
105         dump_binary_op, op_to_string, assop_to_string): Mark English
106         fragments for conditional translation with M_.
107         (type_as_string): Disable translation of identifiers.
108         (type_as_string_translate): New.
109         (expr_as_string): Disable translation of identifiers.
110         (decl_as_string): Disable translation of identifiers.
111         (decl_as_string_translate): New.
112         (lang_decl_name): Add parameter translate.
113         (args_to_string): Call type_as_string_translate.
114         (cp_print_error_function): Call cxx_printable_name_translate.
115         (print_instantiation_full_context,
116         print_instantiation_partial_context): Call
117         decl_as_string_translate.
118         * parser.c (cp_lexer_get_preprocessor_token): Use %qE for
119         identifier in diagnostic.
120         * tree.c (cxx_printable_name): Change to
121         cxx_printable_name_internal.  Add parameter translate.
122         (cxx_printable_name, cxx_printable_name_translate): New wrappers
123         round cxx_printable_name_internal.
124
125 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
126
127         PR c/36892
128         * call.c (build_call_a): Updated warn_deprecated_use call.
129         (build_over_call): Likewise.
130         * decl.c (grokdeclarator): Likewise.
131         (grokparms): Likewise.
132         * semantics.c (finish_id_expression): Likewise.
133         * typeck.c (build_class_member_access_expr): Likewise.
134         (finish_class_member_access_expr): Likewise.
135
136 2009-05-06  Dodji Seketeli  <dodji@redhat.com>
137
138         PR c++/17395
139         * pt.c (tsubst_copy) <case PARM_DECL>: We don't want to tsubst the
140         whole list of PARM_DECLs, just the current one.
141
142 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
143
144         * cp-tree.h:
145         (opname_tab, assignop_tab, update_member_visibility, yyerror, yyhook,
146         mangle_compound_literal): Remove unused declarations.
147         (build_vfield_ref, cxx_print_statistics, clone_function_decl,
148         adjust_clone_args, maybe_push_cleanup_level, pushtag, make_anon_name,
149         pushdecl_top_level_maybe_friend, pushdecl_top_level_and_finish,
150         check_for_out_of_scope_variable, print_other_binding_stack,
151         maybe_push_decl, cxx_mark_addressable, force_target_expr,
152         build_target_expr_with_type, finish_case_label,
153         cxx_maybe_build_cleanup, begin_eh_spec_block, finish_eh_spec_block,
154         check_template_keyword, cxx_omp_predetermined_sharing,
155         cxx_omp_clause_default_ctor, cxx_omp_clause_copy_ctor,
156         cxx_omp_clause_assign_op, cxx_omp_clause_dtor, cxx_omp_finish_clause,
157         cxx_omp_privatize_by_reference): Rearrange the declarations line to
158         match the comment that indicates the .c file which the functions are
159         defined.
160         (cxx_print_xnode, cxx_print_decl, cxx_print_type,
161         cxx_print_identifier, cxx_print_error_function, pushdecl): Add comment.
162
163 2009-05-05  Nathan Sidwell  <nathan@codesourcery.com>
164
165         * typeck.c (cp_build_compound_expr): Require RHS to have a known
166         type.
167         * class.c (resolve_address_of_overloaded_function): Use
168         OVL_CURRENT for error message.
169         (instantiate_type): Forbid COMPOUND_EXPRs and remove code dealing
170         with them.  Do not copy the node.
171
172 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
173
174         PR c++/40013
175         * pt.c (tsubst): If magic NOP_EXPR with side-effects has no type,
176         set it from its operand's type after tsubst_expr.
177
178 2009-05-04  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
179
180         PR c++/28152
181         * parser.c (cp_lexer_get_preprocessor_token):  Do not store the
182         canonical spelling for keywords.
183         (cp_parser_attribute_list): Use the canonical spelling for
184         keywords in attributes.
185
186 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
187
188         * cxx-pretty-print.c (is_destructor_name, pp_cxx_unqualified_id,
189         pp_cxx_template_keyword_if_needed, pp_cxx_postfix_expression,
190         pp_cxx_new_expression, pp_cxx_delete_expression,
191         pp_cxx_unary_expression, pp_cxx_assignment_operator,
192         pp_cxx_assignment_expression, pp_cxx_expression,
193         pp_cxx_function_specifier, pp_cxx_decl_specifier_seq,
194         pp_cxx_simple_type_specifier, pp_cxx_type_specifier_seq,
195         pp_cxx_exception_specification, pp_cxx_direct_declarator,
196         pp_cxx_ctor_initializer, pp_cxx_type_id, pp_cxx_statement,
197         pp_cxx_namespace_alias_definition, pp_cxx_template_parameter,
198         pp_cxx_canonical_template_parameter, pp_cxx_template_declaration,
199         pp_cxx_declaration, pp_cxx_typeid_expression,
200         pp_cxx_va_arg_expression, pp_cxx_offsetof_expression,
201         pp_cxx_trait_expression): Mostly use pp_string and
202         pp_cxx_ws_string in place of pp_identifier and pp_cxx_identifier
203         for non-identifiers.  Mark English strings for translation.
204         * cxx-pretty-print.h (pp_cxx_ws_string): Define.
205         * error.c (dump_template_parameter, dump_template_bindings,
206         dump_type, dump_aggr_type, dump_type_prefix, dump_simple_decl,
207         dump_decl, dump_template_decl, dump_function_decl,
208         dump_parameters, dump_exception_spec, dump_template_parms,
209         dump_expr, dump_binary_op, dump_unary_op, op_to_string,
210         assop_to_string, args_to_string, cp_print_error_function,
211         print_instantiation_full_context,
212         print_instantiation_partial_context): Mostly use pp_string and
213         pp_cxx_ws_string in place of pp_identifier and pp_cxx_identifier
214         for non-identifiers.  Mark English strings for translation.
215         (dump_global_iord): Mark strings for translation; use longer
216         strings instead of substituting single words.
217         (function_category): Return a format string marked for
218         translation, not a single word or phrase to substitute in a longer
219         phrase.
220
221 2009-04-28  Ben Elliston  <bje@au.ibm.com>
222
223         PR c++/35652
224         Revert:
225
226         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
227
228         * typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum.
229
230 2009-04-27  Ian Lance Taylor  <iant@google.com>
231
232         * semantics.c (finish_omp_clauses): Change type of c_kind to enum
233         omp_clause_code.
234
235 2009-04-27  Jakub Jelinek  <jakub@redhat.com>
236
237         PR c++/39875
238         * cvt.c (convert_to_void) <case INDIRECT_REF>: Only warn about
239         -Wunused-value if implicit.
240
241 2009-04-24  Ian Lance Taylor  <iant@google.com>
242
243         * call.c (build_temp): Change 0 to enum constant.
244         * cp-tree.h (cp_lvalue_kind): Typedef to int rather than enum
245         type.
246         * cp-gimplify.c (cp_gimplify_expr): Add cast to enum type.
247         * decl2.c (constrain_visibility): Likewise.
248         * parser.c (cp_lexer_get_preprocessor_token): Likewise.
249         (cp_parser_flags): Typedef to int rather than enum type.
250         (cp_parser_expression_stack_entry): Change prec field to enum
251         cp_parser_prec.
252
253         * typeck.c (build_modify_expr): Add lhs_origtype parameter.
254         Change all callers.
255
256 2009-04-22  Dodji Seketeli  <dodji@redhat.com>
257
258         PR c++/39639
259         * parser.c (cp_parser_template_argument_list): Display an error
260         when an ellipsis is not preceded by a parameter pack. Also, warn
261         about variadic templates usage without -std=c++0x.
262
263 2009-04-21  Taras Glek <tglek@mozilla.com>
264
265         * cp-tree.h: Update GTY annotations to new syntax.
266         * decl.c: Likewise.
267         * mangle.c: Likewise.
268         * name-lookup.c: Likewise.
269         * name-lookup.h: Likewise.
270         * parser.c: Likewise.
271         * pt.c: Likewise.
272         * rtti.c: Likewise.
273         * semantics.c: Likewise.
274         * typeck2.c: Likewise.
275
276 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
277
278         PR c++/14875
279         * parser.c (cp_parser_error): Pass token->flags to c_parse_error.
280
281 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
282
283         PR c++/35711
284         * typeck.c (check_for_casting_away_constness): We diagnose casting
285         away any qualifiers not just constness.
286         (casts_away_constness): Mention that it handles more than just
287         constness.
288         
289 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
290
291         * ChangeLog, ChangeLog-1993, ChangeLog-1994, ChangeLog-1995,
292         ChangeLog-1996, ChangeLog-1997, ChangeLog-1998, ChangeLog-1999,
293         ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, ChangeLog-2003,
294         ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, ChangeLog-2007,
295         ChangeLog-2008, ChangeLog.ptr, ChangeLog.tree-ssa, NEWS,
296         cfns.gperf: Add copyright and license notices.
297         * cfns.h: Regenerate.
298         * ChangeLog, ChangeLog-2004: Correct dates.
299
300 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
301
302         PR 16202
303         * tree.c (lvalue_p_1): Use const_tree.
304         Use CONST_CAST_TREE to avoid warning.
305         (lvalue_p): Returns bool, receives const_tree.
306
307 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
308
309         PR c++/13358
310         * parser.c (cp_parser_check_decl_spec): Drop redundant flags.
311         * error.c (pedwarn_cxx98): New.
312         * cp-tree.h (pedwarn_cxx98): Declare.
313
314 2009-04-20  Le-Chun Wu  <lcwu@google.com>
315
316         PR c++/39803
317         * init.c (build_vec_init): Set TREE_NO_WARNING on the
318         compiler-generated INDIRECT_REF expression.
319
320 2009-04-20  Ian Lance Taylor  <iant@google.com>
321
322         * typeck.c (build_function_call_vec): New function.
323         (cp_build_function_call): Only pass first parameter to
324         objc_rewrite_function_call.
325         (build_modify_expr): Add rhs_origtype parameter.  Change all
326         callers.
327         * decl.c (finish_decl): Add origtype parameter.  Change all
328         callers.
329         * semantics.c (finish_call_expr): Pass VEC to
330         resolve_overloaded_builtin.
331
332 2009-04-20  Ian Lance Taylor  <iant@google.com>
333
334         * cp-tree.h (base_access): Change typedef to int.
335         * parser.c (cp_parser_omp_flush): Change 0 to OMP_CLAUSE_ERROR.
336         (cp_parser_omp_threadprivate): Likewise.
337         * pt.c (unify_pack_expansion): Add casts to enum type.
338
339 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
340
341         PR c/32061
342         PR c++/36954
343         * call.c (build_new_op): Save the original codes of operands
344         before folding.
345
346 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
347
348         * cp-tree.h: Remove the prototype for insert_block.
349         * decl.c (insert_block): Remove.
350
351 2009-04-16  Ian Lance Taylor  <iant@google.com>
352
353         * cp-tree.h (enum tsubst_flags): Rename from enum tsubst_flags_t.
354         (tsubst_flags_t): Change typedef from enum type to int.
355
356 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
357
358         * decl.c (check_initializer): Use TYPE_VECTOR_OPAQUE
359         instead of targetm.vector_opaque_p.
360
361 2009-04-15  Le-Chun Wu  <lcwu@google.com>
362
363         PR c++/39551
364         * call.c (build_over_call): Set TREE_NO_WARNING on the
365         compiler-generated INDIRECT_REF expression.
366         * cvt.c (convert_to_void): Emit warning when stripping off
367         INDIRECT_REF.
368
369 2009-04-14  Diego Novillo  <dnovillo@google.com>
370
371         * parser.c (cp_parser_type_specifier_seq): Move call to
372         invoke_plugin_callbacks ...
373         (cp_parser_type_specifier_seq): ... here.
374
375 2009-04-14  Le-Chun Wu  <lcwu@google.com>
376
377         * Make-lang.in: Modify dependencies of files including plugin.h.
378         * decl.c (finish_function): Call invoke_plugin_callbacks.
379         * parser.c (cp_parser_type_specifier): Call invoke_plugin_callbacks.
380
381 2009-04-14  Jason Merrill  <jason@redhat.com>
382
383         PR c++/39763
384         * name-lookup.c (pushdecl_maybe_friend): Avoid all warnings
385         about shadowing by tentative parms.
386
387 2009-04-13  Jason Merrill  <jason@redhat.com>
388
389         PR c++/39480
390         * call.c (build_over_call): Don't call memcpy if the target is
391         the same as the source.
392
393 2009-04-13  Jason Merrill  <jason@redhat.com>
394
395         PR c++/39750
396         * pt.c (uses_template_parms): Handle CONSTRUCTOR.
397
398 2009-04-12  Jason Merrill  <jason@redhat.com>
399
400         PR c++/39742
401         * call.c (joust): Don't crash on variadic fn.
402
403 2009-04-10  Jason Merrill  <jason@redhat.com>
404
405         PR c++/28301
406         * parser.c (cp_parser_skip_to_end_of_block_or_statement): Return
407         if we see a close brace without an open brace.
408
409 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
410
411         * parser.c (cp_parser_class_specifier): Remove the unused
412         has_trailing_semicolon.
413
414 2009-04-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
415
416         PR  c++/20118
417         * parser.c (cp_parser_check_template_parameters): Take a
418         cp_declarator parameter.
419         (cp_parser_elaborated_type_specifier): Update to
420         cp_parser_check_template_parameters.
421         (cp_parser_class_head): Likewise.
422         (cp_parser_check_declarator_template_parameters): Likewise.
423         (cp_parser_check_template_parameters): Handle first the non-error
424         conditions. Give more accurate diagnostics if a declarator is
425         given. 
426
427 2009-04-08  Jason Merrill  <jason@redhat.com>
428
429         PR c++/25185
430         * error.c (dump_aggr_type): Chase template typedefs if
431         -fno-pretty-templates.
432
433 2009-04-08  Dodji Seketeli  <dodji@redhat.com>
434
435         PR c++/39637
436         * parser.c (cp_parser_enumerator_definition): Make sure the
437         initializer of the enumerator doesn't contain any bare parameter pack.
438
439 2009-04-07  Jason Merrill  <jason@redhat.com>
440
441         PR c++/34691
442         * name-lookup.c (merge_functions): Keep multiple extern "C" functions.
443         * call.c (joust): Complain about mismatched default arguments
444         in extern "C" functions.
445         * class.c (resolve_address_of_overloaded_function): Handle multiple
446         extern "C" functions.
447         * pt.c (resolve_overloaded_unification): Likewise.
448
449 2009-04-07  Jason Merrill  <jason@redhat.com>
450
451         PR c++/25185
452         * error.c (dump_function_decl): Don't pretty-print templates
453         if -fno-pretty-templates.
454         (count_non_default_template_args): Print all args if
455         -fno-pretty-templates.
456
457 2009-04-06  Jason Merrill  <jason@redhat.com>
458
459         PR c++/35146
460         * pt.c (fn_type_unification): For DEDUCE_EXACT check that
461         the deduced template arguments give us the parameter types
462         we're looking for.
463
464 2009-04-05  Giovanni Bajo <giovannibajo@libero.it>
465             Jason Merrill  <jason@redhat.com>
466
467         PR c++/14912
468         * error.c (count_non_default_template_args): New fn.
469         (dump_template_parms): Call it.
470         (dump_template_argument_list): Call it.  Add parms parm.
471         (dump_template_argument): Adjust call to dump_template_argument_list.
472         (dump_type, dump_decl): Likewise.
473         (dump_template_bindings): Refactor logic.
474
475 2009-04-03  Jason Merrill  <jason@redhat.com>
476
477         PR c++/25185
478         * error.c (dump_template_bindings): Look through typedefs in
479         typename results.
480         (dump_type) [TYPENAME_TYPE]: Print the typedef name if any.
481         (find_typenames_r): Also collect typedefs.
482         * pt.c (unify): Strip typedefs.
483
484         PR c++/39608
485         * semantics.c (finish_id_expression): Don't assume a dependent
486         member of the current instantiation isn't a valid integral
487         constant expression.  Check dependent_scope_p.
488         * pt.c (dependent_scope_p): Check TYPE_P.
489         (tsubst_copy): If args is null, just return.
490
491 2009-04-02  Jason Merrill  <jason@redhat.com>
492
493         PR c++/25185
494         * error.c (find_typenames, find_typenames_r): New fns.
495         (dump_function_decl): Call find_typenames.
496         (dump_template_bindings): Print typenames as well.
497         * pt.c (tsubst): Non-static.
498         * cp-tree.h: Declare it.
499
500 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
501
502         PR c++/26693
503         * decl2.c (grokfield): when a typedef appears in a
504         class, create the typedef variant type node for it.
505         (save_template_attributes): Creating typedef variant type node
506          here is now useless.
507         * decl.c (grokdeclarator): If the typedef'ed struct/class was
508         anonymous, set the proper type name to all its type variants.
509         (xref_basetypes) : Fixup the variant types after setting
510         TYPE_BINFO on REF.
511         * name-lookup.c (pushdecl_maybe_friend): Reuse the
512         set_underlying_type function to install typedef variant types.
513         * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor
514         macro.
515         (append_type_to_template_for_access_check): New entry points.
516         * semantics.c (check_accessibility_of_qualified_id):
517         When a typedef that is a member of a class appears in a template,
518         add it to the template. It will be ...
519         * class.c (finish_struct_bits): Split type variant fixup into ...
520         (fixup_type_variants): A new entry point.
521         * pt.c (instantiate_class_template, instantiate_template ): ... access
522         checked at template instantiation time.
523         (resolve_type_name_type): The type name should be the name of the
524         main type variant.
525         (retrieve_specialization): Specializations of template typedefs aren't
526         to looked up in DECL_TEMPLATE_INSTANTIATIONS (tmpl).
527         (append_type_to_template_for_access_check): New entry point.
528         (tsubst_decl): For typedefs, build the variant type from the correct
529         original type.
530         (get_class_bindings): Fix function comment.
531         (perform_typedefs_access_check): New entry point.
532
533 2009-03-31  Jason Merrill  <jason@redhat.com>
534
535         PR c++/34691
536         * name-lookup.c (pushdecl_maybe_friend): Diagnose mismatched
537         extern "C" declarations.
538
539         C++ DR 613
540         * semantics.c (finish_non_static_data_member): Allow such references
541         without an associated object in sizeof/decltype/alignof.
542
543         * ptree.c (cxx_print_decl): Pretty-print full name of
544         function/template.
545         (cxx_print_type): Pretty-print full name of class.
546
547         * decl.c (grokdeclarator): Reject pointer to qualified function
548         type.
549
550         PR c++/37806, core issue 547
551         * typeck.c (cp_apply_type_quals_to_decl): Don't apply any quals
552         to a typedef.
553         * tree.c (cp_build_qualified_type_real): Don't apply restrict to a 
554         function type.
555         * decl.h (enum decl_context): Add TEMPLATE_TYPE_ARG.
556         * decl.c (groktypename): Add is_template_arg parameter.
557         (grokdeclarator): Allow function cv-quals on a template type arg.
558         * parser.c (cp_parser_new_type_id, cp_parser_type_id): Add
559         is_template_arg argument in calls to groktypename.
560         * cp-tree.h: Adjust prototype.
561         * error.c (dump_type_prefix, dump_type_suffix): Fix plain 
562         FUNCTION_TYPE printing.
563         
564         * mangle.c (write_expression): Mangle dependent name as
565         source-name.
566
567         PR c++/38030, 38850, 39070
568         * pt.c (type_dependent_expression_p_push): New fn.
569         (tsubst_copy_and_build) [CALL_EXPR]: Only do arg-dep lookup when the
570         substitution makes the call non-dependent.  Preserve koenig_p.
571         * parser.c (cp_parser_postfix_expression): Only do arg-dep lookup
572         for non-dependent calls.
573         * semantics.c (finish_call_expr): Revert earlier changes.
574         * cp-tree.h: Revert change to finish_call_expr prototype.
575
576 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
577
578         PR preprocessor/34695
579         * cp-tree.h (cp_cpp_error): Remove.
580         * error.c (cp_cpp_error): Remove.
581         * parser.c (cp_lexer_new_main): Set done_lexing instead of
582         client_diagnostic and error callback.
583
584 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
585
586         * cp/cp-objcp-common.h (LANG_HOOKS_STATICP): Remove.
587         * cp/cp-objcp-common.c (cxx_staticp): Remove.
588         * cp/cp-tree.h (cxx_staticp): Remove.
589
590 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
591
592         PR c++/39554
593         * parser.c (cp_parser_postfix_expression): Don't call
594         warning_if_disallowed_function_p.
595
596 2009-03-27  Jan Hubicka  <jh@suse.cz>
597
598         * except.c (choose_personality_routine): Set terminate_node to abort
599         for java exceptions.
600
601 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
602             Jakub Jelinek  <jakub@redhat.com>
603
604         PR debug/37959
605         * cp-objcp-common.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
606         (cp_function_decl_explicit_p): New prototype.
607         * cp-objcp-common.c (cp_function_decl_explicit_p): New function.
608
609 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
610
611         PR c++/38638
612         * parser.c (cp_parser_elaborated_type_specifier): If we have a
613         typename tag and don't have either a TYPE_DECL or a
614         TEMPLATE_ID_EXPR, set the type to NULL.
615
616 2009-03-27  Simon Martin  <simartin@users.sourceforge.net>
617
618         PR c++/37647
619         * decl.c (grokdeclarator): Reject [con|de]stuctors in a non-class
620         scope.
621
622 2009-03-27  Simon Martin  <simartin@users.sourceforge.net>
623
624         PR c++/29727
625         * decl.c (check_array_designated_initializer): Handle error_mark_node.
626
627 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
628
629         PR c++/35652
630         * typeck.c (cp_pointer_sum): Adjust call to pointer_int_sum.
631
632 2009-03-26  Andrew Haley  <aph@redhat.com>
633
634         PR C++/39380
635         * decl2.c (possibly_inlined_p): If java exceptions are in use
636         don't inline a decl unless it is explicitly marked inline.
637         * lex.c: (pragma_java_exceptions): New variable.
638         (handle_pragma_java_exceptions): Set pragma_java_exceptions.
639         * cp-tree.h (pragma_java_exceptions): Declare new variable.
640
641 2009-03-24  Jason Merrill  <jason@redhat.com>
642
643         PR c++/28274
644         * name-lookup.c (pushdecl_maybe_friend): Check default args later.
645
646 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
647
648         PR c/39495
649         * semantics.c (handle_omp_for_class_iterator): Swap cond operands and
650         code if iter is the second operand.
651         * parser.c (cp_parser_binary_expression): Add no_toplevel_fold_p
652         argument.  If it is set, don't build the toplevel expression with
653         build_x_binary_op, but build2.
654         (cp_parser_assignment_expression,  cp_parser_omp_for_incr): Adjust
655         callers.
656         (cp_parser_omp_for_cond): Don't assume the first operand of the
657         comparison must be decl.
658
659 2009-03-23  Jason Merrill  <jason@redhat.com>
660
661         PR c++/37729
662         * pt.c (make_fnparm_pack): Split out from...
663         (instantiate_decl): ...here.
664         (tsubst_pack_expansion): Handle being called in a late-specified
665         return type.
666
667         PR c++/39526
668         * name-lookup.c (pushdecl_maybe_friend): Don't warn about shadowing
669         a parm with a parm.
670
671 2009-03-20  Jason Merrill  <jason@redhat.com>
672
673         PR c++/28879
674         * parser.c (cp_parser_direct_declarator): In a template, wrap 
675         non-constant expression in NOP_EXPR with TREE_SIDE_EFFECTS set.
676         * pt.c (tsubst): Preserve it in a partial instantiation.
677         (dependent_type_p_r): Don't check value_dependent_expression_p.
678         * decl.c (compute_array_index_type): Don't check
679         value_dependent_expression_p if TREE_SIDE_EFFECTS.
680
681         C++ core issue 703
682         * typeck2.c (check_narrowing): Don't complain about loss of 
683         precision when converting a floating-point constant.
684
685 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
686
687         PR c/39495
688         * parser.c (cp_parser_omp_for_cond): Don't check lhs if decl is NULL.
689         (cp_parser_omp_for_loop): Always use cp_parser_omp_for_cond.
690
691 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
692
693         * parser.c (struct cp_token): Reorder fields for 64-bit hosts.
694         (eof_token): Adjust.
695
696 2009-03-18  H.J. Lu  <hongjiu.lu@intel.com>
697
698         PR c++/39425
699         * parser.c (cp_parser_explicit_specialization): Don't skip the
700         rest of the specialization when begin_specialization returns
701         false.
702
703 2009-03-17  Jason Merrill  <jason@redhat.com>
704
705         * decl.c (grokfndecl): Set DECL_CONTEXT on parms.
706         (duplicate_decls): Adjust DECL_CONTEXT of newdecl's parms.
707         * pt.c (check_explicit_specialization): Likewise.
708         (tsubst_copy) [PARM_DECL]: Return a dummy parm if we don't have a
709         local specialization.
710         * tree.c (cp_tree_equal) [PARM_DECL]: Check type and index, not name.
711         * decl2.c (parm_index): New fn.
712         * semantics.c (finish_decltype_type): Don't use describable_type.
713         * mangle.c (write_expression): Likewise.  Mangle ALIGNOF_EXPR.
714         Give a sorry for unsupported codes rather than crash.  Mangle
715         conversions with other than 1 operand.  New mangling for PARM_DECL.
716         * operators.def (ALIGNOF_EXPR): Mangle as "az".
717
718 2009-03-17  Jing Yu  <jingyu@google.com>
719
720         PR middle-end/39378
721         * method.c (use_thunk): Change is_thunk from crtl to cfun.
722
723 2009-03-17  Paolo Carlini  <paolo.carlini@oracle.com>
724
725         PR c++/39475
726         * semantics.c (check_trait_type): New.
727         (finish_trait_expr): Use it.
728
729 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
730
731         * name-lookup.c (cp_emit_debug_info_for_using): Emit USING_STMTs
732         instead of calling imported_module_or_decl debug hook if
733         building_stmt_tree ().
734         * cp-gimplify.c (cp_gimplify_expr): Don't assert the first operand
735         is a NAMESPACE_DECL.
736
737         PR debug/37890
738         * name-lookup.c (do_namespace_alias): Don't call global_decl debug
739         hook at function scope.
740
741         PR debug/39471
742         * cp-gimplify.c (cp_gimplify_expr): Don't set DECL_NAME
743         on IMPORTED_DECL.
744
745 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
746
747         PR c++/39371
748         * semantics.c (finish_switch_cond): Don't call get_unwidened.
749         * decl.c (finish_case_label): Pass SWITCH_STMT_TYPE as 3rd argument
750         instead of TREE_TYPE (cond).
751
752 2009-03-08  H.J. Lu  <hongjiu.lu@intel.com>
753
754         PR c++/39060
755         * parser.c (cp_parser_late_parsing_default_args): Continue
756         the loop when cp_parser_assignment_expression returns
757         error_mark_node.
758
759 2009-03-07  Jason Merrill  <jason@redhat.com>
760
761         PR c++/39367
762         * init.c (build_new_1): Don't use a VLA type.
763         (build_vec_init): Handle getting a pointer for BASE.
764
765 2009-03-06  H.J. Lu  <hongjiu.lu@intel.com>
766
767         PR c++/37520
768         * cp-tree.h: Check NO_DOT_IN_LABEL before NO_DOLLAR_IN_LABEL
769         when mangling symbols.
770
771 2009-03-06  Paolo Carlini  <paolo.carlini@oracle.com>
772
773         PR c++/33492
774         * error.c (dump_expr): Don't try to print THROW_EXPRs in full.
775
776 2009-03-06  Alexandre Oliva  <aoliva@redhat.com>
777
778         * decl.c (record_builtin_java_type): Use canonicalized integer
779         types.
780
781 2009-03-04  Jason Merrill  <jason@redhat.com>
782
783         PR c++/38908
784         * class.c (is_really_empty_class): New fn.
785         * cp-tree.h: Declare it.
786         * cp-objcp-common.c (cp_expr_size): Use it.
787
788         PR c++/13549
789         * semantics.c (perform_koenig_lookup): Handle TEMPLATE_ID_EXPR.
790         * parser.c (cp_parser_postfix_expression): Call it for 
791         TEMPLATE_ID_EXPR.
792         * tree.c (is_overloaded_fn): Look through TEMPLATE_ID_EXPR.
793         (get_first_fn): Likewise.
794
795         PR c++/9634
796         PR c++/29469
797         PR c++/29607
798         Implement DR 224.
799         * decl.c (make_typename_type): Do look inside currently open classes.
800         * parser.c (cp_parser_lookup_name): Likewise.
801         (cp_parser_template_name): Likewise.
802         * pt.c (dependent_scope_p): New function.
803         * cp-tree.h: Declare it.
804         * class.c (currently_open_class): Return fast if T isn't a class.
805
806 2009-02-26  H.J. Lu  <hongjiu.lu@intel.com>
807
808         PR c++/37789
809         * parser.c (cp_parser_mem_initializer): Return error_mark_node
810         if cp_parser_mem_initializer_id returns error_mark_node.
811
812 2009-02-24  Richard Guenther  <rguenther@suse.de>
813
814         PR c++/39242
815         * pt.c (instantiate_decl): Do not instantiate extern, non-inline
816         declared functions.
817
818 2009-02-23  H.J. Lu  <hongjiu.lu@intel.com>
819
820         PR c++/36411
821         * pt.c (coerce_template_template_parms): Return 0 if parameter
822         is error_mark_node.
823
824 2009-02-23  Jason Merrill  <jason@redhat.com>
825
826         * pt.c (unify): Call maybe_adjust_types_for_deduction when
827         deducing from an initializer list.
828
829 2009-02-20  Jason Merrill  <jason@redhat.com>
830
831         PR c++/39225
832         * decl.c (grokdeclarator): Handle ~identifier.
833
834 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
835
836         PR target/39175
837         * decl2.c (determine_visibility): If visibility changed and
838         DECL_RTL has been already set, call make_decl_rtl to update symbol
839         flags.
840
841 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
842
843         PR c++/39188
844         * cp-tree.h (maybe_commonize_var): New.
845
846         * decl.c (maybe_commonize_var): Make it extern.
847
848         * decl2.c (finish_anon_union): Call maybe_commonize_var.
849
850 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
851
852         PR c++/39219
853         * parser.c (cp_parser_enum_specifier): Apply all attributes.
854
855 2009-02-18  Jason Merrill  <jason@redhat.com>
856
857         * cfns.h: Tweak pathname for cfns.gperf.
858
859 2009-02-13  Jason Merrill  <jason@redhat.com>
860
861         PR c++/39070
862         * semantics.c (finish_call_expr): Change koenig_p parm to int.
863         If -1, don't set KOENIG_LOOKUP_P but do keep hidden candidates.
864         * cp-tree.h: Adjust prototype.
865         * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Pass -1.
866
867 2009-02-12  Jason Merrill  <jason@redhat.com>
868
869         PR c++/38950
870         * pt.c (unify)[TEMPLATE_PARM_INDEX]: Convert to the tsubsted type.
871
872 2009-02-11  Jason Merrill  <jason@redhat.com>
873
874         PR c++/39153
875         * decl2.c (cp_write_global_declarations): 
876         Check DECL_DEFAULTED_FN, not DECL_ARTIFICIAL.
877
878         PR c++/30111
879         * init.c (build_value_init_noctor): Split out from...
880         (build_value_init): ...here.
881         (expand_aggr_init_1): Handle value-initialization.
882         * cp-tree.h: Add declaration.
883         * class.c (type_has_user_provided_constructor): 
884         Handle non-class arguments.
885
886 2009-02-10  Jason Merrill  <jason@redhat.com>
887
888         PR c++/38649
889         * class.c (defaultable_fn_p): Handle ... properly.
890
891         PR c++/36744
892         * tree.c (lvalue_p_1): Condition rvalue ref handling on
893         treat_class_rvalues_as_lvalues, too.
894
895 2009-02-10  Paolo Carlini  <paolo.carlini@oracle.com>
896
897         PR c++/34397
898         * typeck.c (build_x_array_ref): New.
899         * cp-tree.h: Declare it.
900         * pt.c (tsubst_copy_and_build): Use it for case ARRAY_REF.
901
902 2009-02-09  Jason Merrill  <jason@redhat.com>
903
904         PR c++/39109
905         * semantics.c (simplify_aggr_init_expr): Do zero-initialization here.
906         * init.c (build_value_init): Not here. Don't build a TARGET_EXPR.
907         * tree.c (get_target_expr): Handle AGGR_INIT_EXPR.
908         * cp-gimplify.c (cp_gimplify_init_expr): Remove special handling
909         for build_value_init TARGET_EXPR.
910         * cp-tree.h (AGGR_INIT_ZERO_FIRST): New macro.
911
912 2009-02-06  Paolo Carlini  <paolo.carlini@oracle.com>
913
914         PR c++/35147
915         PR c++/37737
916         * cp-tree.h (TMPL_ARGS_HAVE_MULTIPLE_LEVELS): Check TREE_VEC_LENGTH.
917
918 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
919
920         PR c++/39095
921         * operators.def: Use COMPONENT_REF code for ->/pt operator again,
922         remove ./dt operator.
923         * mangle.c (write_expression): Handle COMPONENT_REF after handling
924         ADDR_EXPR, for COMPONENT_REF without ARROW_EXPR inside of it
925         write_string ("dt") instead of using operators.def.
926
927 2009-02-03  Jason Merrill  <jason@redhat.com>
928
929         * typeck.c (cp_build_unary_op): Only complain about taking address
930         of main if pedantic.
931
932 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
933
934         PR inline-asm/39059
935         * parser.c (cp_parser_primary_expression): Reject FIXED_CSTs.
936
937         PR c++/39056
938         * typeck2.c (digest_init_r): Don't call process_init_constructor
939         for COMPLEX_TYPE.
940
941 2009-02-03  Paolo Bonzini  <bonzini@gnu.org>
942
943         PR c++/36897
944         * pt.c (convert_nontype_argument_function): Expect expr to be an
945         ADDR_EXPR.
946
947         PR c++/37314
948         * typeck.c (merge_types): Call resolve_typename_type if only
949         one type is a typename.
950
951 2009-02-02  Jason Merrill  <jason@redhat.com>
952
953         PR c++/39054
954         * parser.c (cp_parser_unqualified_id): Don't wrap error_mark_node 
955         in BIT_NOT_EXPR.
956
957 2009-02-01  Paolo Carlini  <paolo.carlini@oracle.com>
958
959         PR c++/39053
960         * parser.c (cp_parser_pure_specifier): If there are no tokens left
961         do not call cp_lexer_consume_token.
962
963 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
964
965         PR c++/39028
966         * parser.c (cp_parser_already_scoped_statement): Handle __label__
967         declarations.
968
969 2009-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
970
971         PR c++/33465
972         * error.c (dump_expr): Handle FIX_TRUNC_EXPR and FLOAT_EXPR.
973
974 2009-01-30  Paolo Carlini  <paolo.carlini@oracle.com>
975
976         PR c++/38655
977         * error.c (dump_type_prefix, dump_type_suffix): Handle FIXED_POINT_TYPE.
978
979 2009-01-29  Paolo Carlini  <paolo.carlini@oracle.com>
980
981         * typeck.c (invalid_nonstatic_memfn_p): Use
982         DECL_NONSTATIC_MEMBER_FUNCTION_P.
983
984 2009-01-27  Paolo Carlini  <paolo.carlini@oracle.com>
985
986         PR c++/37554
987         * call.c (build_over_call): If convert_for_arg_passing returns
988         error_mark_node unconditionally return it.
989
990 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
991
992         * class.c (check_field_decls): Also inherit packed for bitfields
993         regardless of their type.
994
995 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
996
997         PR c++/38930
998         * decl2.c (grokfield): Reverting changes of PR c++/26693
999         (save_template_attributes): Likewise.
1000         * decl.c (grokdeclarator): Likewise.
1001         * name-lookup.c (pushdecl_maybe_friend): Likewise.
1002         * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): Likewise.
1003         (append_type_to_template_for_access_check): Likewise.
1004         * semantics.c (check_accessibility_of_qualified_id): Likewise.
1005         * pt.c (instantiate_class_template, instantiate_template ): Likewise.
1006         (tsubst): Likewise.
1007         (resolve_type_name_type): Likewise.
1008         (append_type_to_template_for_access_check): Likewise.
1009
1010 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
1011
1012         PR c++/26693
1013         * decl2.c (grokfield): when a typedef appears in a
1014         class, create the typedef variant type node for it.
1015         (save_template_attributes): Creating typedef variant type node
1016          here is now useless.
1017         * decl.c (grokdeclarator): If the typedef'ed struct/class was
1018         anonymous, set the proper type name to all its type variants.
1019         * name-lookup.c (pushdecl_maybe_friend): Reuse the
1020         set_underlying_type function to install typedef variant types.
1021         * cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): New template accessor
1022         macro.
1023         (append_type_to_template_for_access_check): New entry points.
1024         * semantics.c (check_accessibility_of_qualified_id):
1025         When a typedef that is a member of a class appears in a template,
1026         add it to the template. It will be ...
1027         * pt.c (instantiate_class_template, instantiate_template ): ... access
1028         checked at template instantiation time.
1029         (tsubst): Handle the case of being called with NULL args.
1030         (resolve_type_name_type): The type name should be the name of the
1031         main type variant.
1032         (append_type_to_template_for_access_check): New entry point.
1033
1034 2009-01-19  Jason Merrill  <jason@redhat.com>
1035
1036         PR c++/23287
1037         * parser.c (cp_parser_unqualified_id): In a template,
1038         accept ~identifier.
1039         * typeck.c (lookup_destructor): Handle IDENTIFIER_NODE.
1040
1041 2009-01-16  Jason Merrill  <jason@redhat.com>
1042
1043         PR c++/38877
1044         * tree.c (lvalue_p_1): Allow non-fields in COMPONENT_REF.
1045         * init.c (build_new): Don't call describable_type unless we
1046         have an auto.
1047
1048         PR c++/29470
1049         * pt.c (tsubst_decl) [USING_DECL]: Propagate access flags.
1050
1051         PR c++/38579
1052         * search.c (protected_accessible_p): N doesn't vary.
1053
1054 2009-01-15  Jason Merrill  <jason@redhat.com>
1055
1056         PR c++/38850
1057         * pt.c (tsubst_copy_and_build): Tell finish_call_expr to
1058         accept hidden friends.
1059
1060 2009-01-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1061
1062         PR C++/29388
1063         * decl.c (grokdeclarator): Check for a non namespace/class context.
1064
1065 2009-01-15  Jason Merrill  <jason@redhat.com>
1066
1067         PR c++/36334
1068         PR c++/37646
1069         * tree.c (lvalue_p_1): Handle BASELINK.  A COMPONENT_REF to
1070         a function isn't necessarily an lvalue. Take tree, not const_tree.
1071         (lvalue_p, real_lvalue_p): Take tree, not const_tree.
1072         * typeck.c (lvalue_or_else): Likewise.
1073         * cp-tree.h: Adjust prototypes.
1074
1075 2009-01-15  Steve Ellcey  <sje@cup.hp.com>
1076
1077         PR c++/38357
1078         * pt.c (tsubst): Check for NULL args.
1079
1080 2009-01-15  Dodji Seketeli  <dodji@redhat.com>
1081
1082         PR c++/38636
1083         * name-lookup.c (pushtag): Don't create members to types that are not
1084         being created.
1085
1086 2009-01-14  Nick Clifton  <nickc@redhat.com>
1087
1088         PR c++/37862
1089         * parser.c: Pass cp_id_kind computed in
1090         cp_parser_postfix_dot_deref_expression to
1091         cp_parser_primary_expression.
1092
1093 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
1094
1095         PR c++/38795
1096         * tree.c (cp_walk_subtrees): Handle REINTERPRET_CAST_EXPR,
1097         STATIC_CAST_EXPR, CONST_CAST_EXPR and DYNAMIC_CAST_EXPR the same
1098         as CAST_EXPR.
1099
1100 2009-01-12  Jason Merrill  <jason@redhat.com>
1101             Steve Ellcey  <sje@cup.hp.com>
1102
1103         PR c++/35109
1104         * name-lookup.c (lookup_name_real): Keep looking past a hidden 
1105         binding.
1106
1107 2009-01-12  Dodji Seketeli  <dodji@redhat.com>
1108
1109         PR c++/36019
1110         * pt.c (parameter_of_template_p): New function.
1111         * cp-tree.h: Declare it.
1112         * name-lookup.c (binding_to_template_parms_of_scope_p): New
1113         function.
1114         (outer_binding): Take template parameters in account when looking for
1115         a name binding.
1116
1117 2009-01-12  Jason Merrill  <jason@redhat.com>
1118
1119         PR c++/31488
1120         * tree.c (pod_type_p): Return 1 for structs created by the back end.
1121
1122 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
1123
1124         PR c/32041
1125         * parser.c (cp_parser_builtin_offsetof): Allow `->' in
1126         offsetof member-designator, handle it as `[0].'.
1127
1128         PR c++/38794
1129         * decl.c (start_function): If grokdeclarator hasn't returned
1130         FUNCTION_DECL nor error_mark_node, issue diagnostics.
1131
1132 2009-01-11  Jakub Jelinek  <jakub@redhat.com>
1133
1134         PR c++/36254
1135         * cp-gimplify.c (genericize_if_stmt): Renamed from ...
1136         (gimplify_if_stmt): ... this.
1137         (cp_gimplify_expr): Don't handle IF_STMT here.
1138         (cp_genericize_r): Call genericize_if_stmt for IF_STMT.
1139
1140 2009-01-10  Andrew Pinski  <pinskia@gmail.com>
1141
1142         PR c++/38648
1143         * typeck.c (cp_build_modify_expr): Check for NULL current_function_decl.
1144
1145         PR c++/36695
1146         * typeck2.c (build_functional_cast): Check for reference type and NULL
1147         PARMS.
1148
1149 2009-01-09  Steve Ellcey  <sje@cup.hp.com>
1150
1151         * typeck.c (cp_build_unary_op): Check for ERROR_MARK.
1152
1153 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
1154
1155         PR c++/35335
1156         * error.c (dump_expr): Handle EXPR_STMT like BIND_EXPR.
1157
1158 2009-01-09  John F. Carr  <jfc@mit.edu>
1159
1160         PR c++/37877
1161         * parser.c (cp_parser_class_specifier): Clear
1162         parser->in_unbraced_linkage_specification_p while parsing class
1163         specifiers.
1164
1165 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
1166
1167         PR c++/38725
1168         * semantics.c (finish_goto_stmt): Convert destination to
1169         void *.
1170
1171 2009-01-06  Jason Merrill  <jason@redhat.com>
1172
1173         PR c++/35297
1174         PR c++/35477
1175         PR c++/35784
1176         PR c++/36846
1177         PR c++/38276
1178         * pt.c (check_default_tmpl_args): Don't complain about
1179         out-of-order parameter packs in the enclosing class
1180         or parameter packs after default args.
1181         (coerce_template_parms): If we have more than one
1182         parameter pack, don't flatten argument packs.
1183         (template_args_equal): Handle argument packs.
1184         (comp_template_args): Don't flatten argument packs.
1185         (check_instantiated_arg): Split out from...
1186         (check_instantiated_args): Here.  Handle arg packs.
1187         (convert_template_argument): Just check that nontype argument
1188         packs have the right type.
1189
1190 2009-01-05  Dodji Seketeli  <dodji@redhat.com>
1191
1192         PR c++/38472
1193         * typeck.c (type_after_usual_arithmetic_conversions): Fix a typo.
1194
1195 2009-01-05  Jason Merrill  <jason@redhat.com>
1196
1197         PR c++/38698
1198         * typeck2.c (process_init_constructor_union): Handle union with
1199         no fields.
1200
1201         * mangle.c (write_expression): Remove mangling for zero-operand
1202         casts.
1203
1204         PR c++/38701
1205         * decl.c (cp_finish_decl): Clear DECL_INITIAL for invalid
1206         defaulting.
1207
1208         PR c++/38702
1209         * class.c (defaultable_fn_p): Only operator== can be a copy
1210         assignment operator.
1211
1212 2009-01-02  Jason Merrill  <jason@redhat.com>
1213
1214         PR c++/38698
1215         * typeck2.c (process_init_constructor_union): Handle excess
1216         initializers.
1217         (process_init_constructor_record): Likewise.
1218
1219         PR c++/38684
1220         * typeck2.c (digest_init_r): Don't use process_init_constructor
1221         for non-aggregate classes.
1222
1223 \f
1224 Copyright (C) 2009 Free Software Foundation, Inc.
1225
1226 Copying and distribution of this file, with or without modification,
1227 are permitted in any medium without royalty provided the copyright
1228 notice and this notice are preserved.