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