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