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