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