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