OSDN Git Service

PR target/45844
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2011-03-15  Jason Merrill  <jason@redhat.com>
2
3         Core 1074
4         * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
5         check value_dependent_expression_p on the operand.
6
7         * semantics.c (push_cx_call_context): Return bool.
8         (cxx_eval_call_expression): Handle excess depth.
9
10         Core 1191
11         * method.c (synthesized_method_walk): Cleanups don't affect the
12         triviality of a constructor, but do affect deletion and exception
13         specification.
14
15 2011-03-15  Rodrigo Rivas Costa  <rodrigorivascosta@gmail.com>
16
17         * decl2.c (cp_check_const_attributes): New.
18         (cplus_decl_attributes): Call cp_check_const_attributes.
19
20 2011-03-15  Jason Merrill  <jason@redhat.com>
21
22         PR c++/34758
23         * call.c (convert_default_arg): Use DECL_ORIGIN of fn.  Check for
24         recursion first.
25         (push_defarg_context, pop_defarg_context): New.
26         * parser.c (cp_parser_late_parsing_default_args): Use them.
27         * cp-tree.h: Declare them.
28
29 2011-03-11  Dodji Seketeli  <dodji@redhat.com>
30
31         * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
32         the argument of the indirection operator should not be dependent.
33         Fix the comment.
34
35 2011-03-11  Jason Merrill  <jason@redhat.com>
36
37         PR c++/47125
38         * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
39
40         PR c++/47144
41         * parser.c (cp_parser_template_type_arg): Set
42         type_definition_forbidden_message.
43
44         PR c++/47808
45         * decl.c (compute_array_index_type): Discard folding
46         if it didn't produce a constant.
47
48 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
49
50         PR c++/48035
51         * init.c (build_zero_init_1): Extracted from build_zero_init.
52         Add FIELD_SIZE argument, if non-NULL and field bit_position
53         as not smaller than that, don't add that field's initializer.
54         Pass DECL_SIZE as last argument to build_zero_init_1
55         for DECL_FIELD_IS_BASE fields.
56         (build_zero_init): Use build_zero_init_1.
57
58 2011-03-10  Jason Merrill  <jason@redhat.com>
59
60         PR c++/48029
61         * pt.c (iterative_hash_template_arg): Remove special case for
62         ARRAY_TYPE.
63
64         PR c++/47198
65         * parser.c (cp_parser_single_declaration): Just return if
66         cp_parser_parse_and_diagnose_invalid_type_name complained.
67
68 2011-03-09  Jason Merrill  <jason@redhat.com>
69
70         PR c++/44629
71         * pt.c (unify): An unresolved overload is a nondeduced context.
72
73 2011-03-09  Martin Jambor  <mjambor@suse.cz>
74
75         PR tree-optimization/47714
76         * method.c (use_thunk): Clear addressable flag of thunk arguments.
77
78 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
79
80         PR c++/47705
81         * pt.c (convert_nontype_argument): Only call decay_conversion on
82         arrays.
83
84 2011-03-08  Jason Merrill  <jason@redhat.com>
85
86         PR c++/47488
87         * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
88
89         PR c++/47705
90         * pt.c (convert_nontype_argument): Don't crash on non-pointer
91         argument to pointer parameter.
92
93         PR c++/45651
94         * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
95         !TREE_PUBLIC decls.
96
97 2011-03-08  Dodji Seketeli  <dodji@redhat.com>
98
99         PR c++/47957
100         * name-lookup.c (binding_to_template_parms_of_scope_p): Only
101         consider scopes of primary template definitions.  Adjust comments.
102
103 2011-03-07  Jason Merrill  <jason@redhat.com>
104
105         PR c++/48003
106         * pt.c (convert_nontype_argument): Fix -fpermissive allowing
107         integer overflow.
108         * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
109
110         PR c++/48015
111         * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
112
113         PR c++/48008
114         * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
115         (write_CV_qualifiers_for_type): Not here.
116
117 2011-03-06  Joseph Myers  <joseph@codesourcery.com>
118
119         * lang-specs.h: Match -save-temps* instead of -save-temps.
120
121 2011-03-05  Jason Merrill  <jason@redhat.com>
122
123         * mangle.c (write_expression): Change ABI v6 to v5.
124         (write_type): Likewise.
125
126 2011-03-04  Jan Hubicka  <jh@suse.cz>
127
128         PR lto/47497
129         * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
130         and cgraph_add_thunk.
131         * method.c (make_alias_for_thunk, use_thunk): Likewise.
132         * mangle.c (mangle_decl): Likewise.
133
134 2011-03-04  Jason Merrill  <jason@redhat.com>
135
136         PR c++/47971
137         * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
138         (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
139
140         PR c++/46220
141         * search.c (check_final_overrider): Allow pointer to same incomplete
142         class type with different cv-quals.
143
144 2011-03-03  Paolo Carlini  <paolo.carlini@oracle.com>
145
146         PR c++/47974
147         * pt.c (tsubst_template_args): Check argument t for error_mark_node.
148
149 2011-03-03  Jason Merrill  <jason@redhat.com>
150
151         PR c++/47950
152         * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
153
154 2011-03-02  Jason Merrill  <jason@redhat.com>
155
156         PR c++/47950
157         * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
158
159         PR c++/47774
160         * tree.c (build_vec_init_elt): Split out from...
161         (build_vec_init_expr): ...here.
162         (diagnose_non_constexpr_vec_init): New fn.
163         * semantics.c (potential_constant_expression_1): Use it.
164         * cp-tree.h: Declare it.
165
166 2011-03-01  Jason Merrill  <jason@redhat.com>
167
168         PR c++/46159
169         * parser.c (cp_parser_primary_expression): Don't warn about a
170         failed tentative parse.
171
172         PR c++/47200
173         * semantics.c (cxx_bind_parameters_in_call): Don't call
174         adjust_temp_type on non-constant args.
175
176         PR c++/47851
177         * call.c (standard_conversion): Provide requested cv-quals on
178         class rvalue conversion.
179
180         PR c++/46282
181         * decl2.c (grokbitfield): Handle type-dependent width.
182
183 2011-02-28  Jason Merrill  <jason@redhat.com>
184
185         PR c++/47873
186         * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
187         after checking for a non-thunk.
188
189 2011-02-26  Jason Merrill  <jason@redhat.com>
190
191         PR c++/47904
192         * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
193         * pt.c (iterative_hash_template_arg): And hash it.
194
195         PR c++/47897
196         * semantics.c (non_const_var_error): Split out from...
197         (cxx_eval_constant_expression): ...here.
198         (potential_constant_expression_1) [VAR_DECL]: Use it.
199         Allow dependent variables.
200
201 2011-02-24  Jason Merrill  <jason@redhat.com>
202
203         * parser.c (cp_parser_constant_expression): Set
204         non_integral_constant_expression correctly for C++0x too.
205         (cp_parser_static_assert): Allow non-constant expression.
206         (cp_parser_direct_declarator): Expect non_constant_p to be set
207         properly for C++0x.
208         * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
209         * semantics.c (maybe_constant_value): Check type_unknown_p too.
210         (potential_rvalue_constant_expression): New.
211         (require_potential_rvalue_constant_expression): New.
212
213 2011-02-23  Jason Merrill  <jason@redhat.com>
214
215         * cp-tree.h (DECL_PARM_LEVEL): New.
216         (struct lang_decl_parm): Add level field.
217         * name-lookup.c (function_parm_depth): New fn.
218         * name-lookup.h: Declare it.
219         * parser.c (cp_parser_parameter_declaration_list): Use it.
220         * mangle.c (struct globals): Add parm_depth field.
221         (write_bare_function_type): Adjust it.
222         (write_expression): Include the level delta in PARM_DECL mangling
223         for abi >= 6.
224
225         * semantics.c (finish_decltype_type): Remove shortcut for decltype
226         of id-expression.
227         * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
228
229 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
230
231         PR c++/46868
232         * parser.c (cp_parser_class_specifier): Require a closing brace
233         to attempt error recovery.
234
235 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
236
237         PR c++/47833
238         * pt.c (struct pending_template): Add chain_next GTY option.
239         * decl.c (struct named_label_use_entry): Likewise.
240
241 2011-02-22  Paolo Carlini  <paolo.carlini@oracle.com>
242
243         PR c++/47242
244         * semantics.c (build_lambda_object): Bail out if a field is
245         error_mark_node.
246
247 2011-02-22  Dodji Seketeli  <dodji@redhat.com>
248
249         PR c++/47666
250         * class.c (dfs_declare_virt_assop_and_dtor)
251         (declare_virt_assop_and_dtor): New static functions.
252         (add_implicitly_declared_members): Use
253         declare_virt_assop_and_dtor.
254
255 2011-02-21  Jason Merrill  <jason@redhat.com>
256
257         PR c++/47207
258         * decl2.c (decl_constant_var_p): A constexpr var needs an
259         initializer to be constant.
260         * semantics.c (cxx_eval_constant_expression): Complain about
261         constexpr var used in its own initializer.
262         * call.c (set_up_extended_ref_temp): Set
263         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
264
265 2011-02-20  Jason Merrill  <jason@redhat.com>
266
267         PR c++/47199
268         * semantics.c (cxx_eval_call_expression): Call
269         cxx_eval_constant_expression in trivial shortcut.
270
271         PR c++/46831
272         * call.c (convert_class_to_reference): Don't try to set up a
273         second conv sequence for non-viable candidates.
274
275         PR c++/47703
276         * error.c (location_of): Handle non-tagged types.
277
278         PR c++/46472
279         * method.c (process_subob_fn): Instantiate constexpr templates.
280         * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
281
282 2011-02-20  Dodji Seketeli  <dodji@redhat.com>
283
284         PR c++/46394
285         * pt.c (tsubst_pack_expansion): do not use
286         cp_tree_equal/same_type_p to detect an expansion of a parameter
287         pack.
288
289 2011-02-19  Jason Merrill  <jason@redhat.com>
290
291         PR c++/47503
292         * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
293
294 2011-02-18  Paolo Carlini  <paolo.carlini@oracle.com>
295
296         PR c++/47795
297         * semantics.c (finish_non_static_data_member): Early return if
298         object is error_mark_node.
299
300 2011-02-18  Dodji Seketeli  <dodji@redhat.com>
301
302         PR c++/47208
303         * pt.c (do_auto_deduction): Do not mention error_mark_node in
304         diagnostics.
305         * semantics.c (finish_id_expression): Do not pass erroneous decl
306         to decl_constant_var_p.
307
308 2011-02-17  Jakub Jelinek  <jakub@redhat.com>
309
310         PR c++/47783
311         * cvt.c (convert_from_reference): Call mark_exp_read.
312
313 2011-02-11  Dodji Seketeli  <dodji@redhat.com>
314
315         PR c++/47172
316         * pt.c (finish_call_expr): Consider a call expression that has a
317         dependent "this" pointer as being dependent.  Add comments.
318         (dependent_type_p, type_dependent_expression_p): Update comments.
319
320 2011-02-16  Dodji Seketeli  <dodji@redhat.com>
321
322         PR c++/47326
323         * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
324         expansion arguments are not evaluated.
325
326 2011-02-16  Jakub Jelinek  <jakub@redhat.com>
327
328         PR c++/47704
329         * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
330         instead of TYPE_LANG_FLAG_3.
331         * pt.c (lookup_template_class): Copy over
332         ENUM_FIXED_UNDERLYING_TYPE_P.
333
334 2011-02-15  Jason Merrill  <jason@redhat.com>
335
336         PR c++/46807
337         * method.c (synthesized_method_walk): Always exit early for
338         trivial fn in C++98 mode.
339
340 2011-02-14  Jason Merrill  <jason@redhat.com>
341
342         PR c++/47482
343         * parser.c (cp_parser_enumerator_definition): Call
344         fold_non_dependent_expr.
345
346 2011-02-09  Jason Merrill  <jason@redhat.com>
347
348         * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
349         * semantics.c (finish_fname): Only return the name if we're in
350         a function.
351
352         * decl.c (build_enumerator): Don't perform integral promotions on
353         non-integral constants.
354
355         * cvt.c (convert_to_void): Handle null op1.
356
357         * class.c (type_has_constexpr_default_constructor): Make sure the
358         caller stripped an enclosing array.
359         * init.c (perform_member_init): Strip arrays before calling it.
360
361         PR c++/47511
362         * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
363
364 2011-02-03  Dodji Seketeli  <dodji@redhat.com>
365
366         PR c++/47398
367         * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
368         template parameters in account.
369
370 2011-02-03  Nathan Froyd  <froydnj@codesourcery.com>
371
372         PR c++/46890
373         * parser.c (cp_parser_class_specifier): Fix setting of
374         want_semicolon.
375
376 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
377
378         PR c++/47416
379         * semantics.c (build_data_member_initialization): Handle
380         STATEMENT_LIST always instead of just for CLEANUP_BODY.
381
382 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
383
384         * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
385         LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
386
387 2011-01-29  Dodji Seketeli  <dodji@redhat.com>
388
389         PR c++/47311
390         * cp-tree.h (fixup_template_parms): Declare.
391         * pt.c (end_template_parm_list): Do not fixup template parms here.
392         (fixup_template_parms): Remove static. Fix typo in the
393         comments. Remove useless code statement.
394         (fixup_template_parm): For a template template parameter, fixup
395         its attributes before fixing up its type.
396         * parser.c
397         (cp_parser_template_declaration_after_export): After parsing
398         template parameters fixup their types.
399
400 2011-01-26  Jakub Jelinek  <jakub@redhat.com>
401
402         PR c++/47476
403         * semantics.c (potential_constant_expression_1): Handle
404         TRUTH_XOR_EXPR.
405
406 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
407
408         PR c++/43601
409         * semantics.c (expand_or_defer_fn_1): Handle it.
410         * decl2.c (decl_needed_p): Likewise.
411
412 2011-01-21  Jason Merrill  <jason@redhat.com>
413
414         PR c++/47041
415         * semantics.c (build_constexpr_constructor_member_initializers):
416         Handle trivial copy.
417
418 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
419
420         PR c++/47388
421         * semantics.c (begin_for_stmt): If -fno-for-scope, don't
422         assume init must be NULL if scope is NULL.
423         (begin_range_for_stmt): Likewise.
424
425 2011-01-21  Jason Merrill  <jason@redhat.com>
426
427         PR c++/46552
428         * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
429
430         PR c++/46977
431         * semantics.c (potential_constant_expression_1): Split out from
432         potential_constant_expression.  Add want_rval parm.  Handle
433         template expression forms.  Don't enforce restriction on address
434         of automatic variable here.  Add a couple of diagnostics that
435         had been missing.
436         (require_potential_constant_expression): New entry point.
437         (build_data_member_initialization, register_constexpr_fundef): Adjust.
438         (maybe_constant_value): Check potential_constant_expression.
439         * pt.c (fold_non_dependent_expr_sfinae): Likewise.
440         * tree.c (build_vec_init_expr): Adjust.
441
442 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
443
444         PR c++/47303
445         * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
446         or DECL_EXTERNAL.
447
448 2011-01-17  Jason Merrill  <jason@redhat.com>
449
450         PR c++/47067
451         * semantics.c (base_field_constructor_elt): New fn.
452         (cxx_eval_bare_aggregate): Use it.
453         (build_data_member_initialization): Leave COMPONENT_REF for
454         vfield inits.
455
456 2011-01-14  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
457
458         * parser.c (cp_parser_range_for): Remove the "unused variable" warning
459         workaround.
460
461 2011-01-15  Giovanni Funchal  <gafunchal@gmail.com>
462             Jonathan Wakely  <jwakely.gcc@gmail.com>
463
464         PR c++/33558
465         * decl.c (grokdeclarator): Reject mutable reference members.
466
467 2011-01-14  Jason Merrill  <jason@redhat.com>
468
469         PR c++/47289
470         * pt.c (coerce_template_parms): Fix error recovery.
471
472         PR c++/46903
473         * typeck2.c (check_narrowing): Only check arithmetic types.
474
475         PR c++/46688
476         * tree.c (build_vec_init_expr): Handle flexible array
477         properly.
478
479 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
480
481         PR c++/47213
482         * cp-tree.h (CLASSTYPE_VISIBILITY): Use
483         TYPE_MAIN_DECL instead of TYPE_NAME.
484         (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
485         * decl2.c (determine_visibility): Add check
486         of CLASS_TYPE_P for underlying_type.
487
488 2011-01-12  Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
489
490         * cp-tree.h (begin_for_scope): New prototype.
491         (begin_for_stmt): Update prototype.
492         (begin_range_for_stmt): Update prototype.
493         * init.c (build_vec_init): Update call to begin_for_stmt.
494         * parser.c (cp_parser_for): New.
495         (cp_parser_c_for): Add three new parameters.
496         (cp_parser_range_for): Likewise. Most parsing code removed.
497         (cp_parser_iteration_statement): Call cp_parser_for instead of
498         cp_parser_c_for and cp_parser_range_for.
499         (cp_parser_for_init_statement): Add new parameter and return type.
500         (cp_parser_block_declaration): Update call to
501         cp_parser_simple_declaration.
502         (cp_parser_simple_declaration): Add new parameter.
503         Update call to cp_parser_init_declarator.
504         (cp_parser_init_declarator): Add new parameter.
505         * pt.c (tsubst_expr): Update call to begin_for_stmt.
506         * semantics.c (begin_for_scope): New.
507         (begin_for_stmt): Add two new parameters.
508         (begin_range_for_stmt): Likewise.
509
510 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
511
512         * parser.c (cp_parser_objc_at_property_declaration): Improved
513         error message.
514
515 2011-01-11  Dodji Seketeli  <dodji@redhat.com>
516
517         PR debug/46955
518         * cp-lang.c (get_template_innermost_arguments_folded)
519         (get_template_argument_pack_elems_folded)
520         (template_arg_needs_folding, fold_cplus_constants): New static
521         functions.
522         (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
523         get_template_innermost_arguments_folded.
524         (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
525         get_template_argument_pack_elems_folded.
526
527 2011-01-11  Jason Merrill  <jason@redhat.com>
528
529         PR c++/46658
530         * init.c (build_new_1): Handle value-init in templates differently.
531
532         PR c++/45520
533         * tree.c (maybe_dummy_object): Check current_class_ref against
534         context, not current_class_type.
535
536 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
537
538         PR objc/47078
539         * parser.c (cp_parser_objc_typename): If the type is unknown, for
540         error recovery purposes behave as if it was not specified so that
541         the default type is used.
542
543 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
544
545         PR c++/47022
546         * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
547         for the second build_x_va_arg argument.
548
549 2011-01-05  Tom Tromey  <tromey@redhat.com>
550
551         * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
552         (lvalue_or_else): Likewise.
553
554 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
555
556         PR target/38662
557         * tree.c (cxx_type_hash_eq):
558         Allow METHOD_TYPE, too.
559
560 \f
561 Copyright (C) 2011 Free Software Foundation, Inc.
562
563 Copying and distribution of this file, with or without modification,
564 are permitted in any medium without royalty provided the copyright
565 notice and this notice are preserved.