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