OSDN Git Service

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