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