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