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