OSDN Git Service

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