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