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