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