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