OSDN Git Service

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