OSDN Git Service

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