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