re PR c++/48008 (libstdc++-v3/testsuite/20_util/function/43397.cc fails to assemble...
[platform/upstream/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.