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