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