OSDN Git Service

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