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