OSDN Git Service

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