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