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