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