OSDN Git Service

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