re PR c++/46282 ([C++0x] ICE: SIGSEGV in grokbitfield (decl2.c:1054))
[gcc.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.