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