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