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