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