OSDN Git Service

Core 1232
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2011-03-28  Jason Merrill  <jason@redhat.com>
2
3         Core 1232
4         * call.c (build_array_conv): New.
5         (implicit_conversion): Use it.
6
7         * call.c (reference_binding): Allow direct binding to an array
8         rvalue.
9
10         Core 898
11         * parser.c (cp_parser_compound_statement): Add function_body parm.
12         Complain about non-body compound-stmt in constexpr fn.
13         (cp_parser_primary_expression, cp_parser_statement): Adjust.
14         (cp_parser_implicitly_scoped_statement): Adjust.
15         (cp_parser_function_body, cp_parser_try_block): Adjust.
16         (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
17         (cp_parser_objc_try_catch_finally_statement): Adjust.
18
19         Core 898
20         * semantics.c (constexpr_fn_retval): New.  Allow using-declaration
21         and using-definition.
22         (register_constexpr_fundef): Call it.
23
24         * except.c (build_noexcept_spec): Call cxx_constant_value after
25         converting to bool.
26
27 2011-03-25  Kai Tietz  <ktietz@redhat.com>
28
29         * lex.c (interface_strcmp): Handle dos-paths.
30         (handle_pragma_implementation): Use filename_cmp instead of
31         strcmp.
32         (in_main_input_context): Likewise.
33
34 2011-03-25  Jason Merrill  <jason@redhat.com>
35
36         Core 1135
37         * method.c (defaulted_late_check): Check for exception spec mismatch.
38         (defaultable_fn_check): Allow exception spec and virtual.
39         * class.c (check_for_override): A virtual dtor is non-trivial.
40
41         PR c++/48289
42         * pt.c (build_non_dependent_expr): Keep dereferences outside the
43         NON_DEPENDENT_EXPR.
44
45 2011-03-25  Kai Tietz  <ktietz@redhat.com>
46
47         * decl.c (decls_match): Replace target hook
48         call of comp_type_attributes by version in tree.c file.
49         * search.c (check_final_overrider): Likewise.
50         * typeck.c (structural_comptypes): Likewise.
51
52 2011-03-21  Kai Tietz  <ktietz@redhat.com>
53
54         PR target/12171
55         * cxx-pretty-print.c (pp_cxx_ptr_operator):
56         Display allowed attributes for function pointer types.
57         * error.c (dump_type_prefix): Likewise.
58
59         * tree.c (cxx_attribute_table): Adjust table.
60
61 2011-03-18  Jason Merrill  <jason@redhat.com>
62
63         PR c++/48162
64         * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
65
66         PR c++/48118
67         * call.c (build_over_call): Don't skip ck_rvalue.
68
69 2011-03-17  Jason Merrill  <jason@redhat.com>
70
71         PR c++/47504
72         * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
73         the conversion set TREE_OVERFLOW.
74
75         Core 1212
76         * semantics.c (finish_decltype_type): Return T&& for xvalue.
77         * typeck.c (unlowered_expr_type): Preserve cv-quals.
78
79         PR c++/48166
80         * decl.c (revert_static_member_fn): Strip function-cv-quals.
81
82 2011-03-16  Jason Merrill  <jason@redhat.com>
83
84         PR c++/48089
85         * semantics.c (potential_constant_expression_1): Don't allow *this
86         in a constructor.
87         (register_constexpr_fundef): Use potential_rvalue_constant_expression.
88
89         PR c++/47301
90         * decl.c (compute_array_index_type): Don't bother trying to deal
91         with literal classes in ABI v1.
92
93         PR c++/46336
94         * decl.c (duplicate_decls): Return NULL_TREE for clashing
95         C functions.
96
97         PR c++/47570
98         * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
99         use the generic binary expression handling.
100
101 2011-03-16  Diego Novillo  <dnovillo@google.com>
102
103         * Make-lang.in (CXX_PARSER_H): New.
104         (cp/parser.o): Add dependency on CXX_PARSER_H.
105         Add dependency on tree-pretty-print.h
106         (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
107         * cp-lang.c: Include parser.h.
108         * parser.c: Include parser.h.
109         (struct cp_token): Add bitfield purged_p.
110         Update all users.
111         Move to parser.h.
112         (CPP_PURGED): Remove.  Update all users.
113         (struct cp_lexer): Change field buffer to be a VEC of cp_token.
114         Remove field buffer_length.
115         Update all users.
116         Move to parser.h.
117         (struct tree_check): Move to parser.h.
118         (cp_token_position): Likewise.
119         (struct cp_token_cache): Likewise.
120         (CPP_KEYWORD): Likewise.
121         (CPP_TEMPLATE_ID): Likewise.
122         (CPP_NESTED_NAME_SPECIFIER): Likewise.
123         (N_CP_TTYPES): Likewise.
124         (enum cp_parser_status_kind): Likewise.
125         (struct cp_parser_context): Likewise.
126         (struct cp_default_arg_entry_d): Likewise.
127         (struct cp_unparsed_functions_entry_d): Likewise.
128         (struct cp_parser): Likewise.
129         (cp_lexer_dump_tokens): New.
130         (cp_lexer_debug_tokens): New.
131         (cp_lexer_finished_p): New.
132         (cp_lexer_alloc): Factor out of cp_lexer_new_main.
133         (cp_lexer_new_main): Re-write main lexing loop to push
134         tokens into the new VEC buffer.
135         (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
136         Do not abort if the token type is not recognized, just print
137         its code.
138         * parser.h: New file.
139         * config-lang.in (gtfiles): Add cp/parser.h.
140
141 2011-03-16  Jason Merrill  <jason@redhat.com>
142
143         Core 1148
144         * typeck.c (check_return_expr): Fix conditions for setting
145         LOOKUP_PREFER_RVALUE.
146
147         * call.c (build_over_call): Remove require_complete_type_sfinae call.
148
149         PR c++/48132
150         * decl.c (check_array_designated_initializer): Allow integer index.
151         (reshape_init_array_1): Set index on the elements.
152
153 2011-03-16  Jason Merrill  <jason@redhat.com>
154
155         PR c++/48113
156         * typeck.c (convert_for_initialization): Use
157         perform_implicit_conversion_flags.
158         * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
159         rvaluedness_matches_p on ck_rvalue.
160         (convert_like_real) [ck_rvalue]: And restore it here.
161
162         PR c++/48115
163         * call.c (convert_arg_to_ellipsis): Handle incomplete type.
164
165 2011-03-16  Jason Merrill  <jason@redhat.com>
166
167         * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
168         committed to this tentative parse.
169
170         PR c++/47999
171         * semantics.c (finish_call_expr): Preserve reference semantics
172         in templates.
173
174         * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
175
176 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
177
178         * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
179         DECL_LANG_SPECIFIC is NULL.
180
181 2011-03-15  Jason Merrill  <jason@redhat.com>
182
183         Core 1074
184         * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
185         check value_dependent_expression_p on the operand.
186
187         * semantics.c (push_cx_call_context): Return bool.
188         (cxx_eval_call_expression): Handle excess depth.
189
190         Core 1191
191         * method.c (synthesized_method_walk): Cleanups don't affect the
192         triviality of a constructor, but do affect deletion and exception
193         specification.
194
195 2011-03-15  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
196
197         * decl2.c (cp_check_const_attributes): New.
198         (cplus_decl_attributes): Call cp_check_const_attributes.
199
200 2011-03-15  Jason Merrill  <jason@redhat.com>
201
202         PR c++/34758
203         * call.c (convert_default_arg): Use DECL_ORIGIN of fn.  Check for
204         recursion first.
205         (push_defarg_context, pop_defarg_context): New.
206         * parser.c (cp_parser_late_parsing_default_args): Use them.
207         * cp-tree.h: Declare them.
208
209 2011-03-11  Dodji Seketeli  <dodji@redhat.com>
210
211         * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
212         the argument of the indirection operator should not be dependent.
213         Fix the comment.
214
215 2011-03-11  Jason Merrill  <jason@redhat.com>
216
217         PR c++/47125
218         * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
219
220         PR c++/47144
221         * parser.c (cp_parser_template_type_arg): Set
222         type_definition_forbidden_message.
223
224         PR c++/47808
225         * decl.c (compute_array_index_type): Discard folding
226         if it didn't produce a constant.
227
228 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
229
230         PR c++/48035
231         * init.c (build_zero_init_1): Extracted from build_zero_init.
232         Add FIELD_SIZE argument, if non-NULL and field bit_position
233         as not smaller than that, don't add that field's initializer.
234         Pass DECL_SIZE as last argument to build_zero_init_1
235         for DECL_FIELD_IS_BASE fields.
236         (build_zero_init): Use build_zero_init_1.
237
238 2011-03-10  Jason Merrill  <jason@redhat.com>
239
240         PR c++/48029
241         * pt.c (iterative_hash_template_arg): Remove special case for
242         ARRAY_TYPE.
243
244         PR c++/47198
245         * parser.c (cp_parser_single_declaration): Just return if
246         cp_parser_parse_and_diagnose_invalid_type_name complained.
247
248 2011-03-09  Jason Merrill  <jason@redhat.com>
249
250         PR c++/44629
251         * pt.c (unify): An unresolved overload is a nondeduced context.
252
253 2011-03-09  Martin Jambor  <mjambor@suse.cz>
254
255         PR tree-optimization/47714
256         * method.c (use_thunk): Clear addressable flag of thunk arguments.
257
258 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
259
260         PR c++/47705
261         * pt.c (convert_nontype_argument): Only call decay_conversion on
262         arrays.
263
264 2011-03-08  Jason Merrill  <jason@redhat.com>
265
266         PR c++/47488
267         * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
268
269         PR c++/47705
270         * pt.c (convert_nontype_argument): Don't crash on non-pointer
271         argument to pointer parameter.
272
273         PR c++/45651
274         * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
275         !TREE_PUBLIC decls.
276
277 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
278
279         PR c++/47957
280         * name-lookup.c (binding_to_template_parms_of_scope_p): Only
281         consider scopes of primary template definitions.  Adjust comments.
282
283 2011-03-07  Jason Merrill  <jason@redhat.com>
284
285         PR c++/48003
286         * pt.c (convert_nontype_argument): Fix -fpermissive allowing
287         integer overflow.
288         * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
289
290         PR c++/48015
291         * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
292
293         PR c++/48008
294         * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
295         (write_CV_qualifiers_for_type): Not here.
296
297 2011-03-06  Joseph Myers  <joseph@codesourcery.com>
298
299         * lang-specs.h: Match -save-temps* instead of -save-temps.
300
301 2011-03-05  Jason Merrill  <jason@redhat.com>
302
303         * mangle.c (write_expression): Change ABI v6 to v5.
304         (write_type): Likewise.
305
306 2011-03-04  Jan Hubicka  <jh@suse.cz>
307
308         PR lto/47497
309         * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
310         and cgraph_add_thunk.
311         * method.c (make_alias_for_thunk, use_thunk): Likewise.
312         * mangle.c (mangle_decl): Likewise.
313
314 2011-03-04  Jason Merrill  <jason@redhat.com>
315
316         PR c++/47971
317         * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
318         (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
319
320         PR c++/46220
321         * search.c (check_final_overrider): Allow pointer to same incomplete
322         class type with different cv-quals.
323
324 2011-03-03  Paolo Carlini  <paolo.carlini@oracle.com>
325
326         PR c++/47974
327         * pt.c (tsubst_template_args): Check argument t for error_mark_node.
328
329 2011-03-03  Jason Merrill  <jason@redhat.com>
330
331         PR c++/47950
332         * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
333
334 2011-03-02  Jason Merrill  <jason@redhat.com>
335
336         PR c++/47950
337         * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
338
339         PR c++/47774
340         * tree.c (build_vec_init_elt): Split out from...
341         (build_vec_init_expr): ...here.
342         (diagnose_non_constexpr_vec_init): New fn.
343         * semantics.c (potential_constant_expression_1): Use it.
344         * cp-tree.h: Declare it.
345
346 2011-03-01  Jason Merrill  <jason@redhat.com>
347
348         PR c++/46159
349         * parser.c (cp_parser_primary_expression): Don't warn about a
350         failed tentative parse.
351
352         PR c++/47200
353         * semantics.c (cxx_bind_parameters_in_call): Don't call
354         adjust_temp_type on non-constant args.
355
356         PR c++/47851
357         * call.c (standard_conversion): Provide requested cv-quals on
358         class rvalue conversion.
359
360         PR c++/46282
361         * decl2.c (grokbitfield): Handle type-dependent width.
362
363 2011-02-28  Jason Merrill  <jason@redhat.com>
364
365         PR c++/47873
366         * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
367         after checking for a non-thunk.
368
369 2011-02-26  Jason Merrill  <jason@redhat.com>
370
371         PR c++/47904
372         * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
373         * pt.c (iterative_hash_template_arg): And hash it.
374
375         PR c++/47897
376         * semantics.c (non_const_var_error): Split out from...
377         (cxx_eval_constant_expression): ...here.
378         (potential_constant_expression_1) [VAR_DECL]: Use it.
379         Allow dependent variables.
380
381 2011-02-24  Jason Merrill  <jason@redhat.com>
382
383         * parser.c (cp_parser_constant_expression): Set
384         non_integral_constant_expression correctly for C++0x too.
385         (cp_parser_static_assert): Allow non-constant expression.
386         (cp_parser_direct_declarator): Expect non_constant_p to be set
387         properly for C++0x.
388         * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
389         * semantics.c (maybe_constant_value): Check type_unknown_p too.
390         (potential_rvalue_constant_expression): New.
391         (require_potential_rvalue_constant_expression): New.
392
393 2011-02-23  Jason Merrill  <jason@redhat.com>
394
395         * cp-tree.h (DECL_PARM_LEVEL): New.
396         (struct lang_decl_parm): Add level field.
397         * name-lookup.c (function_parm_depth): New fn.
398         * name-lookup.h: Declare it.
399         * parser.c (cp_parser_parameter_declaration_list): Use it.
400         * mangle.c (struct globals): Add parm_depth field.
401         (write_bare_function_type): Adjust it.
402         (write_expression): Include the level delta in PARM_DECL mangling
403         for abi >= 6.
404
405         * semantics.c (finish_decltype_type): Remove shortcut for decltype
406         of id-expression.
407         * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
408
409 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
410
411         PR c++/46868
412         * parser.c (cp_parser_class_specifier): Require a closing brace
413         to attempt error recovery.
414
415 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
416
417         PR c++/47833
418         * pt.c (struct pending_template): Add chain_next GTY option.
419         * decl.c (struct named_label_use_entry): Likewise.
420
421 2011-02-22  Paolo Carlini  <paolo.carlini@oracle.com>
422
423         PR c++/47242
424         * semantics.c (build_lambda_object): Bail out if a field is
425         error_mark_node.
426
427 2011-02-22  Dodji Seketeli  <dodji@redhat.com>
428
429         PR c++/47666
430         * class.c (dfs_declare_virt_assop_and_dtor)
431         (declare_virt_assop_and_dtor): New static functions.
432         (add_implicitly_declared_members): Use
433         declare_virt_assop_and_dtor.
434
435 2011-02-21  Jason Merrill  <jason@redhat.com>
436
437         PR c++/47207
438         * decl2.c (decl_constant_var_p): A constexpr var needs an
439         initializer to be constant.
440         * semantics.c (cxx_eval_constant_expression): Complain about
441         constexpr var used in its own initializer.
442         * call.c (set_up_extended_ref_temp): Set
443         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
444
445 2011-02-20  Jason Merrill  <jason@redhat.com>
446
447         PR c++/47199
448         * semantics.c (cxx_eval_call_expression): Call
449         cxx_eval_constant_expression in trivial shortcut.
450
451         PR c++/46831
452         * call.c (convert_class_to_reference): Don't try to set up a
453         second conv sequence for non-viable candidates.
454
455         PR c++/47703
456         * error.c (location_of): Handle non-tagged types.
457
458         PR c++/46472
459         * method.c (process_subob_fn): Instantiate constexpr templates.
460         * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
461
462 2011-02-20  Dodji Seketeli  <dodji@redhat.com>
463
464         PR c++/46394
465         * pt.c (tsubst_pack_expansion): do not use
466         cp_tree_equal/same_type_p to detect an expansion of a parameter
467         pack.
468
469 2011-02-19  Jason Merrill  <jason@redhat.com>
470
471         PR c++/47503
472         * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
473
474 2011-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
475
476         PR c++/47795
477         * semantics.c (finish_non_static_data_member): Early return if
478         object is error_mark_node.
479
480 2011-02-18  Dodji Seketeli  <dodji@redhat.com>
481
482         PR c++/47208
483         * pt.c (do_auto_deduction): Do not mention error_mark_node in
484         diagnostics.
485         * semantics.c (finish_id_expression): Do not pass erroneous decl
486         to decl_constant_var_p.
487
488 2011-02-17  Jakub Jelinek  <jakub@redhat.com>
489
490         PR c++/47783
491         * cvt.c (convert_from_reference): Call mark_exp_read.
492
493 2011-02-11  Dodji Seketeli  <dodji@redhat.com>
494
495         PR c++/47172
496         * pt.c (finish_call_expr): Consider a call expression that has a
497         dependent "this" pointer as being dependent.  Add comments.
498         (dependent_type_p, type_dependent_expression_p): Update comments.
499
500 2011-02-16  Dodji Seketeli  <dodji@redhat.com>
501
502         PR c++/47326
503         * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
504         expansion arguments are not evaluated.
505
506 2011-02-16  Jakub Jelinek  <jakub@redhat.com>
507
508         PR c++/47704
509         * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
510         instead of TYPE_LANG_FLAG_3.
511         * pt.c (lookup_template_class): Copy over
512         ENUM_FIXED_UNDERLYING_TYPE_P.
513
514 2011-02-15  Jason Merrill  <jason@redhat.com>
515
516         PR c++/46807
517         * method.c (synthesized_method_walk): Always exit early for
518         trivial fn in C++98 mode.
519
520 2011-02-14  Jason Merrill  <jason@redhat.com>
521
522         PR c++/47482
523         * parser.c (cp_parser_enumerator_definition): Call
524         fold_non_dependent_expr.
525
526 2011-02-09  Jason Merrill  <jason@redhat.com>
527
528         * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
529         * semantics.c (finish_fname): Only return the name if we're in
530         a function.
531
532         * decl.c (build_enumerator): Don't perform integral promotions on
533         non-integral constants.
534
535         * cvt.c (convert_to_void): Handle null op1.
536
537         * class.c (type_has_constexpr_default_constructor): Make sure the
538         caller stripped an enclosing array.
539         * init.c (perform_member_init): Strip arrays before calling it.
540
541         PR c++/47511
542         * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
543
544 2011-02-03  Dodji Seketeli  <dodji@redhat.com>
545
546         PR c++/47398
547         * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
548         template parameters in account.
549
550 2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>
551
552         PR c++/46890
553         * parser.c (cp_parser_class_specifier): Fix setting of
554         want_semicolon.
555
556 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
557
558         PR c++/47416
559         * semantics.c (build_data_member_initialization): Handle
560         STATEMENT_LIST always instead of just for CLEANUP_BODY.
561
562 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
563
564         * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
565         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
566
567 2011-01-29  Dodji Seketeli  <dodji@redhat.com>
568
569         PR c++/47311
570         * cp-tree.h (fixup_template_parms): Declare.
571         * pt.c (end_template_parm_list): Do not fixup template parms here.
572         (fixup_template_parms): Remove static. Fix typo in the
573         comments. Remove useless code statement.
574         (fixup_template_parm): For a template template parameter, fixup
575         its attributes before fixing up its type.
576         * parser.c
577         (cp_parser_template_declaration_after_export): After parsing
578         template parameters fixup their types.
579
580 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
581
582         PR c++/47476
583         * semantics.c (potential_constant_expression_1): Handle
584         TRUTH_XOR_EXPR.
585
586 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
587
588         PR c++/43601
589         * semantics.c (expand_or_defer_fn_1): Handle it.
590         * decl2.c (decl_needed_p): Likewise.
591
592 2011-01-21  Jason Merrill  <jason@redhat.com>
593
594         PR c++/47041
595         * semantics.c (build_constexpr_constructor_member_initializers):
596         Handle trivial copy.
597
598 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
599
600         PR c++/47388
601         * semantics.c (begin_for_stmt): If -fno-for-scope, don't
602         assume init must be NULL if scope is NULL.
603         (begin_range_for_stmt): Likewise.
604
605 2011-01-21  Jason Merrill  <jason@redhat.com>
606
607         PR c++/46552
608         * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
609
610         PR c++/46977
611         * semantics.c (potential_constant_expression_1): Split out from
612         potential_constant_expression.  Add want_rval parm.  Handle
613         template expression forms.  Don't enforce restriction on address
614         of automatic variable here.  Add a couple of diagnostics that
615         had been missing.
616         (require_potential_constant_expression): New entry point.
617         (build_data_member_initialization, register_constexpr_fundef): Adjust.
618         (maybe_constant_value): Check potential_constant_expression.
619         * pt.c (fold_non_dependent_expr_sfinae): Likewise.
620         * tree.c (build_vec_init_expr): Adjust.
621
622 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
623
624         PR c++/47303
625         * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
626         or DECL_EXTERNAL.
627
628 2011-01-17  Jason Merrill  <jason@redhat.com>
629
630         PR c++/47067
631         * semantics.c (base_field_constructor_elt): New fn.
632         (cxx_eval_bare_aggregate): Use it.
633         (build_data_member_initialization): Leave COMPONENT_REF for
634         vfield inits.
635
636 2011-01-14  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
637
638         * parser.c (cp_parser_range_for): Remove the "unused variable" warning
639         workaround.
640
641 2011-01-15  Giovanni Funchal  <gafunchal@gmail.com>
642             Jonathan Wakely  <jwakely.gcc@gmail.com>
643
644         PR c++/33558
645         * decl.c (grokdeclarator): Reject mutable reference members.
646
647 2011-01-14  Jason Merrill  <jason@redhat.com>
648
649         PR c++/47289
650         * pt.c (coerce_template_parms): Fix error recovery.
651
652         PR c++/46903
653         * typeck2.c (check_narrowing): Only check arithmetic types.
654
655         PR c++/46688
656         * tree.c (build_vec_init_expr): Handle flexible array
657         properly.
658
659 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
660
661         PR c++/47213
662         * cp-tree.h (CLASSTYPE_VISIBILITY): Use
663         TYPE_MAIN_DECL instead of TYPE_NAME.
664         (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
665         * decl2.c (determine_visibility): Add check
666         of CLASS_TYPE_P for underlying_type.
667
668 2011-01-12  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
669
670         * cp-tree.h (begin_for_scope): New prototype.
671         (begin_for_stmt): Update prototype.
672         (begin_range_for_stmt): Update prototype.
673         * init.c (build_vec_init): Update call to begin_for_stmt.
674         * parser.c (cp_parser_for): New.
675         (cp_parser_c_for): Add three new parameters.
676         (cp_parser_range_for): Likewise. Most parsing code removed.
677         (cp_parser_iteration_statement): Call cp_parser_for instead of
678         cp_parser_c_for and cp_parser_range_for.
679         (cp_parser_for_init_statement): Add new parameter and return type.
680         (cp_parser_block_declaration): Update call to
681         cp_parser_simple_declaration.
682         (cp_parser_simple_declaration): Add new parameter.
683         Update call to cp_parser_init_declarator.
684         (cp_parser_init_declarator): Add new parameter.
685         * pt.c (tsubst_expr): Update call to begin_for_stmt.
686         * semantics.c (begin_for_scope): New.
687         (begin_for_stmt): Add two new parameters.
688         (begin_range_for_stmt): Likewise.
689
690 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
691
692         * parser.c (cp_parser_objc_at_property_declaration): Improved
693         error message.
694
695 2011-01-11  Dodji Seketeli  <dodji@redhat.com>
696
697         PR debug/46955
698         * cp-lang.c (get_template_innermost_arguments_folded)
699         (get_template_argument_pack_elems_folded)
700         (template_arg_needs_folding, fold_cplus_constants): New static
701         functions.
702         (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
703         get_template_innermost_arguments_folded.
704         (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
705         get_template_argument_pack_elems_folded.
706
707 2011-01-11  Jason Merrill  <jason@redhat.com>
708
709         PR c++/46658
710         * init.c (build_new_1): Handle value-init in templates differently.
711
712         PR c++/45520
713         * tree.c (maybe_dummy_object): Check current_class_ref against
714         context, not current_class_type.
715
716 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
717
718         PR objc/47078
719         * parser.c (cp_parser_objc_typename): If the type is unknown, for
720         error recovery purposes behave as if it was not specified so that
721         the default type is used.
722
723 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
724
725         PR c++/47022
726         * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
727         for the second build_x_va_arg argument.
728
729 2011-01-05  Tom Tromey  <tromey@redhat.com>
730
731         * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
732         (lvalue_or_else): Likewise.
733
734 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
735
736         PR target/38662
737         * tree.c (cxx_type_hash_eq):
738         Allow METHOD_TYPE, too.
739
740 \f
741 Copyright (C) 2011 Free Software Foundation, Inc.
742
743 Copying and distribution of this file, with or without modification,
744 are permitted in any medium without royalty provided the copyright
745 notice and this notice are preserved.