]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
re PR bootstrap/42347 (sched-deps.c:3840:1: internal compiler error: in fixup_reorder...
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
9feb3d6a
JM
12010-05-15 Jason Merrill <jason@redhat.com>
2
3 * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
4 * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
5 TYPE_NOEXCEPT_P.
6 (finish_eh_spec_block): Adjust.
7
1f910942
JJ
82010-05-15 Jakub Jelinek <jakub@redhat.com>
9
10 PR c++/44148
11 * pt.c (tsubst): Unshare template argument.
12
f4ce02c5
SB
132010-05-15 Steven Bosscher <steven@gcc.gnu.org>
14
15 * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
16 * Make-lang.in: Fix dependencies accordingly.
17
786f715d
JM
182010-05-14 Jason Merrill <jason@redhat.com>
19
b33a0480
JM
20 C++ DR 475
21 * except.c (build_throw): Simplify, adjust for DR 475.
22
9bb1a81b
JM
23 PR c++/44127
24 * except.c (dtor_nothrow): Return nonzero for type with
25 trivial destructor.
26
786f715d
JM
27 PR c++/44127
28 * cp-gimplify.c (gimplify_must_not_throw_expr): Use
29 gimple_build_eh_must_not_throw.
30
b5023f3c
MJ
312010-05-14 Martin Jambor <mjambor@suse.cz>
32
33 * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
34 and define.
35
a940d033
JW
362010-05-14 Jonathan Wakely <jwakely.gcc@gmail.com>
37
38 * call.c (build_new_method_call): Change warning text.
39 * typeck2.c (build_functional_cast): Change error text.
40
74b80262
SZ
412010-05-14 Shujing Zhao <pearly.zhao@oracle.com>
42
43 PR c++/30566
44 * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
45 shadowing the outer parameter or variables by the declaration of
46 nested function in nested structure or class. Warn the shadowing by
47 the declaration of nested lambda expression.
48
3a11c665
JM
492010-05-13 Jason Merrill <jason@redhat.com>
50
51 * typeck.c (cp_build_array_ref): Factor out from...
52 (build_array_ref): ...here. Drop complain parm.
53 (build_new_op): Adjust.
54 * class.c (build_vtbl_ref_1): Adjust.
55 * decl2.c (grok_array_decl): Adjust.
56 * cp-tree.h: Adjust prototypes.
57
a2e66caf
JH
582010-05-13 Jan Hubicka <jh@suse.cz>
59
60 * decl.c (cp_finish_decl): Do not worry about used attribute.
61
5c824000
JM
622010-05-12 Jason Merrill <jason@redhat.com>
63
73647d75
JM
64 * typeck.c (build_array_ref): Take complain parm.
65 * cp-tree.h: Add it to prototype.
66 * call.c (build_new_op): Pass it.
67 * class.c (build_vtbl_ref): Pass it.
68 * decl2.c (grok_array_decl): Pass it.
69
5116acc6
JM
70 PR bootstrap/44048
71 PR target/44099
72 * cp-tree.def (NULLPTR_TYPE): Remove.
73 * cp-tree.h (NULLPTR_TYPE_P): New.
74 (SCALAR_TYPE_P): Use it.
75 (nullptr_type_node): New.
76 (cp_tree_index): Add CPTI_NULLPTR_TYPE.
77 * decl.c (cxx_init_decl_processing): Call record_builtin_type on
78 nullptr_type_node.
79 * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
80 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
81 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
82 * mangle.c (write_type): Likewise.
83 * name-lookup.c (arg_assoc_type): Likewise.
84 * typeck.c (build_reinterpret_cast_1): Likewise.
85 * rtti.c (typeinfo_in_lib_p): Likewise.
86 (emit_support_tinfos): Remove local nullptr_type_node.
87
fbfc8363
JM
88 * cp-tree.h (UNKNOWN_TYPE): Remove.
89 * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
90 * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
91 * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
92 * class.c (instantiate_type): Check unknown_type_node rather than
93 UNKNOWN_TYPE.
94 * name-lookup.c (maybe_push_decl): Likewise.
95 * rtti.c (get_tinfo_decl_dynamic): Likewise.
96 (get_typeid): Likewise.
97 * semantics.c (finish_offsetof): Likewise.
98
3784b33c
JM
99 PR c++/20669
100 * call.c (add_template_candidate_real): If deduction fails, still
101 add the template as a non-viable candidate.
102 (equal_functions): Handle template candidates.
103 (print_z_candidate): Likewise.
104 (print_z_candidates): Likewise.
105 (build_new_function_call): Likewise.
106
d451d5b2
JM
107 * cp-tree.h (LOOKUP_LIST_ONLY): New.
108 * call.c (add_candidates): Enforce it.
109 (build_new_method_call): Try non-list ctor if no viable list ctor.
110 (build_user_type_conversion_1): Likewise.
111
404f08f8
JM
112 * call.c (add_candidates): Distinguish between type(x) and
113 x.operator type().
114 (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
115 (build_new_method_call): Give better error for conversion op.
116
5c824000
JM
117 * call.c (add_candidates): Add first_arg and return_type parms.
118 Add special constructor/conversion op handling.
119 (convert_class_to_reference): Use it.
120 (build_user_type_conversion_1): Likewise.
121 (build_op_call): Likewise.
122 (build_new_method_call): Likewise.
123 (build_new_op): Adjust.
124 (perform_overload_resolution): Adjust.
125
aac73a6d
PC
1262010-05-11 Paolo Carlini <paolo.carlini@oracle.com>
127
128 PR c++/34272
129 PR c++/43630
130 PR c++/34491
131 * pt.c (process_partial_specialization): Return error_mark_node
132 in case of unused template parameters in partial specialization.
133
056928b2
JJ
1342010-05-11 Jakub Jelinek <jakub@redhat.com>
135
136 PR c++/44062
137 * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
138 * cvt.c (convert_to_void): ... but here. If expr is a COMPOUND_EXPR,
139 look at its second operand.
140
eaa9d009
JM
1412010-05-10 Jason Merrill <jason@redhat.com>
142
5a40306b
JM
143 PR c++/44017
144 * semantics.c (baselink_for_fns): Revert earlier change.
145
eaa9d009
JM
146 PR c++/44045
147 * typeck.c (cp_build_modify_expr): Complain about assignment to
148 array from init list.
149
34655c9e
FC
1502010-05-10 Fabien Chêne <fabien.chene@gmail.com>
151
152 PR c++/43719
153 * decl.c (check_initializer): strip array type before checking for
154 uninitialized const or ref members.
155
40bb78ad
FC
1562010-05-07 Fabien Chêne <fabien.chene@gmail.com>
157
158 PR c++/43951
159 * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
160 error count. Emit errors only if compain is true.
161 (build_new_1): Do not return error_mark_node if
162 diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
163 errors. Delay the check for user-provided constructor.
164 (perform_member_init): Adjust.
165 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
166 prototype.
167
14c2101d
JM
1682010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
169 Jason Merrill <jason@redhat.com>
170
171 Add support for C++0x nullptr.
172 * cp-tree.def: Add NULLPTR_TYPE.
173 * cp-tree.h: Add nullptr_node.
174 (cp_tree_index): Add CPTI_NULLPTR.
175 (SCALAR_TYPE_P): Add NULLPTR_TYPE.
176 * call.c (null_ptr_cst_p): Handle nullptr.
177 (standard_conversion): Likewise.
178 (convert_arg_to_ellipsis): Likewise.
179 * mangle.c (write_type): Likewise.
180 * name-lookup.c (arg_assoc_type): Likewise.
181 * parser.c (cp_parser_primary_expression): Likewise.
182 * typeck.c (cp_build_binary_op): Likewise.
183 (build_reinterpret_cast_1): Likewise.
184 * error.c (dump_type): Likewise.
185 (dump_type_prefix, dump_type_suffix): Likewise.
186 * decl.c (cxx_init_decl_processing): Likewise.
187 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
188 * cvt.c (ocp_convert): Likewise.
189 * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
190 nullptr_t tinfo in libsupc++.
191
941f78d1
JM
1922010-05-06 Jason Merrill <jason@redhat.com>
193
194 * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
195
03a904b5
JJ
1962010-04-22 Jakub Jelinek <jakub@redhat.com>
197 Dodji Seketeli <dodji@redhat.com>
198
199 PR c/18624
200 * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
201 Declare ...
202 * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
203 * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
204 (decay_conversion, perform_integral_promotions): Call rvalue_use.
205 (cp_build_unary_op): Call lvalue_use.
206 * decl.c (unused_but_set_errorcount): New variable.
207 (poplevel): Issue -Wunused-but-set-variable diagnostics.
208 (duplicate_decls): Merge DECL_READ_P flags.
209 (start_cleanup_fn): Set DECL_READ_P flag.
210 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
211 * tree.c (rvalue): Call rvalue_use.
212 * pt.c (convert_nontype_argument): Likewise.
213 * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
214 finish_decltype_type): Likewise.
215 * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
216 (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
217 or rvalue_use depending on the expr.
218 * init.c (build_new, build_delete): Likewise.
219 * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
220
6d729f28
JM
2212010-05-05 Jason Merrill <jason@redhat.com>
222
223 PR c++/43787
224 * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
225 * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
226
68fef9f9
PC
2272010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
228
229 PR c++/43028
230 * pt.c (unify): Check each elt for error_mark_node.
231
b5c0a77e
JM
2322010-05-04 Jason Merrill <jason@redhat.com>
233
234 PR c++/38064
235 * typeck.c (cp_build_binary_op): Allow enums for <> as well.
236
4ac4b596
PC
2372010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
238
239 PR c++/43705
240 * call.c (build_new_method_call): Return error_mark_node if fns is
241 NULL_TREE.
242
f857e9a4
DS
2432010-05-03 Dodji Seketeli <dodji@redhat.com>
244
245 PR c++/43953
246 * pt.c (most_specialized_class): Pretend we are processing
247 a template decl during the call to coerce_template_parms.
248
cbb4feb3
JM
2492010-05-03 Jason Merrill <jason@redhat.com>
250
251 PR c++/42810
252 PR c++/43680
253 * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
254 from the selected underlying type unless -fstrict-enums. Set
255 ENUM_UNDERLYING_TYPE to have the restricted range.
256 * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
257 * class.c (check_bitfield_decl): Likewise.
258
13ead6d8
L
2592010-05-01 H.J. Lu <hongjiu.lu@intel.com>
260
261 PR c++/43951
262 * init.c (build_new_1): Revert the accidental checkin in
263 revision 158918.
264
5cb6410a
JM
2652010-04-30 Jason Merrill <jason@redhat.com>
266
267 PR c++/43868
268 * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
269 (pp_cxx_type_specifier_seq): ...here.
270
9aae8d16
SB
2712010-04-30 Steven Bosscher <steven@gcc.gnu.org>
272
ccb253b3 273 * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
9aae8d16
SB
274 * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
275
8cdea6ab
SZ
2762010-04-30 Shujing Zhao <pearly.zhao@oracle.com>
277
278 PR c++/43779
279 * typeck.c (warn_args_num): New function.
280 (convert_arguments): Use warn_args_num to print the diagnostic
281 messages.
282
10ab8f62
FC
2832010-04-29 Fabien Chêne <fabien.chene@gmail.com>
284
285 PR c++/43890
286 * init.c (diagnose_uninitialized_cst_or_ref_member): check for
287 user-provided constructor while recursing.
288
4b414c93
MLI
2892010-04-28 Manuel López-Ibáñez <manu@gcc.gnu.org>
290
291 PR c++/9335
292 * error.c (print_instantiation_partial_context_line): Handle
293 recursive instantiation.
294 (print_instantiation_partial_context): Likewise.
295
012e6a1e
JM
2962010-04-27 Jason Merrill <jason@redhat.com>
297
298 * init.c (perform_member_init): Check CLASS_TYPE_P.
299
31d1acec
FC
3002010-04-27 Fabien Chêne <fabien.chene@gmail.com>
301
302 PR c++/29043
303 * init.c (perform_member_init): check for uninitialized const or
304 reference members, including array types.
305
294e855f
JM
3062010-04-24 Jason Merrill <jason@redhat.com>
307
308 * tree.c (get_fns): Split out from get_first_fn.
309 * cp-tree.h: Declare it.
310 * search.c (shared_member_p): Use it.
311 * semantics.c (finish_qualified_id_expr): Simplify.
312 (finish_id_expression): Simplify.
798ec807 313
2defb926
JM
314 * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
315 whenever object is NULL_TREE. Don't do 'this' capture here.
316 (finish_qualified_id_expr): Pass NULL_TREE.
317 (finish_id_expression): Likewise.
318 (lambda_expr_this_capture): Likewise.
319
38f1276b
JM
320 * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
321 rather than checking current_class_ref directly.
322 (finish_call_expr): Likewise.
323
a6846853
JM
324 PR c++/43856
325 * name-lookup.c (qualify_lookup): Disqualify lambda op().
326 * class.c (current_nonlambda_class_type): New fn.
327 * semantics.c (nonlambda_method_basetype): New.
328 * cp-tree.h: Declare them.
329 * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
330
16de17ae
JM
331 * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
332
95b24c84
JM
333 PR c++/43875
334 * semantics.c (lambda_return_type): Complain about
335 braced-init-list.
336
ea8b8aa0
JM
337 PR c++/43790
338 * tree.c (cv_unqualified): Handle error_mark_node.
339
4a5d353f
JM
340 PR c++/41468
341 * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
342 if we don't want errors.
343
798ec807
JM
344 PR c++/41468
345 * class.c (convert_to_base): Add complain parameter. Pass
346 ba_quiet to lookup_base if we don't want errors.
347 (build_vfield_ref): Pass complain to convert_to_base.
348 * call.c (convert_like_real): Likewise.
349 (initialize_reference): Likewise.
350 (perform_direct_initialization_if_possible): Pass complain to
351 convert_like_real.
352 * cp-tree.h: Adjust.
353
6ad86a5b
FC
3542010-04-27 Fabien Chêne <fabien.chene@gmail.com>
355 Jason Merrill <jason@redhat.com>
356
357 PR c++/42844
358 * decl.c (check_for_uninitialized_const_var): Handle classes that need
359 constructing, too.
360 (check_initializer): Call it for classes that need constructing, too.
361 * class.c (in_class_defaulted_default_constructor): New.
362 * cp-tree.h: Declare it.
363
88274c4d
JM
3642010-04-20 Jason Merrill <jason@redhat.com>
365
366 PR c++/9335
367 * init.c (constant_value_1): Treat error_mark_node as a constant
368 if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
369 * cvt.c (ocp_convert): Handle getting error_mark_node from
370 integral_constant_value.
371 * decl.c (compute_array_index_type): Likewise.
372
5a80a1dd
DS
3732010-04-20 Dodji Seketeli <dodji@redhat.com>
374
375 PR c++/43800
376 PR c++/43704
377 * typeck.c (incompatible_dependent_types_p): If one of the
378 compared types if not a typedef then honour their main variant
379 equivalence.
380
1197ce8e
JJ
3812010-04-20 Jakub Jelinek <jakub@redhat.com>
382
383 * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
384
d38f6bc0
DS
3852010-04-19 Dodji Seketeli <dodji@redhat.com>
386
387 PR c++/43704
388 * typeck.c (structural_comptypes): Test dependent typedefs
389 incompatibility before testing for their main variant based
390 equivalence.
391
5a2fa9e8
JJ
3922010-04-19 Jakub Jelinek <jakub@redhat.com>
393
394 * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
395 ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
396
3b9e5d95
EB
3972010-04-18 Eric Botcazou <ebotcazou@adacore.com>
398
399 * decl.c (cxx_init_decl_processing): Remove second argument in call to
400 build_common_tree_nodes.
401
943f82e7
JM
4022010-04-14 Jason Merrill <jason@redhat.com>
403
404 PR c++/36625
405 * parser.c (cp_parser_parenthesized_expression_list): Change
406 is_attribute_list parm to int to indicate whether or not to
407 handle initial identifier specially.
408 (cp_parser_attribute_list): Use attribute_takes_identifier_p.
409
44b2dc6c
JM
4102010-04-13 Jason Merrill <jason@redhat.com>
411
412 * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
413 CLASS_TYPE_P.
414 * parser.c (cp_parser_lambda_expression): Complain about lambda in
415 unevaluated context.
416 * pt.c (iterative_hash_template_arg): Don't crash on lambda.
417
d6850483
JM
4182010-04-12 Jason Merrill <jason@redhat.com>
419
e62e4922
JM
420 PR c++/43641
421 * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
422 return value directly.
423
d6850483
JM
424 * call.c (type_decays_to): Call cv_unqualified for non-class type.
425
9d809e8f
FC
4262010-04-12 Fabien Chene <fabien.chene@gmail.com>
427
428 PR c++/25811
429 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
430 * init.c (build_new_1): Check for uninitialized const members and
431 uninitialized reference members, when using new without
432 new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
433 (diagnose_uninitialized_cst_or_ref_member): Define, call
434 diagnose_uninitialized_cst_or_ref_member_1.
435 (diagnose_uninitialized_cst_or_ref_member_1): New function.
436
3fc20697
RG
4372010-04-12 Richard Guenther <rguenther@suse.de>
438
439 PR c++/43611
440 * semantics.c (expand_or_defer_fn_1): Do not keep extern
441 template inline functions.
442
dc8d2739
MLI
4432010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
444
445 PR c++/28584
446 * typeck.c (cp_build_c_cast): Warn for casting integer to larger
447 pointer type.
448
2401726e
JM
4492010-04-07 Jason Merrill <jason@redhat.com>
450
fb4117f8
JM
451 PR c++/43016
452 * decl.c (start_preparsed_function): Do defer nested functions.
453
48326487
JM
454 PR c++/11094, DR 408
455 * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
456 * decl2.c (finish_static_data_member_decl): Set it.
457 * decl.c (duplicate_decls): Propagate it.
458 * pt.c (tsubst_decl): Don't substitute the domain of an array
459 VAR_DECL if it's set.
460 (regenerate_decl_from_template): Substitute it here.
461 (type_dependent_expression_p): Return true if it's set.
462 * semantics.c (finish_decltype_type): Instantiate such a variable.
463 * typeck.c (cxx_sizeof_expr): Likewise.
464 (strip_array_domain): New.
465
9f1b98f0 466 PR c++/43145
ae099258
JM
467 * name-lookup.c (current_decl_namespace): Non-static.
468 (pop_nested_namespace): Sanity check.
469 * cp-tree.h: Declare current_decl_namespace.
470 * decl.c (grokvardecl): Use it instead of current_namespace.
471 (grokfndecl): Likewise.
472
feb3b88a
JM
473 PR c++/38392
474 * pt.c (tsubst_friend_function): Instatiate a friend that has already
475 been used.
476
7dcfe861
JM
477 * pt.c (print_template_statistics): New.
478 * cp-tree.h: Declare it.
479 * tree.c (cxx_print_statistics): Call it.
480
2401726e
JM
481 PR c++/41970
482 * decl.c (grokvardecl): Tweak warning message.
483 (grokfndecl): Likewise.
484
5fd5c97a
DS
4852010-04-07 Dodji Seketeli <dodji@redhat.com>
486
487 PR c++/42697
488 *pt.c (tsubst_decl): Get the arguments of a specialization from
489 the specialization template, not from the most general template.
490
7c094c11
DS
4912010-04-07 Dodji Seketeli <dodji@redhat.com>
492
493 PR c++/40239
494 * typeck2.c (process_init_constructor_record):
495 value-initialize members that are are not explicitely
496 initialized.
497
6addabbb
JZ
4982010-04-07 Jie Zhang <jie@codesourcery.com>
499
500 PR c++/42556
501 * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
502 when all of its elements are non-constant and have been split out.
503
d4a2b486
JM
5042010-04-06 Taras Glek <taras@mozilla.com>
505 Jason Merrill <jason@redhat.com>
506
507 * parser.c (cp_parser_class_specifier): Set class location to that
508 of IDENTIFIER_NODE instead of '{' when possible.
509 * semantics.c (begin_class_definition): Do not overide locations
510 with less precise ones.
511
d5eebac0
JM
5122010-04-06 Jason Merrill <jason@redhat.com>
513
62daa139
JM
514 PR c++/43648
515 * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
516
d5eebac0
JM
517 PR c++/43621
518 * pt.c (maybe_update_decl_type): Check the return value from
519 push_scope.
520
9542943d
JM
5212010-04-01 Jason Merrill <jason@redhat.com>
522
d4b5fb22
JM
523 * decl.c (next_initializable_field): No longer static.
524 * cp-tree.h: Declare it.
525 * call.c (build_aggr_conv): Fail if there are more initializers
526 than initializable fields.
527
9542943d
JM
528 * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
529 instead of void_zero_node.
530
d7df0b91
DS
5312010-03-31 Dodji Seketeli <dodji@redhat.com>
532
533 PR c++/43558
534 * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
535 * pt.c (end_template_parm_list): Store sibling template parms of
536 each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
537 (push_template_decl_real): Don't store the containing template decl
538 into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
539 * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
540 of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
541 Simplify the logic.
542
ce0ecb98
JM
5432010-03-30 Jason Merrill <jason@redhat.com>
544
74537078
JM
545 PR c++/43076
546 * pt.c (push_template_decl_real): Deal better with running out of
547 scopes before running out of template parms.
548
fb077955
JM
549 PR c++/41185
550 PR c++/41786
551 * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
552 function parameter context. Don't print an error if parsing
553 tentatively.
554
ce0ecb98
JM
555 PR c++/43559
556 * pt.c (more_specialized_fn): Don't control cv-qualifier check
557 with same_type_p.
558
c6cc83d0
JM
5592010-03-26 Jason Merrill <jason@redhat.com>
560
561 PR c++/43509
562 * parser.c (cp_parser_qualifying_entity): Do accept enum names in
563 c++0x mode, but not other type-names.
564
5f431950
DS
5652010-03-26 Dodji Seketeli <dodji@redhat.com>
566
567 PR c++/43327
568 * pt.c (add_to_template_args): Support NULL ARGS;
569 (most_specialized_class): call coerce_template_parms on
570 template arguments passed to get_class_bindings. Use
571 add_to_template_args.
572 (unify): Handle VAR_DECLs.
573
3910807d
DS
5742010-03-26 Dodji Seketeli <dodji@redhat.com>
575
576 * cp-tree.h (get_template_parms_at_level): Change unsigned parm
577 into int.
578 * pt.c (get_template_parms_at_level): Adjust.
579
58f5f6b4
DS
5802010-03-25 Dodji Seketeli <dodji@redhat.com>
581
582 PR c++/43206
583 * cp-tree.h (get_template_parms_at_level): Declare ...
584 * pt.c (get_template_parms_at_level): ... new function.
585 * typeck.c (get_template_parms_of_dependent_type): If a template
586 type parm's DECL_CONTEXT isn't yet set, get its siblings from
587 current_template_parms. Use get_template_parms_at_level. Remove
588 useless test.
589 (incompatible_dependent_types_p): If we get empty parms from just one
590 of the template type parms we are comparing then the template parms are
591 incompatible.
592
bff0b1a6
JM
5932010-03-24 Jason Merrill <jason@redhat.com>
594
595 PR c++/43502
596 * parser.c (make_declarator): Initialize id_loc.
597 (cp_parser_lambda_declarator_opt): And set it.
598
c6be04ad
JM
5992010-03-23 Jason Merrill <jason@redhat.com>
600
601 Make lambda conversion op and op() non-static.
602 * semantics.c (maybe_add_lambda_conv_op): Make non-static.
603 Also add the thunk function returned by the conversion op.
604 Mark the conversion deleted if the op() is variadic.
605 * decl2.c (mark_used): Give helpful message about deleted conversion.
606 * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
607 * semantics.c (finish_this_expr): Adjust.
608 * mangle.c (write_closure_type_name): Adjust.
609 * decl.c (grok_op_properties): Don't allow it.
610 * call.c (build_user_type_conversion_1): No static conversion ops.
611 (build_op_call): Or op().
612
613 * decl2.c (change_return_type): Fix 'this' quals.
614
18932737
JM
6152010-03-22 Jason Merrill <jason@redhat.com>
616
cc72bbaa
JM
617 PR c++/43333
618 * tree.c (pod_type_p): Use old meaning in C++98 mode.
619
18932737
JM
620 PR c++/43281
621 * pt.c (contains_auto_r): New fn.
622 (do_auto_deduction): Use it.
623 (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
624
7801b86a
SM
6252010-03-20 Simon Martin <simartin@users.sourceforge.net>
626
627 PR c++/43081:
628 * decl2.c (grokfield): Handle invalid initializers for member
629 functions.
630
39bac010
DS
6312010-03-20 Dodji Seketeli <dodji@redhat.com>
632
633 PR c++/43375
634 * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
635 is NULL.
636 * decl2.c (vague_linkage_p): Likewise.
637
8269067b
PC
6382010-03-18 Paolo Carlini <paolo.carlini@oracle.com>
639
640 PR c++/43418
641 * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
642 false, in the cp_parser_expression_statement call.
643
1b88f240
JM
6442010-03-05 Jason Merrill <jason@redhat.com>
645
646 * mangle.c (mangle_decl): Give name collision error even without
647 ASM_OUTPUT_DEF.
648
83ff92fb
MP
6492010-03-04 Marco Poletti <poletti.marco@gmail.com>
650
651 * pt.c (process_partial_specialization): Use error_n instead of
652 error.
653
28fd1fc1
L
6542010-03-03 Jason Merrill <jason@redhat.com>
655
656 PR c++/12909
657 * mangle.c (mangle_decl): Handle VAR_DECL, too.
658
58a15cf8
JM
6592010-03-03 Jason Merrill <jason@redhat.com>
660
661 PR c++/12909
662 * mangle.c: Include cgraph.h.
663 (mangle_decl): If the mangled name will change in a later
664 ABI version, make the later mangled name an alias.
665 * method.c (make_alias_for): Copy DECL_ARGUMENTS.
666 * Make-lang.in (mangle.o): Depend on cgraph.h.
d6dcdbd5
JM
667 * method.c (make_alias_for): Handle VAR_DECL, too.
668 * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
669 * tree.c (no_linkage_check): Adjust.
670 * decl.c (maybe_commonize_var): Adjust.
671 * cp-tree.h: Adjust.
58a15cf8 672
894e2652
SZ
6732010-03-01 Marco Poletti <poletti.marco@gmail.com>
674
675 * pt.c (redeclare_class_template): Use error_n and inform_n.
676
2a3dbebf
MM
6772010-02-27 Mark Mitchell <mark@codesourcery.com>
678
679 PR c++/42748
680 * cp-tree.h (push_tinst_level): Declare.
681 (pop_tinst_level): Likewise.
682 * pt.c (push_tinst_level): Give it external linkage.
683 (pop_tinst_level): Likewise.
684 * mangle.c (mangle_decl_string): Set the source location to that
685 of the decl while mangling.
686
baae602e
SM
6872010-02-27 Simon Martin <simartin@users.sourceforge.net>
688
689 PR c++/42054
690 * pt.c (redeclare_class_template): Return false if there are erroneous
691 template parameters.
692
124e0d27
MLI
6932010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
694
695 * pt.c (push_tinst_level): Replace -ftemplate-depth- with
696 -ftemplate-depth=.
697
254d1a5a
JM
6982010-02-24 Jason Merrill <jason@redhat.com>
699
b66093b0
JM
700 PR c++/12909
701 * mangle.c (write_type): Give -Wabi warning for old vector mangling.
702
254d1a5a
JM
703 * class.c (layout_class_type): Don't give -Wabi warning for a bug
704 in a previous ABI version.
705
c6569cd0
JM
7062010-02-23 Jason Merrill <jason@redhat.com>
707
708 PR c++/43143
709 * typeck2.c (digest_init_r): Accept value init of array.
710
a98c2819
MLI
7112010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
712
713 PR c++/43126
714 * typeck.c (convert_arguments): Update error message.
a98c2819 715
3a7ba040
MS
7162010-02-22 Mike Stump <mikestump@comcast.net>
717
718 PR c++/43125
719 * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
720
f89b94d9
MLI
7212010-02-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
722
723 PR c++/23510
724 * error.c (print_instantiation_partial_context_line): New.
725 (print_instantiation_partial_context): Print at most 12 contexts,
726 skip the rest with a message.
727
04afbf1c
DS
7282010-02-21 Dodji Seketeli <dodji@redhat.com>
729
730 PR c++/42824
731 * pt.c (lookup_template_class): Better support of specialization
732 of member of class template implicit instantiation.
733
17251338
MLI
7342010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
735
736 PR c++/35669
737 * call.c (conversion_null_warnings): Replace -Wconversion with
738 -Wconversion-null.
739 * cvt.c (build_expr_type_conversion): Likewise.
740
935c0a5d
JM
7412010-02-18 Jason Merrill <jason@redhat.com>
742
7c08df6c
JM
743 PR c++/42837
744 * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
745
1ff6b2c8
JM
746 PR c++/43108
747 * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
748 C build_binary_op.
749 * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
750 * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
751
7890246f
JM
752 PR c++/43070
753 * semantics.c (finish_goto_stmt): Don't call decay_conversion.
754
04daa92b
JM
755 PR c++/26261
756 PR c++/43101
757 * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
758 (maybe_update_decl_type): New fn.
759 * parser.c (cp_parser_init_declarator): Use it.
760
935c0a5d
JM
761 PR c++/43109
762 * semantics.c (begin_class_definition): Don't crash on unnamed ns.
763
d29760ad
JM
7642010-02-17 Jason Merrill <jason@redhat.com>
765
9ba59715
JM
766 PR c++/43075
767 * call.c (build_over_call): Don't create zero-sized assignments.
768 * cp-gimplify.c (cp_genericize_r): Don't remove them here.
769 * cp-objcp-common.c (cp_expr_size): Remove.
770 * cp-tree.h: Remove prototype.
771
77278f4a
JM
772 PR c++/43069
773 * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
774 decl we looked up doesn't match.
775
85a52ea5
JM
776 PR c++/43093
777 * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
778 have an INIT_EXPR anymore.
779
d29760ad
JM
780 PR c++/43079
781 * pt.c (convert_nontype_argument): Change assert to test.
782
38e40fcd
JM
7832010-02-16 Jason Merrill <jason@redhat.com>
784
0d08582e
JM
785 * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
786
1e2ddf80
JM
787 PR c++/43031
788 * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
789 VIEW_CONVERT_EXPR for conversions between structural equality types
790 that the back end can't tell are the same.
791
38e40fcd
JM
792 PR c++/43036
793 * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
794 cv-quals from element here.
795 (cp_build_qualified_type_real): Not here. Preserve typedef name.
796
1acb8caa
JM
7972010-02-14 Jason Merrill <jason@redhat.com>
798
799 PR c++/41997
800 * semantics.c (finish_compound_literal): Use
801 cp_apply_type_quals_to_decl when creating a static variable.
802
da7d88bf
JM
8032010-02-12 Jason Merrill <jason@redhat.com>
804
805 PR c++/43024
806 * name-lookup.h (current_binding_level): Check for null
807 cp_function_chain.
808
96b4a0b5
JM
8092010-02-12 Jason Merrill <jason@redhat.com>
810
811 PR c++/43054
76a25412 812 * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
96b4a0b5 813
2e034e32
JJ
8142010-02-12 Jakub Jelinek <jakub@redhat.com>
815
816 PR c++/43033
817 * name-lookup.c (pushdecl_maybe_friend): Check default args of t
818 instead of x.
819
19030d77
JM
8202010-02-10 Jason Merrill <jason@redhat.com>
821
822 PR c++/41896
823 * semantics.c (outer_lambda_capture_p): Revert.
824 (add_capture): Only finish_member_declaration if
825 we're in the lambda class.
826 (register_capture_members): New.
827 * cp-tree.h: Declare it.
828 * parser.c (cp_parser_lambda_expression): Call it.
829
2cb95a6a
JM
8302010-02-10 Jason Merrill <jason@redhat.com>
831
832 PR c++/41896
833 * semantics.c (outer_lambda_capture_p): Use current_function_decl
834 instead of current_class_type.
835
f1c3cf3c
JM
8362010-02-10 Jason Merrill <jason@redhat.com>
837
838 PR c++/42983, core issue 906
839 * method.c (defaultable_fn_check): Check virtualness.
840
7a79ff3b
JM
8412010-02-10 Jason Merrill <jason@redhat.com>
842
843 PR c++/43016
844 * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
845
f25a2b52
SZ
8462010-02-10 Shujing Zhao <pearly.zhao@oracle.com>
847
848 * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
849 * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
850 translation.
851 * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
852 (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
853 (cp_parser_parameter_declaration)
854 (cp_parser_exception_specification_opt)
855 (cp_parser_exception_declaration): Likewise.
856 * pt.c (check_default_tmpl_args): Likewise.
857 * search.c (lookup_field_r): Likewise.
858
0bbe864d
JM
8592010-02-09 Jason Merrill <jason@redhat.com>
860
861 PR c++/42399
862 * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
863
643d4cd6
JM
8642010-02-09 Jason Merrill <jason@redhat.com>
865
866 PR c++/42370
867 * decl2.c (change_return_type): New fn.
868 * semantics.c (apply_lambda_return_type): Use it.
869 * cp-tree.h: Declare it.
870
6561cdf6
RG
8712010-02-05 Richard Guenther <rguenther@suse.de>
872
873 * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
874 * cp-lang.c: Include gt-cp-cp-lang.h.
875 * config-lang.in (gtfiles): Add cp/cp-lang.c.
876
3cdabe3b
DS
8772010-02-05 Dodji Seketeli <dodji@redhat.com>
878
879 PR c++/42915
880 * typeck.c (get_template_parms_of_dependent_type): Try getting
881 the template parameters fromt the type itself first.
882
abfe01ce
JM
8832010-02-03 Jason Merrill <jason@redhat.com>
884
f000c6a7
JM
885 PR c++/4926
886 PR c++/38600
887 * mangle.c (write_unqualified_id): Split out from write_expression.
888 (write_unqualified_name): Call it.
889 (write_member_name): Likewise.
890 (write_expression): Support TEMPLATE_ID_EXPR.
891 Disambiguate operator names.
892
abfe01ce
JM
893 PR c++/12909
894 * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
895 -fabi-version=4.
896
e6ca6e2a
JM
8972010-02-02 Jason Merrill <jason@redhat.com>
898
899 PR c++/41090
900 * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
901 * optimize.c (clone_body): Remap their initializers when making base
902 variants.
903 (maybe_clone_body): Complain if multiple clones aren't safe.
904
1a048f82
DS
9052010-01-29 Dodji Seketeli <dodji@redhat.com>
906
907 PR c++/42758
908 PR c++/42634
909 PR c++/42336
910 PR c++/42797
911 PR c++/42880
912 * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
913 SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
914 GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
915 * pt.c (coerce_template_parms, type_unification_real,
916 expand_template_argument_pack, coerce_template_parameter_pack):
917 Set the non default template args count.
918 (current_template_args): Always set non defaulted
919 template args count when compiled with --enable-checking
920 (tsubst_template_args, type_unification_real): Propagate the non
921 defaulted template args count.
922 * error.c (get_non_default_template_args_count): Renamed
923 count_non_default_template_args into this. Don't calculate the
924 non default template argument count anymore. Use the new
925 accessor macros above to get it.
926 (dump_template_argument_list, dump_type, dump_decl,
927 dump_template_parms): Adjust.
928 * parser.c (cp_parser_template_argument_list): Always set defaulted
929 template args count when compiled with --enable-checking.
930
9ee5ebeb
SZ
9312010-01-29 Shujing Zhao <pearly.zhao@oracle.com>
932
933 * decl.c (redeclaration_error_message): Wrap the return messages into
934 G_() for easy translation.
935
cd924144
JM
9362010-01-28 Jason Merrill <jason@redhat.com>
937
938 PR c++/42880
939 * semantics.c (begin_class_definition): Don't use type_as_string.
940
20c202f3
DS
9412010-01-28 Dodji Seketeli <dodji@redhat.com>
942
943 PR c++/42713
944 PR c++/42820
945 * typeck.c (get_template_parms_of_dependent_type): Factorized
946 this out of incompatible_template_type_parms_p
947 (incompatible_dependent_types_p): Renamed
948 incompatible_template_type_parms_p into this. Make it detect
949 two incompatible dependent typedefs too.
950 (structural_comptypes): Use incompatible_dependent_types_p.
951 * pt.c (get_template_info):
952 Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
953
ebf0bf7f
JJ
9542010-01-20 Janis Johnson <janis187@us.ibm.com>
955 Jason Merrill <jason@redhat.com>
956
957 * mangle.c (write_type): Mangle transparent record as member type.
958 * semantics.c (begin_class_definition): Recognize decimal classes
959 and set TYPE_TRANSPARENT_AGGR.
960
4d43dcde
JM
9612010-01-20 Jason Merrill <jason@redhat.com>
962
963 PR c++/42338
964 * mangle.c (write_expression): Handle tree codes that have extra
965 arguments in the middle-end.
966
4227d4a1
PC
9672010-01-20 Paolo Carlini <paolo.carlini@oracle.com>
968
969 PR c++/42038
970 * except.c (expand_start_catch_block): Deal correctly with
971 do_begin_catch returning error_mark_node.
972
e4672ccd
JM
9732010-01-20 Jason Merrill <jason@redhat.com>
974
a402c1b1
JM
975 PR c++/41788
976 * class.c (layout_class_type): Set packed_maybe_necessary for packed
977 non-PODs.
978
1f4a7a48
JM
979 PR c++/41920
980 * semantics.c (build_lambda_object): Call mark_used on captured
981 variables.
982
e4672ccd
JM
983 PR c++/40750
984 * decl.c (grokdeclarator): Clear type_quals for a member function
985 declared using a typedef. Don't complain about adding cv-quals
986 to a function typedef in C++0x mode.
987
1124098b
JJ
9882010-01-20 Jakub Jelinek <jakub@redhat.com>
989
990 * decl.c (create_array_type_for_decl): Remove set but not used
991 variable error_msg. Remove break stmts after return stmts.
992
11d7788d
DS
9932010-01-19 Dodji Seketeli <dodji@redhat.com>
994
995 * error.c (dump_template_parms, count_non_default_template_args):
996 Revert fix of PR c++/42634.
997
ebea03e0
DS
9982010-01-18 Dodji Seketeli <dodji@redhat.com>
999
1000 PR c++/42634
1001 * error.c (dump_template_parms): Use innermost template
1002 arguments before calling count_non_default_template_args.
1003 (count_non_default_template_args): We are being called with
1004 template innermost arguments now. There is no need to ensure
1005 that again.
1006
a5cf630e
DS
10072010-01-18 Dodji Seketeli <dodji@redhat.com>
1008
1009 PR c++/42766
1010 * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
1011
c4471bb2
DS
10122010-01-17 Dodji Seketeli <dodji@redhat.com>
1013
1014 PR c++/42697
1015 *pt.c (tsubst_decl): Revert commit for PR c++/42697.
1016
4548cb4b
DS
10172010-01-17 Dodji Seketeli <dodji@redhat.com>
1018
1019 PR c++/42697
1020 *pt.c (tsubst_decl): Get the arguments of a specialization from
1021 the specialization template, not from the most general template.
1022
d1c05c88
JM
10232010-01-16 Jason Merrill <jason@redhat.com>
1024
1025 PR c++/42761
1026 * semantics.c (finish_decltype_type): Within a template, treat
1027 unresolved CALL_EXPR as dependent.
1028
58be9ce9
DS
10292010-01-15 Dodji Seketeli <dodji@redhat.com>
1030
1031 * error.c (dump_template_parms,count_non_default_template_args):
1032 Revert changes of PR c++/42634.
1033
ef5d1181
JJ
10342010-01-14 Jakub Jelinek <jakub@redhat.com>
1035
1036 PR middle-end/42674
1037 * decl.c (finish_function): Don't emit -Wreturn-type warnings in
1038 functions with noreturn attribute.
1039
2d1a618e
JM
10402010-01-14 Jason Merrill <jason@redhat.com>
1041
6700a285
JM
1042 PR c++/42701
1043 * call.c (build_new_method_call): Don't free the vec here.
1044
2d1a618e
JM
1045 PR c++/42655
1046 * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
1047
a5859aaf
DS
10482010-01-13 Dodji Seketeli <dodji@redhat.com>
1049
1050 PR c++/42634
1051 * error.c (dump_template_parms): Use innermost template
1052 arguments before calling count_non_default_template_args.
1053 (count_non_default_template_args): We are being called with
1054 template innermost arguments now. There is no need to ensure
1055 that again.
1056
c8f4e43a
DS
10572010-01-07 Dodji Seketeli <dodji@redhat.com>
1058
1059 c++/40155
1060 * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
1061 arguments that were previously deduced.
1062
d097567d
JM
10632010-01-05 Jason Merrill <jason@redhat.com>
1064
1065 * pt.c (unify_pack_expansion): Handle deduction from init-list.
1066 * call.c (build_over_call): Don't complain about it.
1067
4b4a42c4
JM
10682010-01-04 Jason Merrill <jason@redhat.com>
1069
282c399b
JM
1070 PR c++/42555
1071 * pt.c (tsubst_decl): Don't apply type attributes in place.
1072
4b4a42c4
JM
1073 PR c++/42567
1074 * semantics.c (describable_type): Remove decltype comment and
1075 semantics.
1076
ad41bd84
JM
1077
1078\f
0bdf1263 1079Copyright (C) 2010 Free Software Foundation, Inc.
ad41bd84
JM
1080
1081Copying and distribution of this file, with or without modification,
1082are permitted in any medium without royalty provided the copyright
1083notice and this notice are preserved.
This page took 0.476287 seconds and 5 git commands to generate.