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