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