OSDN Git Service

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