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