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