OSDN Git Service

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