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