]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
Daily bump.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
0c32fb95
JM
12010-08-06 Jason Merrill <jason@redhat.com>
2
309714d4
JM
3 * typeck.c (complete_type_or_maybe_complain): Split out from...
4 (complete_type_or_else): Here.
5 (build_class_member_access_expr): Call it.
6 (finish_class_member_access_expr): Likewise.
7 * call.c (build_special_member_call): Likewise.
8 * cvt.c (build_expr_type_conversion): Likewise.
9 * init.c (build_new): Likewise.
10 * typeck2.c (build_functional_cast): Likewise.
11 * cp-tree.h: Declare it.
12
13 * init.c (build_value_init): Add complain parm.
14 (build_value_init_noctor): Likewise.
15 (perform_member_init): Pass it.
16 (expand_aggr_init_1): Likewise.
17 (build_new_1): Likewise.
18 (build_vec_init): Likewise.
19 * pt.c (tsubst_expr): Likewise.
20 * typeck2.c (build_functional_cast): Likewise.
21 * cp-tree.h: Adjust.
22 * tree.c (build_target_expr_with_type): Handle error_mark_node.
23
0c32fb95
JM
24 * typeck.c (decay_conversion): Any expression with type nullptr_t
25 decays to nullptr.
26
6cc1a978
UW
272010-07-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28
29 PR c++/45112
30 * decl.c (duplicate_decls): Merge DECL_USER_ALIGN and DECL_PACKED.
31
462aa169
JM
322010-07-27 Jason Merrill <jason@redhat.com>
33
34 * pt.c (tsubst_expr) [DECL_EXPR]: Handle getting an AGGR_INIT_EXPR
35 from build_value_init.
36 * init.c (build_value_init_noctor): Give error for unknown array
37 bound.
38
61ff2bdc
JM
392010-07-27 Joseph Myers <joseph@codesourcery.com>
40
41 * cp-objcp-common.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
42
7a9bf9a4
JM
432010-07-27 Joseph Myers <joseph@codesourcery.com>
44
45 * cp-objcp-common.c (cxx_initialize_diagnostics): First call
46 c_common_initialize_diagnostics.
47 * cp-objcp-common.h (LANG_HOOKS_OPTION_LANG_MASK,
48 LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
49
557165ae
JM
502010-07-21 Jason Merrill <jason@redhat.com>
51
31d06664
JM
52 * tree.c (cp_tree_equal): Fix CONSTRUCTOR handling.
53
557165ae
JM
54 * parser.c (cp_parser_init_declarator): Pass LOOKUP_NORMAL
55 to cp_finish_decl.
56
0603fe68
JY
572010-07-20 Jeffrey Yasskin <jyasskin@google.com>
58
59 PR c++/44641
60 * pt.c (instantiate_class_template): Propagate the template's
61 location to its instance.
62
a397bb72
JM
632010-07-20 Jason Merrill <jason@redhat.com>
64
68f7159d
JM
65 PR c++/44967
66 * pt.c (tsubst_copy_and_build): Rework last change.
67
a397bb72
JM
68 PR c++/44967
69 * pt.c (tsubst_copy_and_build): Handle partial substitution of
70 CALL_EXPR.
71
ab73eba8
JM
722010-07-19 Jason Merrill <jason@redhat.com>
73
8145be01
JM
74 PR c++/44996
75 * semantics.c (finish_decltype_type): Correct decltype
76 of parenthesized rvalue reference variable.
77
ab73eba8
JM
78 PR c++/44969
79 * tree.c (cp_tree_equal): Compare type of *CAST_EXPR.
80 * pt.c (iterative_hash_template_arg): Hash type of *CAST_EXPR.
81
d555b1c7
PC
822010-07-19 Paolo Carlini <paolo.carlini@oracle.com>
83
84 PR c++/44969
85 * typeck.c (build_x_compound_expr_from_list): Add tsubst_flags_t
86 parameter.
87 * cp-tree.h: Adjust declaration.
88 * init.c (perform_member_init): Adjust caller.
89 * decl.c (grok_reference_init, cp_finish_decl): Likewise.
90 * typeck2.c (store_init_value): Likewise.
91 (build_functional_cast): Pass complain argument to
92 build_x_compound_expr_from_list.
93
f25669da
JM
942010-07-16 Jason Merrill <jason@redhat.com>
95
ebc258f1
JM
96 PR c++/32505
97 * pt.c (process_partial_specialization): Diagnose partial
98 specialization after instantiation.
99 (most_specialized_class): Add complain parm.
100
f25669da
JM
101 * ptree.c (cxx_print_xnode): Handle TEMPLATE_INFO.
102
6998c7ed
NF
1032010-07-15 Nathan Froyd <froydnj@codesourcery.com>
104
105 * init.c (build_new_1): Use cp_build_function_call_nary instead of
106 cp_build_function_call.
107
10746f37
JM
1082010-07-15 Jason Merrill <jason@redhat.com>
109
110 PR c++/44909
111 * call.c (add_function_candidate): If we're working on an implicit
112 declaration, don't consider candidates that won't match.
113 * typeck.c (same_type_ignoring_top_level_qualifiers_p): Now a fn.
114 * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): Adjust.
115
116 Revert:
117 * cp-tree.h (struct lang_type_class): Add has_user_opeq.
118 (TYPE_HAS_USER_OPEQ): New.
119 * decl.c (grok_special_member_properties): Set it.
120 * class.c (add_implicitly_declared_members): Don't lazily declare
121 constructors/operator= if a base or member has a user-declared one.
122 (check_bases_and_members, check_bases): Adjust.
123 (check_field_decls, check_field_decl): Adjust.
124
9a9d280e
AS
1252010-07-15 Anatoly Sokolov <aesok@post.ru>
126
127 * decl.c (integer_three_node): Remove.
128 (cxx_init_decl_processing): Do not initialize the integer_three_node.
129 * cp-tree.h (integer_three_node): Remove.
130
910ad8de
NF
1312010-07-15 Nathan Froyd <froydnj@codesourcery.com>
132
133 * cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
134 * call.c: Likewise.
135 * class.c: Likewise.
136 * cp-gimplify.c: Likewise.
137 * decl.c: Likewise.
138 * decl2.c: Likewise.
139 * init.c: Likewise.
140 * mangle.c: Likewise.
141 * name-lookup.c: Likewise.
142 * optimize.c: Likewise.
143 * parser.c: Likewise.
144 * pt.c: Likewise.
145 * rtti.c: Likewise.
146 * search.c: Likewise.
147 * semantics.c: Likewise.
148 * typeck.c: Likewise.
149 * typeck2.c: Likewise.
150
57ece258
JM
1512010-07-14 Jason Merrill <jason@redhat.com>
152
535335bf
JM
153 * init.c (sort_mem_initializers): Rename "field_type" to "ctx".
154 (build_field_list): Cache field type.
155
57ece258
JM
156 Implement C++0x unrestricted unions (N2544)
157 * class.c (check_field_decl): Loosen union handling in C++0x.
158 * method.c (walk_field_subobs): Split out from...
159 (synthesized_method_walk): ...here. Set msg before loops.
160 (process_subob_fn): Check for triviality in union members.
161 * init.c (sort_mem_initializers): Splice out uninitialized
162 anonymous unions and union members.
163 (push_base_cleanups): Don't automatically destroy anonymous unions
164 and union members.
165
8caa8b65
JM
1662010-07-13 Jason Merrill <jason@redhat.com>
167
7487bca5
JM
168 PR c++/44909
169 * cp-tree.h (struct lang_type_class): Add has_user_opeq.
170 (TYPE_HAS_USER_OPEQ): New.
171 * decl.c (grok_special_member_properties): Set it.
172 * class.c (add_implicitly_declared_members): Don't lazily declare
173 constructors/operator= if a base or member has a user-declared one.
174 (check_bases_and_members, check_bases): Adjust.
175 (check_field_decls, check_field_decl): Adjust.
176 * method.c (synthesized_method_walk): Initialize check_vdtor.
177
8caa8b65
JM
178 PR c++/44540
179 * mangle.c (write_type): Canonicalize.
180 (canonicalize_for_substitution): Retain cv-quals on FUNCTION_TYPE.
181 (write_CV_qualifiers_for_type): Ignore them in abi>=5.
182
135d47df
PC
1832010-07-13 Paolo Carlini <paolo.carlini@oracle.com>
184
185 PR c++/44908
186 * call.c (convert_like_real): Adjust convert_ptrmem call, pass
187 complain argument.
188 * typeck.c (get_delta_difference): Update prototype, add a
189 tsubst_flags_t parameter; update get_delta_difference_1 calls and
190 add checks for error_mark_node.
191 (get_delta_difference_1): Update prototype, add a tsubst_flags_t
192 parameter; update lookup_base call.
193 (build_ptrmemfunc): Update prototype, add a tsubst_flags_t
194 parameter; update get_delta_difference call and add check for
195 error_mark_node.
196 (convert_ptrmem): Update prototype, add a tsubst_flags_t
197 parameter; update get_delta_difference call and add check for
198 error_mark_node; update build_ptrmemfunc call.
199 (build_static_cast_1): Adjust convert_ptrmem call.
200 (expand_ptrmemfunc_cst): Adjust get_delta_difference call.
201 (cp_build_unary_op): Adjust build_ptrmemfunc call.
202 * cvt.c (cp_convert_to_pointer, convert_force): Adjust convert_ptrmem
203 and build_ptrmemfunc calls.
204 * cp-tree.h: Update build_ptrmemfunc and convert_ptrmem prototypes.
205
248ce2f8
PC
2062010-07-12 Paolo Carlini <paolo.carlini@oracle.com>
207
208 PR c++/44907
209 * call.c (build_temp): Add tsubst_flags_t complain parameter;
210 adjust build_special_member_call call, pass complain.
211 (convert_like_real): Adjust build_temp call, pass complain.
212
02dea3ff
JM
2132010-07-09 Jason Merrill <jason@redhat.com>
214
215 PR c++/43120
216 * cp-tree.h (BV_LOST_PRIMARY): New macro.
217 * class.c (update_vtable_entry_for_fn): Fix covariant thunk logic.
218 Set BV_LOST_PRIMARY.
219 (build_vtbl_initializer): Check BV_LOST_PRIMARY.
220
bf1cb49e
JM
2212010-07-08 Jason Merrill <jason@redhat.com>
222
223 PR c++/43120
224 * class.c (update_vtable_entry_for_fn): Fix handling of dummy
225 virtual bases for covariant thunks.
226
718f9c0f
MLI
2272010-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
228
229 * cp-tree.h: Do not include toplev.h.
bf1cb49e 230
89a40f59
JM
2312010-07-06 Jason Merrill <jason@redhat.com>
232
0060a10a
JM
233 PR c++/44703
234 * call.c (is_std_init_list): Look through typedefs.
235
627bc938
JM
236 PR c++/44778
237 * init.c (build_offset_ref): If scope isn't dependent,
238 don't exit early. Look at TYPE_MAIN_VARIANT.
239 * pt.c (tsubst_copy) [OFFSET_REF]: Do substitution.
240
89a40f59
JM
241 * error.c (dump_function_decl): Don't crash on null DECL_NAME.
242
ebeb2c24
SZ
2432010-07-06 Shujing Zhao <pearly.zhao@oracle.com>
244
245 * cp-tree.h (impl_conv_void): New type.
246 (convert_to_void): Adjust prototype.
247 * cvt.c (convert_to_void): Use impl_conv_void, emit and adjust the
248 diagnostic for easy translation. Change caller.
249 * typeck.c: Update call to convert_to_void.
250 * semantics.c: Likewise.
251 * init.c: Likewise.
252
c021f10b
NF
2532010-07-05 Nathan Froyd <froydnj@codesourcery.com>
254
255 * decl.c (cp_finish_decl): Call add_local_decl.
256 * optimize.c (clone_body): Adjust for new type of cfun->local_decls.
257
394473ab
PC
2582010-07-05 Paolo Carlini <paolo.carlini@oracle.com>
259
260 * pt.c (tsubst): Early declare code = TREE_CODE (t) and use it
261 throughout.
262
6698dd72
SZ
2632010-07-05 Shujing Zhao <pearly.zhao@oracle.com>
264
394473ab
PC
265 PR c++/22138
266 * parser.c (cp_parser_primary_expression): Error if local template is
267 declared.
6698dd72 268
3f59fa1c
LCW
2692010-07-02 Le-Chun Wu <lcwu@google.com>
270
271 PR/44128
272 * name-lookup.c (pushdecl_maybe_friend): Warn when a local decl
273 (variable or type) shadows another type.
274
416f380b
JJ
2752010-07-02 Jakub Jelinek <jakub@redhat.com>
276
277 PR c++/44780
278 * typeck.c (convert_for_assignment): When converting a convertible
279 vector type or objc++ types, call mark_rvalue_use.
280 * typeck2.c (build_m_component_ref): Use return values from
281 mark_rvalue_use or mark_lvalue_use.
282 * class.c (build_base_path): Likewise.
283 * call.c (build_conditional_expr): Likewise.
284
baf7c318
PC
2852010-07-02 Paolo Carlini <paolo.carlini@oracle.com>
286
287 PR c++/44039
288 * pt.c (tsubst_baselink): Return error_mark_node if lookup_fnfields
289 returns NULL_TREE.
290
70f34814
RG
2912010-07-01 Richard Guenther <rguenther@suse.de>
292
293 * cp-gimplify.c (cp_gimplify_expr): Open-code the rhs
294 predicate we are looking for, allow non-gimplified
295 INDIRECT_REFs.
296
fb80065c
PC
2972010-06-30 Paolo Carlini <paolo.carlini@oracle.com>
298
299 PR c++/44628
300 * typeck.c (cp_build_unary_op): Early return error_mark_node when
301 arg is NULL_TREE too.
302 * call.c (convert_class_to_reference): Return error_mark_node when
303 expr is NULL_TREE.
304
6b180c51
MM
3052010-06-30 Michael Matz <matz@suse.de>
306
fb80065c 307 * repo.c (finish_repo): Fix typo.
6b180c51 308
1d468b06
NF
3092010-06-30 Nathan Froyd <froydnj@codesourcery.com>
310
311 * parser.c (cp_parser_omp_for_loop): Use a VEC for for_block.
312
53337422
NF
3132010-06-30 Nathan Froyd <froydnj@codesourcery.com>
314
315 * repo.c (pending_repo): Change type to a VEC.
316 (finish_repo): Adjust for new type of pending_repo.
317 (repo_emit_p): Likewise.
318
6662d794
MLI
3192010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
320
321 * tree.c: Include gimple.h. Do not include tree-flow.h
322 * decl.c: Do not include tree-flow.h
323 * Make-lang.in: Adjust dependencies.
fb80065c 324
0622223a
NF
3252010-06-29 Nathan Froyd <froydnj@codesourcery.com>
326
327 * decl.c (incomplete_var): Declare. Declare VECs containing them.
328 (incomplete_vars): Adjust comment. Change type to a VEC.
329 (maybe_register_incomplete_var): Adjust for new type.
330 (complete_vars): Adjust iteration over incomplete_vars.
331
c4ec9887
NF
3322010-06-29 Nathan Froyd <froydnj@codesourcery.com>
333
334 * decl.c (struct named_label_entry): Change type of bad_decls field
335 to a VEC.
336 (poplevel_named_label_1): Adjust for new type of bad_decls.
337 (check_goto): Likewise.
338
d3a79fcc
JM
3392010-06-29 Jason Merrill <jason@redhat.com>
340
d758e847
JM
341 Enable implicitly declared move constructor/operator= (N3053).
342 * class.c (add_implicitly_declared_members): A class with no
343 explicitly declared copy or move constructor gets both declared
344 implicitly, and similarly for operator=.
345 (check_bases): A type with no copy ctor does not inhibit
346 a const copy ctor in a derived class. It does mean the derived
347 one is non-trivial.
348 (check_field_decl): Likewise.
349 (check_bases_and_members): A nonexistent copy ctor/op= is non-trivial.
350 * tree.c (type_has_nontrivial_copy_init): Adjust semantics.
351 (trivially_copyable_p): Likewise.
352 * call.c (convert_like_real): Use type_has_nontrivial_copy_init.
353 * class.c (finish_struct_bits): Likewise.
354 * tree.c (build_target_expr_with_type): Likewise.
355 * typeck2.c (store_init_value): Likewise.
356
54ca9930
JM
357 Enable implicitly deleted functions (N2346)
358 * class.c (check_bases_and_members): Adjust lambda flags.
359 * method.c (implicitly_declare_fn): Set DECL_DELETED_FN if appropriate.
360
9a71b305
JM
361 * decl2.c (mark_used): Adjust error for use of deleted function.
362
ac177431
JM
363 Machinery to support implicit delete/move.
364 * cp-tree.h: (struct lang_type_class): Add lazy_move_assign,
365 has_complex_move_ctor, has_complex_move_assign bitfields.
366 (CLASSTYPE_LAZY_MOVE_ASSIGN): New.
367 (TYPE_HAS_COMPLEX_MOVE_ASSIGN): New.
368 (TYPE_HAS_COMPLEX_MOVE_CTOR): New.
369 (enum special_function_kind): Add sfk_move_assignment.
370 (LOOKUP_SPECULATIVE): New.
371 * call.c (build_over_call): Return early if it's set.
372 (build_over_call): Use trivial_fn_p.
373 * class.c (check_bases): If the base has no default constructor,
374 the derived one is non-trivial. Handle move ctor/op=.
375 (check_field_decl): Likewise.
376 (check_bases_and_members): Handle move ctor/op=.
377 (add_implicitly_declared_members): Handle CLASSTYPE_LAZY_MOVE_ASSIGN.
378 (type_has_move_constructor, type_has_move_assign): New.
379 * decl.c (grok_special_member_properties): Handle move ctor/op=.
380 * method.c (type_has_trivial_fn, type_set_nontrivial_flag): New.
381 (trivial_fn_p): New.
382 (do_build_copy_constructor): Use it.
383 (do_build_assign_ref): Likewise. Handle move assignment.
384 (build_stub_type, build_stub_object, locate_fn_flags): New.
385 (locate_ctor): Use locate_fn_flags.
386 (locate_copy, locate_dtor): Remove.
387 (get_dtor, get_default_ctor, get_copy_ctor, get_copy_assign): New.
388 (process_subob_fn, synthesized_method_walk): New.
389 (maybe_explain_implicit_delete): New.
390 (implicitly_declare_fn): Use synthesized_method_walk,
391 type_has_trivial_fn, and type_set_nontrivial_flag.
392 (defaulted_late_check): Set DECL_DELETED_FN.
393 (defaultable_fn_check): Handle sfk_move_assignment.
394 (lazily_declare_fn): Clear CLASSTYPE_LAZY_* early. Don't declare
395 implicitly deleted move ctor/op=.
396 * search.c (lookup_fnfields_1): Handle sfk_move_assignment.
397 (lookup_fnfields_slot): New.
398 * semantics.c (omp_clause_info_fndecl): Remove.
399 (cxx_omp_create_clause_info): Use get_default_ctor, get_copy_ctor,
400 get_copy_assign, trivial_fn_p.
401 (trait_expr_value): Adjust call to locate_ctor.
402 * tree.c (special_function_p): Handle sfk_move_assignment.
403
46408846
JM
404 * class.c (type_has_virtual_destructor): New.
405 * cp-tree.h: Declare it.
406 * semantics.c (trait_expr_value): Use it.
407
408 * call.c (build_over_call): Only give warnings with tf_warning.
409
410 * name-lookup.c (pop_scope): Handle NULL_TREE.
411
066ec0a4
JM
412 * cp-tree.h (TYPE_HAS_ASSIGN_REF): Rename to TYPE_HAS_COPY_ASSIGN.
413 (TYPE_HAS_CONST_ASSIGN_REF): Rename to TYPE_HAS_CONST_COPY_ASSIGN.
414 (TYPE_HAS_INIT_REF): Rename to TYPE_HAS_COPY_CTOR.
415 (TYPE_HAS_CONST_INIT_REF): Rename to TYPE_HAS_CONST_COPY_CTOR.
416 (TYPE_HAS_COMPLEX_ASSIGN_REF): Rename to TYPE_HAS_COMPLEX_COPY_ASSIGN.
417 (TYPE_HAS_COMPLEX_INIT_REF): Rename to TYPE_HAS_COMPLEX_COPY_CTOR.
418 (TYPE_HAS_TRIVIAL_ASSIGN_REF): Rename to TYPE_HAS_TRIVIAL_COPY_ASSIGN.
419 (TYPE_HAS_TRIVIAL_INIT_REF): Rename to TYPE_HAS_TRIVIAL_COPY_CTOR.
420 (CLASSTYPE_LAZY_ASSIGNMENT_OP): Rename to CLASSTYPE_LAZY_COPY_ASSIGN.
421 (sfk_assignment_operator): Rename to sfk_copy_assignment.
422 * decl.c, call.c, class.c, init.c, method.c, pt.c, ptree.c: Adjust.
423 * search.c, semantics.c, tree.c: Adjust.
424
2d660b7f
JM
425 * pt.c (dependent_scope_ref_p): Remove.
426 (value_dependent_expression_p): Don't call it.
427 (type_dependent_expression_p): Here either.
428 * init.c (build_offset_ref): Set TREE_TYPE on a qualified-id
429 if the scope isn't dependent.
430
431 * pt.c (convert_nontype_argument): Use mark_lvalue_use if we want
432 a reference.
433
d3a79fcc
JM
434 PR c++/44587
435 * pt.c (has_value_dependent_address): New.
436 (value_dependent_expression_p): Check it.
437 (convert_nontype_argument): Likewise. Call decay_conversion before
438 folding if we want a pointer.
439 * semantics.c (finish_id_expression): Don't add SCOPE_REF if the
440 scope is the current instantiation.
441
7fd7263d
JJ
4422010-06-28 Jakub Jelinek <jakub@redhat.com>
443
444 PR c++/44682
445 * class.c (build_base_path): If want_pointer, call mark_rvalue_use
446 on expr.
447
3b06d379
SB
4482010-06-28 Steven Bosscher <steven@gcc.gnu.org>
449
450 * init.c: Do not include except.h.
451 * decl.c: Likewise.
452 * expr.c: Likewise.
453 * cp-lang.c: Likewise.
454 * pt.c: Likewise.
455 * semantics.c: Likewise.
456 * decl2.c: Likewise.
457 * except.c: Likewise.
458 (init_exception_processing): Do not set the removed
459 lang_protect_cleanup_actions here.
460 (cp_protect_cleanup_actions): Make non-static and remove prototype.
461 (doing_eh): New, moved from except.c but removed the do_warning flag.
462 (expand_start_catch_block): Update doing_eh call.
463 (expand_end_catch_block): Likewise.
464 (build_throw): Likewise.
465 * cp-tree.h: Prototype cp_protect_cleanup_actions.
466 * cp-objcp-common.h: Set LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS to
467 cp_protect_cleanup_actions.
468 * Make-lang.in: Update dependencies.
469
cef62ad4
JM
4702010-06-26 Jason Merrill <jason@redhat.com>
471
472 * call.c (add_function_candidate): Set LOOKUP_COPY_PARM for any
473 constructor called with a single argument that takes a reference
474 to the constructor's class.
475 (BAD_CONVERSION_RANK): New.
476 (compare_ics): Use it to compare bad ICSes.
477
418f840c
JM
4782010-06-25 Joseph Myers <joseph@codesourcery.com>
479
480 * lang-specs.h: Remove +e handling.
481
d166d4c3
AK
4822010-06-24 Andi Kleen <ak@linux.intel.com>
483
484 * parser.c: (cp_parser_question_colon_clause):
485 Switch to use cp_lexer_peek_token.
486 Call warn_for_omitted_condop. Call pedwarn for omitted
487 middle operand.
488
dd6f4f89
JJ
4892010-06-22 Jakub Jelinek <jakub@redhat.com>
490
87867ff6
JJ
491 PR c++/44619
492 * typeck2.c (build_m_component_ref): Call mark_lvalue_use on
493 datum and mark_rvalue_use on component.
494
dd6f4f89
JJ
495 PR c++/44627
496 * error.c (dump_expr): Don't look at CALL_EXPR_ARG (t, 0) if
497 the CALL_EXPR has no arguments.
498
f94ae987
JM
4992010-06-21 Jason Merrill <jason@redhat.com>
500
6d812dd3
JM
501 * typeck.c (comp_except_specs): Fix ce_derived with noexcept.
502
f94ae987
JM
503 * semantics.c (check_trait_type): Check COMPLETE_TYPE_P for array
504 element type.
505
bfdb7b70
NF
5062010-06-17 Nathan Froyd <froydnj@codesourcery.com>
507
508 * name-lookup.c (struct arg_lookup): Convert namespaces and
509 classes fields to VEC.
510 (arg_assoc_namespace): Adjust for new type of namespaces.
511 (arg_assoc_class): Adjust for new type of classes.
512 (lookup_arg_dependent): Use make_tree_vector and
513 release_tree_vector.
514 * typeck2.c (build_x_arrow): Use vec_member.
515
038253e6
MLI
5162010-06-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
517
518 PR c++/44486
519 * error.c (dump_decl): Better wording for anonymous namespace.
520
25d8a217
NF
5212010-06-16 Nathan Froyd <froydnj@codesourcery.com>
522
523 * class.c (build_vtbl_initializer): Adjust computation of new_position
524 and which entry to add padding for.
525
7c69566f
JM
5262010-06-16 Jason Merrill <jason@redhat.com>
527
59f9c2ed
JM
528 * except.c (check_noexcept_r): Return the problematic function.
529 (finish_noexcept_expr): Give -Wnoexcept warning. Add complain parm.
530 * pt.c (tsubst_copy_and_build): Pass it.
531 * parser.c (cp_parser_unary_expression): Likewise.
532 * cp-tree.h: Adjust prototype.
533
7c69566f
JM
534 * method.c (defaulted_late_check): Give the defaulted method
535 the same exception specification as the implicit declaration.
536
756bcf03
JM
5372010-06-15 Jason Merrill <jason@redhat.com>
538
d1a115f8
JM
539 * class.c (add_implicitly_declared_members): Implicit assignment
540 operators can also be virtual overriders.
541 * method.c (lazily_declare_fn): Likewise.
542
0842c29f
JM
543 * call.c (convert_like_real): Give "initializing argument of"
544 information for ambiguous conversion. Give source position
545 of function.
546
e14eaea4
JM
547 * call.c (print_z_candidates): Do print viable deleted candidates.
548 (joust): Don't choose a deleted function just because its worst
549 conversion is better than another candidate's worst.
550
5c77749e
JM
551 * call.c (convert_like_real): Don't complain about
552 list-value-initialization from an explicit constructor.
553
0ba8746d
JM
554 * decl.c (duplicate_decls): Use DECL_IS_BUILTIN rather than test
555 DECL_SOURCE_LOCATION directly.
556
71b8cb01
JM
557 * class.c (type_has_user_provided_default_constructor): Use
558 sufficient_parms_p.
559
756bcf03
JM
560 * call.c (is_subseq): Handle ck_aggr, ck_list.
561 (compare_ics): Treat an aggregate or ambiguous conversion to the
562 same type as involving the same function.
563
9d9f52d3
SZ
5642010-06-13 Shujing Zhao <pearly.zhao@oracle.com>
565
566 * typeck.c (convert_for_assignment): Fix comment. Change message
567 format from %d to %qP.
568 (convert_for_initialization): Fix comment.
569
2f5b91f5
SZ
5702010-06-11 Shujing Zhao <pearly.zhao@oracle.com>
571
572 * cp-tree.h (expr_list_kind): New type.
573 (impl_conv_rhs): New type.
574 (build_x_compound_expr_from_list, convert_for_initialization): Adjust
575 prototype.
576 (typeck.c (convert_arguments): Use impl_conv_rhs and emit the
577 diagnostics for easy translation. Change caller.
578 (convert_for_initialization): Use impl_conv_rhs and change caller.
579 (build_x_compound_expr_from_list): Use expr_list_kind and emit the
580 diagnostics for easy translation. Change caller.
581 * decl.c (bad_spec_place): New enum.
582 (bad_specifiers): Use it and emit the diagnostics for easy
583 translation. Change caller.
584 * pt.c (coerce_template_parms): Put the diagnostics in full sentence.
585
2a4449a3
NF
5862010-06-09 Nathan Froyd <froydnj@codesourcery.com>
587
588 * cp-tree.h (struct saved_scope): Change decl_ns_list field type
589 to a VEC.
590 * decl2.c (cp_write_global_declarations): Adjust for new type of
591 decl_namespace_list.
592 * name-lookup.c (current_decl_namespace): Likewise.
593 (push_decl_namespace): Likewise.
594 (pop_decl_namespace): Likewise.
595
0244e6f7
NF
5962010-06-09 Nathan Froyd <froydnj@codesourcery.com>
597
598 * call.c (build_java_interface_fn_ref): Call build_function_type_list
599 instead of build_function_type.
600 * decl.c (cxx_init_decl_processing): Likewise.
601 (declare_global_var): Likewise.
602 (get_atexit_node): Likewise.
603 (expand_static_init): Likewise.
604 * decl2.c (start_objects): Likewise.
605 (start_static_storage_duration_function): Likewise.
606 * except.c (init_exception_processing): Likewise.
607 (build_exc_ptr): Likewise.
608 (build_throw): Likewise.
609 * rtti.c (throw_bad_cast): Likewise.
610 (throw_bad_typeid): Likewise.
611 (build_dynamic_cast_1): Likewise.
612
86b8fed1
NF
6132010-06-09 Nathan Froyd <froydnj@codesourcery.com>
614
615 * call.c (build_call_n): Call XALLOCAVEC instead of alloca.
616 (build_op_delete_call): Likewise.
617 (build_over_call): Likewise.
618 * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
619 * pt.c (process_partial_specialization): Likewise.
620 (tsubst_template_args): Likewise.
621 * semantics.c (finish_asm_stmt): Likewise.
622
3bb1ed66
NS
6232010-06-08 Nathan Sidwell <nathan@codesourcery.com>
624
625 * decl.c (record_key_method_defined): New, broken out of ...
626 (finish_function): ... here. Call it.
627 (start_decl): Treat aliases as definitions.
628
a9429e29
LB
6292010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
630
631 * typeck2.c (abstract_virtuals_error): Use typed GC allocation.
632
633 * pt.c (maybe_process_partial_specialization): Likewise.
634 (register_specialization): Likewise.
635 (add_pending_template): Likewise.
636 (lookup_template_class): Likewise.
637 (push_tinst_level): Likewise.
638
639 * parser.c (cp_lexer_new_main): Likewise.
640 (cp_lexer_new_from_tokens): Likewise.
641 (cp_token_cache_new): Likewise.
642 (cp_parser_context_new): Likewise.
643 (cp_parser_new): Likewise.
644 (cp_parser_nested_name_specifier_opt): Likewise.
645 (cp_parser_template_id): Likewise.
646
647 * name-lookup.c (binding_entry_make): Likewise.
648 (binding_table_construct): Likewise.
649 (binding_table_new): Likewise.
650 (cxx_binding_make): Likewise.
651 (pushdecl_maybe_friend): Likewise.
652 (begin_scope): Likewise.
653 (push_to_top_level): Likewise.
654
655 * lex.c (init_reswords): Likewise.
656 (retrofit_lang_decl): Likewise.
657 (cxx_dup_lang_specific_decl): Likewise.
658 (copy_lang_type): Likewise.
659 (cxx_make_type): Likewise.
660
661 * decl.c (make_label_decl): Likewise.
662 (check_goto): Likewise.
663 (start_preparsed_function): Likewise.
664 (save_function_data): Likewise.
665
666 * cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
667
668 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
669
670 * class.c (finish_struct_1): Likewise.
671
672 * cp-tree.h (struct lang_type): Add variable_size GTY option.
673 (struct lang_decl): Likewise.
674
675 * parser.c (cp_parser_new): Update comment to not reference
676 ggc_alloc.
677
55cdb6b6
JM
6782010-06-07 Jason Merrill <jason@redhat.com>
679
af88c58f
JM
680 PR c++/44366
681 * error.c (dump_parameters): Mask out TFF_SCOPE.
682 (dump_simple_decl): Don't print the scope of a PARM_DECL.
683 (dump_scope): Remove no-op mask.
684
b0a421e8
JM
685 PR c++/44401
686 * parser.c (cp_parser_lookup_name): Fix naming the constructor.
687
01628e54
JM
688 * cp-tree.h (COMPLETE_OR_OPEN_TYPE_P): New macro.
689 * init.c (build_offset_ref): Use it.
690 * pt.c (maybe_process_partial_specialization): Use it.
691 (instantiate_class_template): Use it.
692 * search.c (lookup_base): Use it.
693
026698d2
JJ
6942010-06-07 Jakub Jelinek <jakub@redhat.com>
695
d84686d1
JJ
696 PR c++/44444
697 * expr.c (mark_exp_read): Handle INDIRECT_REF.
698 * cvt.c (convert_to_void): Handle INDIRECT_REF like
699 handled_component_p.
700
026698d2
JJ
701 PR c++/44443
702 * decl.c (initialize_local_var): If TREE_USED is set on the type,
703 set also DECL_READ_P on the decl.
704
e62b90b4
DS
7052010-05-25 Dodji Seketeli <dodji@redhat.com>
706
707 PR c++/44188
708 * cp-tree.h (typedef_variant_p): Move this declaration to
709 gcc/tree.h.
710 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
711 * decl.c (grokdeclarator): Do not rename debug info of an
712 anonymous tagged type named by a typedef.
713
4c2332c7
JM
7142010-06-05 Fabien Chêne <fabien@gcc.gnu.org>
715
640c2adf
FC
716 PR c++/44086
717 * class.c (check_field_decls): Move the call to
718 check_bitfield_decl before trying to set the
719 CLASSTYPE_READONLY_FIELDS_NEED_INIT flag.
720
39dabefd
SB
7212010-06-05 Steven Bosscher <steven@gcc.gnu.org>
722
723 * typeck.c: Update include path for moved files.
724 * decl.c: Likewise.
725 * rtti.c: Likewise.
726 * cp-gimplify.c: Likewise.
727 * cp-lang.c: Likewise.
728 * pt.c: Likewise.
729 * semantics.c: Likewise.
730 * cxx-pretty-print.h: Likewise.
731 * decl2.c: Likewise.
732 * parser.c: Likewise.
733 * cp-objcp-common.c: Likewise.
734 * cp-tree.h: Likewise.
735 * name-lookup.c: Likewise.
736 * lex.c: Likewise.
737 * name-lookup.h: Likewise.
738 * config-lang.in: Update paths in gtfiles for files in c-family/.
739 * Make-lang.in: Likewise.
740
33c2474d
MF
7412010-06-04 Magnus Fromreide <magfr@lysator.liu.se>
742
743 * cvt.c (cp_convert_to_pointer): Use null_ptr_cst_p.
744 * typeck.c (build_ptrmemfunc): Likewise.
745
d8a0d13e
JM
7462010-06-04 Jason Merrill <jason@redhat.com>
747
247078ec
JM
748 * typeck2.c (merge_exception_specifiers): Adjust merging of
749 throw() and noexcept(true).
750
aa3bf45c
JM
751 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
752 using an uninitialized variable.
753
c56ba354
JM
754 * cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
755 (pp_cxx_expression): Likewise.
756
3a55fb4c
JM
757 Implement noexcept-specification (15.4)
758 * parser.c (cp_parser_exception_specification_opt): Parse it.
759 Give -Wdeprecated warning about throw() specs.
760 * pt.c (tsubst_exception_specification): Handle it.
761 * error.c (dump_exception_spec): Handle it.
c56ba354 762 (dump_expr): Handle NOEXCEPT_EXPR.
3a55fb4c
JM
763 * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
764 * typeck.c (comp_except_specs): Handle compatibility rules.
765 Change exact parm to take an enum.
766 * typeck2.c (merge_exception_specifiers): Handle noexcept.
767 * except.c (nothrow_spec_p, type_noexcept_p): New fns.
768 (type_throw_all_p, build_noexcept_spec): New fns.
769 * cp-tree.h (TYPE_NOTHROW_P, TYPE_NOEXCEPT_P): Use them.
770 (comp_except_specs): Define ce_derived, ce_normal, ce_exact enums.
771 (cp_tree_index): Add CPTI_NOEXCEPT_TRUE_SPEC, CPTI_NOEXCEPT_FALSE_SPEC.
772 (noexcept_true_spec, noexcept_false_spec): New macros.
773 * name-lookup.c (pushdecl_maybe_friend): Adjust.
774 * search.c (check_final_overrider): Adjust.
775 * decl.c (check_redeclaration_exception_specification): Adjust.
776 (use_eh_spec_block): Use type_throw_all_p.
777 (cxx_init_decl_processing): Set noexcept_false_spec,noexcept_true_spec.
778 Give operator new a noexcept-specification in C++0x mode.
779 * tree.c (build_exception_variant, cxx_type_hash_eq): Adjust.
780 (cp_build_type_attribute_variant): Don't test TYPE_RAISES_EXCEPTIONS.
781
0a766368
JM
782 Implement noexcept operator (5.3.7)
783 * cp-tree.def (NOEXCEPT_EXPR): New.
784 * except.c (check_noexcept_r, finish_noexcept_expr): New.
785 * cp-tree.h: Declare finish_noexcept_expr.
786 * parser.c (cp_parser_unary_expression): Parse noexcept-expression.
787 * pt.c (tsubst_copy_and_build): And tsubst it.
788 (type_dependent_expression_p): Handle it.
789 (value_dependent_expression_p): Handle it.
790
d8a0d13e
JM
791 * call.c (build_conditional_expr): Never fold in unevaluated context.
792 * tree.c (build_aggr_init_expr): Propagate TREE_NOTHROW.
793 * semantics.c (simplify_aggr_init_expr): Likewise.
794 * typeck.c (merge_types): Call merge_exception_specifiers.
795 * decl.c (duplicate_decls): Check DECL_SOURCE_LOCATION rather than
796 DECL_ANTICIPATED for preferring new type.
797
bdc6b402
JM
7982010-06-04 Joseph Myers <joseph@codesourcery.com>
799
800 * g++spec.c (lang_specific_driver): Use GCC-specific formats in
801 diagnostics.
802
2aa64966
JJ
8032010-06-04 Jakub Jelinek <jakub@redhat.com>
804
805 PR c++/44412
806 * typeck.c (build_class_member_access_expr): Call mark_exp_read
807 on object for static data members.
808
16c82123
JJ
8092010-06-04 Jakub Jelinek <jakub@redhat.com>
810 Jason Merrill <jason@redhat.com>
811
812 PR c++/44362
813 * call.c (build_conditional_expr): If both arg2 and arg3 are lvalues
814 with the same type, call mark_lvalue_use on both.
815
9d6a019c
NF
8162010-06-03 Nathan Froyd <froydnj@codesourcery.com>
817
818 * class.c (struct vtbl_init_data_s): Remove last_init field.
819 (struct secondary_vptr_vtt_init_data_s): Change type of inits field
820 to a VEC.
821 (finish_vtbls): Use a VEC rather than a TREE_LIST for the accumulated
822 initializers.
823 (build_vtt): Likewise.
824 (initialize_vtable): Take a VEC instead of a tree.
825 (build_vtt_inits): Change return type to void. Take a VEC **
826 instead of a tree *; accumulate results into said VEC.
827 (build_ctor_vtbl_group): Use a VEC rather than a TREE_LIST for the
828 accumulated initializers. Pass the vtable to accumulate_vtbl_inits.
829 (accumulate_vtbl_inits): Add extra vtable tree parameter; take a VEC
830 instead of a tree.
831 (dfs_accumulate_vtbl_inits): Likewise. Change return type to void.
832 (build_vtbl_initializer): Add VEC parameter; accumulate initializers
833 into it.
834 (dfs_build_secondary_vptr_vtt_inits): Use CONSTRUCTOR_APPEND_ELT
835 rather than tree_cons.
836 (build_vbase_offset_vtbl_entries): Likewise.
837 (add_vcall_offset): Likewise.
838 (build_rtti_vtbl_entries): Likewise.
839 * cp-tree.h (initialize_artificial_var): Take a VEC instead of a tree.
840 * decl.c (initialize_artificial_var): Use build_constructor instead
841 of build_constructor_from_list.
842
1c314335
L
8432010-06-03 H.J. Lu <hongjiu.lu@intel.com>
844
845 PR c++/44294
846 * class.c (layout_class_type): Check MAX_FIXED_MODE_SIZE on
847 bit-field.
848
6c07d08b
JW
8492010-06-02 Jonathan Wakely <jwakely.gcc@gmail.com>
850
851 * parser.c (cp_parser_mem_initializer_list): Change error text.
852
53e030f1
JJ
8532010-06-02 Jakub Jelinek <jakub@redhat.com>
854
855 * cp-objcp-common.c (shadowed_var_for_decl): Change into
856 tree_decl_map hashtab from tree_map.
857 (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
858 (init_shadowed_var_for_decl): Adjust initialization.
859
5d588f83
JJ
860 PR c++/44361
861 * cvt.c (convert_to_void): If implicit is NULL, call mark_rvalue_use
862 instead of calling mark_exp_read only when not an assignment.
add86e09 863
9fc8dacc
JJ
864 PR debug/44367
865 * semantics.c (finalize_nrv): Don't copy DECL_ARTIFICIAL, DECL_IGNORED_P,
866 DECL_SOURCE_LOCATION and DECL_ABSTRACT_ORIGIN from var to result.
867 Set DECL_VALUE_EXPR on var.
868
1e003829
JM
8692010-06-02 Jason Merrill <jason@redhat.com>
870
3333a2dd
JM
871 * error.c (dump_type): Improve typedef handling.
872
1e003829
JM
873 PR c++/9726
874 PR c++/23594
875 PR c++/44333
876 * name-lookup.c (same_entity_p): New.
877 (ambiguous_decl): Multiple declarations of the same entity
878 are not ambiguous.
879
e5901560
JM
8802010-06-01 Jason Merrill <jason@redhat.com>
881
4c9b3895
JM
882 DR 990
883 * call.c (add_list_candidates): Prefer the default constructor.
884 (build_aggr_conv): Treat missing initializers like { }.
885 * typeck2.c (process_init_constructor_record): Likewise.
886 * init.c (expand_default_init): Use digest_init for
887 direct aggregate initialization, too.
888
889 * call.c (add_list_candidates): Split out...
890 (build_user_type_conversion_1): ...from here.
891 (build_new_method_call): And here.
892 (implicit_conversion): Propagate LOOKUP_NO_NARROWING.
893
e5901560
JM
894 PR c++/44358
895 * call.c (build_list_conv): Set list-initialization flags properly.
896
f038ec69
NF
8972010-06-01 Nathan Froyd <froydnj@codesourcery.com>
898
899 * typeck2.c (build_x_arrow): Make types_memoized a VEC.
900
36a549b8
AC
9012010-06-01 Arnaud Charlet <charlet@adacore.com>
902 Matthew Gingell <gingell@adacore.com>
903
904 * Make-lang.in (CXX_C_OBJS): Add c-ada-spec.o.
905 * decl2.c: Include langhooks.h and c-ada-spec.h.
906 (cpp_check, collect_source_refs, collect_ada_namespace,
907 collect_all_refs): New functions.
908 (cp_write_global_declarations): Add handling of -fdump-ada-spec.
909 * lang-specs.h: Ditto.
910
450f4293
NF
9112010-05-29 Nathan Froyd <froydnj@codesourcery.com>
912
913 * cp-tree.h (cp_build_function_call_nary): Declare.
914 * typeck.c (cp_build_function_call_nary): Define.
915 * decl.c (register_dtor_fn): Use it instead of
916 cp_build_function_call.
917 (cxx_maybe_build_cleanup): Likewise.
918 * decl2.c (generate_ctor_or_dtor_function): Likewise.
919 * except.c (do_get_exception_ptr): Likewise.
920 (do_begin_catch): Likewise.
921 (do_allocate_exception): Likewise.
922 (do_free_exception): Likewise.
923 (build_throw): Likewise. Use cp_build_function_call_vec instead
924 of cp_build_function_call.
925 (do_end_catch): Likewise.
926
673c6299
NF
9272010-05-29 Nathan Froyd <froydnj@codesourcery.com>
928
929 * cp-tree.h (struct cp_decl_specifier_seq): Move type_location field up.
930 (struct cp_declarator): Move id_loc field up.
931
59cc9210
SB
9322010-05-29 Steven Bosscher <steven@gcc.gnu.org>
933
934 * cp-tree.h (ATTRIBUTE_GCC_CXXDIAG): Remove. Require that
935 this file is included before c-common.h. Define GCC_DIAG_STYLE
936 before including diagnostic-core.h and toplev.h.
937 (pedwarn_cxx98): Use ATTRIBUTE_GCC_DIAG.
938 * pt.c: Include cp-tree.h before c-common.h.
939
bffad7f1
SB
9402010-05-29 Steven Bosscher <steven@gcc.gnu.org>
941
942 * tree.c (c_register_addr_space): Add stub.
943
2dec80c7
JM
9442010-05-28 Joseph Myers <joseph@codesourcery.com>
945
946 * g++spec.c (lang_specific_driver): Use fatal_error instead of
947 fatal.
948
ec4be2f4
DS
9492010-05-28 Dodji Seketeli <dodji@redhat.com>
950
951 Revert fix of PR c++/44188
952 * cp-tree.h (typedef_variant_p): Revert moving this declaration to
953 gcc/tree.h.
954 * tree.c (typedef_variant_p): Revert moving this definition to
955 gcc/tree.c.
956 * decl.c (grokdeclarator): Revert naming typedef handling.
957
1da2ed5f
JM
9582010-05-27 Joseph Myers <joseph@codesourcery.com>
959
960 * call.c: Include diagnostic-core.h instead of diagnostic.h.
961 * cp-lang.c: Don't include diagnostic.h
962 * name-lookup.c: Include diagnostic-core.h instead of
963 diagnostic.h.
964 (cp_emit_debug_info_for_using): Use seen_error.
965 * optimize.c: Include diagnostic-core.h instead of diagnostic.h.
966 * parser.c: Include diagnostic-core.h instead of diagnostic.h.
967 * pt.c (iterative_hash_template_arg): Use seen_error.
968 * repo.c: Include diagnostic-core.h instead of diagnostic.h.
969 * typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
970 * Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
971 cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
972 dependencies.
973
fe08ec12
DS
9742010-05-25 Dodji Seketeli <dodji@redhat.com>
975
976 PR c++/44188
977 * cp-tree.h (typedef_variant_p): Move this declaration to
978 gcc/tree.h.
979 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
980 * decl.c (grokdeclarator): Do not rename debug info of an
981 anonymous tagged type named by a typedef.
982
6ab4e49c
JM
9832010-05-27 Jason Merrill <jason@redhat.com>
984
985 PR c++/43555
986 * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
987 anonymous VLA size.
988
64c31785
KT
9892010-05-27 Kai Tietz <kai.tietz@onevision.com>
990
991 PR bootstrap/44287
992 * rtti.c (emit_support_tinfos): Check for NULL_TREE.
993 * class.c (layout_class_type): Likewise.
994 * decl.c (finish_enum): Likewise.
995 * mangle.c (write_builitin_type): Likewise.
996
bdd71523
KT
9972010-05-26 Kai Tietz <kai.tietz@onevision.com>
998
999 * cp-tree.h (cp_decl_specifier_seq): Add new bifield
1000 explicit_int128_p.
1001 * decl.c (grokdeclarator): Handle __int128.
1002 * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
1003 (cp_parser_simple_type_specifier): Likewise.
1004 * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
1005 * typeck.c (cp_common_type): Handle __int128.
1006 * mangle.c (integer_type_codes): Add itk_int128 and
1007 itk_unsigned_int128.
1008
1dba29f8
JM
10092010-05-26 Jason Merrill <jason@redhat.com>
1010
1011 PR c++/43382
cc423e9d 1012 * pt.c (tsubst_pack_expansion): Don't get confused by recursive
1dba29f8
JM
1013 unification.
1014
fa3adca3
SB
10152010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1016
1017 * cp-lang.c: Do not include expr.h.
1018
d347d97e
SB
10192010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1020
1021 * decl.c: Do not include rtl.h
1022 * semantics.c: Likewise.
1023
245763e3
SB
10242010-05-25 Steven Bosscher <steven@gcc.gnu.org>
1025
1026 * cp-tree.h: Do not include splay-tree.h.
1027 (struct prtmem_cst): Remove unused field and false comment.
1028 * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
1029 * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
1030 * init.c: Do not include rtl.h and expr.h.
1031 * class.c: Do not include rtl.h. Include splay-tree.h.
1032 (build_clone): Use plain NULL instead of NULL_RTX.
1033 * decl.c: Do not include expr.h. Explain why rtl.h has to be
1034 included. Include splay-tree.h.
1035 * method.c: Do not include rtl.h and expr.h.
1036 (use_thunk): Use plain NULL instead of NULL_RTX.
1037 * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
1038 * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
1039 and target.h. Include splay-tree.h.
1040 * expr.c: Do not include rtl.h and expr.h.
1041 * pt.c: Do not include obstack.h and rtl.h.
1042 (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
1043 (tsubst_decl): Likewise.
1044 (instantiate_decl): Likewise.
1045 * semantics.c: Do not include exprt.h and debug.h. Explain why
1046 rtl.h has to be included.
1047 * decl2.c: Do not include rtl.h and expr.h. Include splay-tree.h.
1048 * call.c: Do not include rtl.h and expr.h.
1049 * search.c: Do not include obstack.h and rtl.h.
1050 * friend.c: Do not include rtl.h and expr.h.
1051 * Make-lang.in: Update dependencies.
1052
9602a7a9
JJ
10532010-05-25 Jakub Jelinek <jakub@redhat.com>
1054
1055 PR c++/18249
1056 * parser.c (non_integral_constant): Add NIC_NONE.
1057 (required_token): Add RT_NONE.
1058 (cp_parser_unary_expression): Initialize non_constant_p
1059 to NIC_NONE.
1060 (cp_parser_asm_definition): Initialize missing to RT_NONE.
1061 (cp_parser_primary_expression, cp_parser_postfix_expression,
1062 cp_parser_cast_expression, cp_parser_binary_expression,
1063 cp_parser_functional_cast): Fix formatting.
1064
fd33fd10
SZ
10652010-05-25 Shujing Zhao <pearly.zhao@oracle.com>
1066
1067 PR c++/18249
1068 * parser.c: Remove inclusion of dyn-string.h.
1069 (non_integral_constant): New enum.
1070 (name_lookup_error): New enum.
1071 (required_token): New enum.
1072 (cp_parser_required_error): New function.
1073 (cp_parser_require): Change the type of variable token_desc to
1074 required_token and use cp_parser_required_error.
1075 (cp_parser_require_keyword): Likewise.
1076 (cp_parser_error): Use gmsgid as parameter.
1077 (cp_parser_name_lookup_error): Change the type of variable desired to
1078 name_lookup_error and put the diagnostic in the full sentences. Change
1079 caller.
1080 (cp_parser_non_integral_constant_expression): Change the type of the
1081 variable thing to non_integral_constant and put the diagnostics in
1082 full sentences. Change caller.
1083
12a149a0
EB
10842010-05-24 Eric Botcazou <ebotcazou@adacore.com>
1085
1086 PR middle-end/44100
1087 * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
1088
243fbddd
JM
10892010-05-24 Joseph Myers <joseph@codesourcery.com>
1090
1091 * error.c (cp_diagnostic_starter): Update call to
1092 diagnostic_build_prefix.
1093 (cp_print_error_function,
1094 print_instantiation_partial_context_line): Check show_column flag
1095 in context.
1096
611d6f76
JM
10972010-05-24 Jason Merrill <jason@redhat.com>
1098
1099 PR c++/41510
1100 * decl.c (check_initializer): Don't wrap an init-list in a
1101 TREE_LIST.
1102 * init.c (build_aggr_init): Don't assume copy-initialization if
1103 init has CONSTRUCTOR_IS_DIRECT_INIT.
1104 * call.c (build_new_method_call): Sanity check.
1105
e20463aa
NF
11062010-05-24 Nathan Froyd <froydnj@codesourcery.com>
1107
1108 * rtti.c (tinfo_base_init): Use build_constructor instead of
1109 build_constructor_from_list. Don't cons a tree node for
1110 returning.
1111 (generic_initializer): Use build_constructor_single instead of
1112 build_constructor_from_list.
1113 (ptr_initializer): Use build_constructor instead of
1114 build_constructor_from_list
1115 (ptm_initializer): Likewise.
1116 (class_initializer): Likewise. Take varargs instead of TRAIL.
1117 (get_pseudo_ti_init): Adjust calls to class_initializer. Use
1118 build_constructor instead of build_constructor_from_list.
1119
7a8cba34
SB
11202010-05-22 Steven Bosscher <steven@gcc.gnu.org>
1121
1122 * semantics.c: Include bitmap.h.
1123 * Make-lang.in: Update dependencies.
1124
9f90e80a
JH
11252010-05-22 Jan Hubicka <jh@suse.cz>
1126
1127 * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
1128 comdat vtables.
1129 (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
1130
5d127eeb
JM
11312010-05-21 Joseph Myers <joseph@codesourcery.com>
1132
1133 * cxx-pretty-print.c: Correct merge error.
1134
cf835838
JM
11352010-05-21 Joseph Myers <joseph@codesourcery.com>
1136
1137 * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
1138 (cp_print_error_function): Use diagnostic_abstract_origin macro.
1139 (cp_printer): Handle %K here using percent_K_format.
1140 * cxx-pretty-print.c: Include tree-pretty-print.h.
1141 * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
1142 dependencies.
1143
40013784
SB
11442010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1145
1146 * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
1147 Clean up redundant includes.
1148
1a494ab5
PC
11492010-05-20 Paolo Carlini <paolo.carlini@oracle.com>
1150
1151 PR c++/30298
1152 * decl.c (xref_basetypes): Return false in case of ill-formed
1153 redefinition.
1154
2872152c
JM
11552010-05-19 Jason Merrill <jason@redhat.com>
1156
a3360e77
JM
1157 * call.c (reference_binding): Use cp_build_qualified_type_real
1158 and cp_type_quals consistently.
1159 (add_function_candidate): Likewise.
1160 (build_conditional_expr): Likewise.
1161 (convert_like_real): Likewise.
1162 (type_passed_as): Likewise.
1163 * class.c (add_method): Likewise.
1164 (same_signature_p): Likewise.
1165 (layout_class_type): Likewise.
1166 * decl.c (cxx_init_decl_processing): Likewise.
1167 (cp_fname_init): Likewise.
1168 (grokdeclarator): Likewise.
1169 * decl2.c (cp_reconstruct_complex_type): Likewise.
1170 * init.c (build_new_1): Likewise.
1171 * method.c (do_build_copy_constructor): Likewise.
1172 (implicitly_declare_fn): Likewise.
1173 * pt.c (tsubst_aggr_type): Likewise.
1174 (tsubst): Likewise.
1175 * rtti.c (init_rtti_processing): Likewise.
1176 (build_headof): Likewise.
1177 (build_dynamic_cast_1): Likewise.
1178 (tinfo_base_init): Likewise.
1179 (emit_support_tinfos): Likewise.
1180 * semantics.c (capture_decltype): Likewise.
1181 * tree.c (cv_unqualified): Likewise.
1182 * typeck.c (composite_pointer_type): Likewise.
1183 (string_conv_p): Likewise.
1184
1185 * mangle.c (write_CV_qualifiers_for_type): Tweak.
1186
1187 * call.c (initialize_reference): Use CP_TYPE_CONST_P.
1188 * decl.c (start_decl): Likewise.
1189 * semantics.c (finish_compound_literal): Likewise.
1190 * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
1191 (cp_type_readonly): Remove.
1192 * cp-tree.h: Remove declaration.
1193
a0685b73
JM
1194 * typeck.c (merge_types): Preserve memfn quals.
1195
93e1ddcf
JM
1196 * decl.c (grokdeclarator): Don't check quals on fn type.
1197 * typeck.c (cp_apply_type_quals_to_decl): Likewise.
1198 * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
1199
2872152c
JM
1200 PR c++/44193
1201 * typeck.c (type_memfn_quals): New fn.
1202 (apply_memfn_quals): New fn.
1203 (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
1204 (cp_type_readonly): Use cp_type_quals.
1205 * cp-tree.h: Add declarations.
1206 * tree.c (cp_build_qualified_type_real): Don't set, but do
1207 preserve, quals on FUNCTION_TYPE.
1208 (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
1209 * decl.c (build_ptrmem_type): Likewise.
1210 (grokdeclarator): Likewise.
1211 (static_fn_type): Likewise.
1212 * decl2.c (change_return_type): Likewise.
1213 (cp_reconstruct_complex_type): Likewise.
1214 * pt.c (tsubst_function_type): Likewise.
1215 (unify): Likewise.
1216 (tsubst): Likewise. Drop special FUNCTION_TYPE substitution code.
1217
3fcb9d1b
NF
12182010-05-18 Nathan Froyd <froydnj@codesourcery.com>
1219
1220 * tree.c (build_min_non_dep_call_vec): Update comment.
1221
c8361db1
JM
12222010-05-17 Jason Merrill <jason@redhat.com>
1223
f18ea1bf
JM
1224 * call.c (struct z_candidate): Add explicit_targs field.
1225 (add_template_candidate_real): Set it.
1226 (build_over_call): Use it to control init-list warning.
1227
9d2b7551
JM
1228 PR c++/44157
1229 * call.c (build_over_call): Limit init-list deduction warning to
1230 cases where the argument is actually an init-list.
1231
c8361db1
JM
1232 PR c++/44158
1233 * call.c (build_over_call): Don't do bitwise copy for move ctor.
1234
ad13f229
DS
12352010-05-17 Dodji Seketeli <dodji@redhat.com>
1236 Jason Merrill <jason@redhat.com>
1237
1238 PR c++/44108
1239 * decl.c (compute_array_index_type): Call mark_rvalue_use.
1240
9feb3d6a
JM
12412010-05-15 Jason Merrill <jason@redhat.com>
1242
1243 * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
1244 * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
1245 TYPE_NOEXCEPT_P.
1246 (finish_eh_spec_block): Adjust.
1247
1f910942
JJ
12482010-05-15 Jakub Jelinek <jakub@redhat.com>
1249
1250 PR c++/44148
1251 * pt.c (tsubst): Unshare template argument.
1252
f4ce02c5
SB
12532010-05-15 Steven Bosscher <steven@gcc.gnu.org>
1254
1255 * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
1256 * Make-lang.in: Fix dependencies accordingly.
1257
786f715d
JM
12582010-05-14 Jason Merrill <jason@redhat.com>
1259
b33a0480
JM
1260 C++ DR 475
1261 * except.c (build_throw): Simplify, adjust for DR 475.
1262
9bb1a81b
JM
1263 PR c++/44127
1264 * except.c (dtor_nothrow): Return nonzero for type with
1265 trivial destructor.
1266
786f715d
JM
1267 PR c++/44127
1268 * cp-gimplify.c (gimplify_must_not_throw_expr): Use
1269 gimple_build_eh_must_not_throw.
1270
b5023f3c
MJ
12712010-05-14 Martin Jambor <mjambor@suse.cz>
1272
1273 * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
1274 and define.
1275
a940d033
JW
12762010-05-14 Jonathan Wakely <jwakely.gcc@gmail.com>
1277
1278 * call.c (build_new_method_call): Change warning text.
1279 * typeck2.c (build_functional_cast): Change error text.
1280
74b80262
SZ
12812010-05-14 Shujing Zhao <pearly.zhao@oracle.com>
1282
1283 PR c++/30566
1284 * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
1285 shadowing the outer parameter or variables by the declaration of
1286 nested function in nested structure or class. Warn the shadowing by
1287 the declaration of nested lambda expression.
1288
3a11c665
JM
12892010-05-13 Jason Merrill <jason@redhat.com>
1290
1291 * typeck.c (cp_build_array_ref): Factor out from...
1292 (build_array_ref): ...here. Drop complain parm.
1293 (build_new_op): Adjust.
1294 * class.c (build_vtbl_ref_1): Adjust.
1295 * decl2.c (grok_array_decl): Adjust.
1296 * cp-tree.h: Adjust prototypes.
1297
a2e66caf
JH
12982010-05-13 Jan Hubicka <jh@suse.cz>
1299
1300 * decl.c (cp_finish_decl): Do not worry about used attribute.
1301
5c824000
JM
13022010-05-12 Jason Merrill <jason@redhat.com>
1303
73647d75
JM
1304 * typeck.c (build_array_ref): Take complain parm.
1305 * cp-tree.h: Add it to prototype.
1306 * call.c (build_new_op): Pass it.
1307 * class.c (build_vtbl_ref): Pass it.
1308 * decl2.c (grok_array_decl): Pass it.
1309
5116acc6
JM
1310 PR bootstrap/44048
1311 PR target/44099
1312 * cp-tree.def (NULLPTR_TYPE): Remove.
1313 * cp-tree.h (NULLPTR_TYPE_P): New.
1314 (SCALAR_TYPE_P): Use it.
1315 (nullptr_type_node): New.
1316 (cp_tree_index): Add CPTI_NULLPTR_TYPE.
1317 * decl.c (cxx_init_decl_processing): Call record_builtin_type on
1318 nullptr_type_node.
1319 * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
1320 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
1321 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
1322 * mangle.c (write_type): Likewise.
1323 * name-lookup.c (arg_assoc_type): Likewise.
1324 * typeck.c (build_reinterpret_cast_1): Likewise.
1325 * rtti.c (typeinfo_in_lib_p): Likewise.
1326 (emit_support_tinfos): Remove local nullptr_type_node.
1327
fbfc8363
JM
1328 * cp-tree.h (UNKNOWN_TYPE): Remove.
1329 * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
1330 * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
1331 * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
1332 * class.c (instantiate_type): Check unknown_type_node rather than
1333 UNKNOWN_TYPE.
1334 * name-lookup.c (maybe_push_decl): Likewise.
1335 * rtti.c (get_tinfo_decl_dynamic): Likewise.
1336 (get_typeid): Likewise.
1337 * semantics.c (finish_offsetof): Likewise.
1338
3784b33c
JM
1339 PR c++/20669
1340 * call.c (add_template_candidate_real): If deduction fails, still
1341 add the template as a non-viable candidate.
1342 (equal_functions): Handle template candidates.
1343 (print_z_candidate): Likewise.
1344 (print_z_candidates): Likewise.
1345 (build_new_function_call): Likewise.
1346
d451d5b2
JM
1347 * cp-tree.h (LOOKUP_LIST_ONLY): New.
1348 * call.c (add_candidates): Enforce it.
1349 (build_new_method_call): Try non-list ctor if no viable list ctor.
1350 (build_user_type_conversion_1): Likewise.
1351
404f08f8
JM
1352 * call.c (add_candidates): Distinguish between type(x) and
1353 x.operator type().
1354 (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
1355 (build_new_method_call): Give better error for conversion op.
1356
5c824000
JM
1357 * call.c (add_candidates): Add first_arg and return_type parms.
1358 Add special constructor/conversion op handling.
1359 (convert_class_to_reference): Use it.
1360 (build_user_type_conversion_1): Likewise.
1361 (build_op_call): Likewise.
1362 (build_new_method_call): Likewise.
1363 (build_new_op): Adjust.
1364 (perform_overload_resolution): Adjust.
1365
aac73a6d
PC
13662010-05-11 Paolo Carlini <paolo.carlini@oracle.com>
1367
1368 PR c++/34272
1369 PR c++/43630
1370 PR c++/34491
1371 * pt.c (process_partial_specialization): Return error_mark_node
1372 in case of unused template parameters in partial specialization.
1373
056928b2
JJ
13742010-05-11 Jakub Jelinek <jakub@redhat.com>
1375
1376 PR c++/44062
1377 * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
1378 * cvt.c (convert_to_void): ... but here. If expr is a COMPOUND_EXPR,
1379 look at its second operand.
1380
eaa9d009
JM
13812010-05-10 Jason Merrill <jason@redhat.com>
1382
5a40306b
JM
1383 PR c++/44017
1384 * semantics.c (baselink_for_fns): Revert earlier change.
1385
eaa9d009
JM
1386 PR c++/44045
1387 * typeck.c (cp_build_modify_expr): Complain about assignment to
1388 array from init list.
1389
34655c9e
FC
13902010-05-10 Fabien Chêne <fabien.chene@gmail.com>
1391
1392 PR c++/43719
1393 * decl.c (check_initializer): strip array type before checking for
1394 uninitialized const or ref members.
1395
40bb78ad
FC
13962010-05-07 Fabien Chêne <fabien.chene@gmail.com>
1397
1398 PR c++/43951
1399 * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
1400 error count. Emit errors only if compain is true.
1401 (build_new_1): Do not return error_mark_node if
1402 diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
1403 errors. Delay the check for user-provided constructor.
1404 (perform_member_init): Adjust.
1405 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
1406 prototype.
1407
14c2101d
JM
14082010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
1409 Jason Merrill <jason@redhat.com>
1410
1411 Add support for C++0x nullptr.
1412 * cp-tree.def: Add NULLPTR_TYPE.
1413 * cp-tree.h: Add nullptr_node.
1414 (cp_tree_index): Add CPTI_NULLPTR.
1415 (SCALAR_TYPE_P): Add NULLPTR_TYPE.
1416 * call.c (null_ptr_cst_p): Handle nullptr.
1417 (standard_conversion): Likewise.
1418 (convert_arg_to_ellipsis): Likewise.
1419 * mangle.c (write_type): Likewise.
1420 * name-lookup.c (arg_assoc_type): Likewise.
1421 * parser.c (cp_parser_primary_expression): Likewise.
1422 * typeck.c (cp_build_binary_op): Likewise.
1423 (build_reinterpret_cast_1): Likewise.
1424 * error.c (dump_type): Likewise.
1425 (dump_type_prefix, dump_type_suffix): Likewise.
1426 * decl.c (cxx_init_decl_processing): Likewise.
1427 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
1428 * cvt.c (ocp_convert): Likewise.
1429 * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
1430 nullptr_t tinfo in libsupc++.
1431
941f78d1
JM
14322010-05-06 Jason Merrill <jason@redhat.com>
1433
1434 * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
1435
03a904b5
JJ
14362010-04-22 Jakub Jelinek <jakub@redhat.com>
1437 Dodji Seketeli <dodji@redhat.com>
1438
1439 PR c/18624
1440 * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
1441 Declare ...
1442 * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
1443 * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
1444 (decay_conversion, perform_integral_promotions): Call rvalue_use.
1445 (cp_build_unary_op): Call lvalue_use.
1446 * decl.c (unused_but_set_errorcount): New variable.
1447 (poplevel): Issue -Wunused-but-set-variable diagnostics.
1448 (duplicate_decls): Merge DECL_READ_P flags.
1449 (start_cleanup_fn): Set DECL_READ_P flag.
1450 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
1451 * tree.c (rvalue): Call rvalue_use.
1452 * pt.c (convert_nontype_argument): Likewise.
1453 * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
1454 finish_decltype_type): Likewise.
1455 * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
1456 (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
1457 or rvalue_use depending on the expr.
1458 * init.c (build_new, build_delete): Likewise.
1459 * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
1460
6d729f28
JM
14612010-05-05 Jason Merrill <jason@redhat.com>
1462
1463 PR c++/43787
1464 * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
1465 * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
1466
68fef9f9
PC
14672010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
1468
1469 PR c++/43028
1470 * pt.c (unify): Check each elt for error_mark_node.
1471
b5c0a77e
JM
14722010-05-04 Jason Merrill <jason@redhat.com>
1473
1474 PR c++/38064
1475 * typeck.c (cp_build_binary_op): Allow enums for <> as well.
1476
4ac4b596
PC
14772010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
1478
1479 PR c++/43705
1480 * call.c (build_new_method_call): Return error_mark_node if fns is
1481 NULL_TREE.
1482
f857e9a4
DS
14832010-05-03 Dodji Seketeli <dodji@redhat.com>
1484
1485 PR c++/43953
1486 * pt.c (most_specialized_class): Pretend we are processing
1487 a template decl during the call to coerce_template_parms.
1488
cbb4feb3
JM
14892010-05-03 Jason Merrill <jason@redhat.com>
1490
1491 PR c++/42810
1492 PR c++/43680
1493 * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
1494 from the selected underlying type unless -fstrict-enums. Set
1495 ENUM_UNDERLYING_TYPE to have the restricted range.
1496 * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
1497 * class.c (check_bitfield_decl): Likewise.
1498
13ead6d8
L
14992010-05-01 H.J. Lu <hongjiu.lu@intel.com>
1500
1501 PR c++/43951
1502 * init.c (build_new_1): Revert the accidental checkin in
1503 revision 158918.
1504
5cb6410a
JM
15052010-04-30 Jason Merrill <jason@redhat.com>
1506
1507 PR c++/43868
1508 * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
1509 (pp_cxx_type_specifier_seq): ...here.
1510
9aae8d16
SB
15112010-04-30 Steven Bosscher <steven@gcc.gnu.org>
1512
ccb253b3 1513 * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
9aae8d16
SB
1514 * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
1515
8cdea6ab
SZ
15162010-04-30 Shujing Zhao <pearly.zhao@oracle.com>
1517
1518 PR c++/43779
1519 * typeck.c (warn_args_num): New function.
1520 (convert_arguments): Use warn_args_num to print the diagnostic
1521 messages.
1522
10ab8f62
FC
15232010-04-29 Fabien Chêne <fabien.chene@gmail.com>
1524
1525 PR c++/43890
1526 * init.c (diagnose_uninitialized_cst_or_ref_member): check for
1527 user-provided constructor while recursing.
1528
4b414c93
MLI
15292010-04-28 Manuel López-Ibáñez <manu@gcc.gnu.org>
1530
1531 PR c++/9335
1532 * error.c (print_instantiation_partial_context_line): Handle
1533 recursive instantiation.
1534 (print_instantiation_partial_context): Likewise.
1535
012e6a1e
JM
15362010-04-27 Jason Merrill <jason@redhat.com>
1537
1538 * init.c (perform_member_init): Check CLASS_TYPE_P.
1539
31d1acec
FC
15402010-04-27 Fabien Chêne <fabien.chene@gmail.com>
1541
1542 PR c++/29043
1543 * init.c (perform_member_init): check for uninitialized const or
1544 reference members, including array types.
1545
294e855f
JM
15462010-04-24 Jason Merrill <jason@redhat.com>
1547
1548 * tree.c (get_fns): Split out from get_first_fn.
1549 * cp-tree.h: Declare it.
1550 * search.c (shared_member_p): Use it.
1551 * semantics.c (finish_qualified_id_expr): Simplify.
1552 (finish_id_expression): Simplify.
798ec807 1553
2defb926
JM
1554 * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
1555 whenever object is NULL_TREE. Don't do 'this' capture here.
1556 (finish_qualified_id_expr): Pass NULL_TREE.
1557 (finish_id_expression): Likewise.
1558 (lambda_expr_this_capture): Likewise.
1559
38f1276b
JM
1560 * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
1561 rather than checking current_class_ref directly.
1562 (finish_call_expr): Likewise.
1563
a6846853
JM
1564 PR c++/43856
1565 * name-lookup.c (qualify_lookup): Disqualify lambda op().
1566 * class.c (current_nonlambda_class_type): New fn.
1567 * semantics.c (nonlambda_method_basetype): New.
1568 * cp-tree.h: Declare them.
1569 * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
1570
16de17ae
JM
1571 * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
1572
95b24c84
JM
1573 PR c++/43875
1574 * semantics.c (lambda_return_type): Complain about
1575 braced-init-list.
1576
ea8b8aa0
JM
1577 PR c++/43790
1578 * tree.c (cv_unqualified): Handle error_mark_node.
1579
4a5d353f
JM
1580 PR c++/41468
1581 * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
1582 if we don't want errors.
1583
798ec807
JM
1584 PR c++/41468
1585 * class.c (convert_to_base): Add complain parameter. Pass
1586 ba_quiet to lookup_base if we don't want errors.
1587 (build_vfield_ref): Pass complain to convert_to_base.
1588 * call.c (convert_like_real): Likewise.
1589 (initialize_reference): Likewise.
1590 (perform_direct_initialization_if_possible): Pass complain to
1591 convert_like_real.
1592 * cp-tree.h: Adjust.
1593
6ad86a5b
FC
15942010-04-27 Fabien Chêne <fabien.chene@gmail.com>
1595 Jason Merrill <jason@redhat.com>
1596
1597 PR c++/42844
1598 * decl.c (check_for_uninitialized_const_var): Handle classes that need
1599 constructing, too.
1600 (check_initializer): Call it for classes that need constructing, too.
1601 * class.c (in_class_defaulted_default_constructor): New.
1602 * cp-tree.h: Declare it.
1603
88274c4d
JM
16042010-04-20 Jason Merrill <jason@redhat.com>
1605
1606 PR c++/9335
1607 * init.c (constant_value_1): Treat error_mark_node as a constant
1608 if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
1609 * cvt.c (ocp_convert): Handle getting error_mark_node from
1610 integral_constant_value.
1611 * decl.c (compute_array_index_type): Likewise.
1612
5a80a1dd
DS
16132010-04-20 Dodji Seketeli <dodji@redhat.com>
1614
1615 PR c++/43800
1616 PR c++/43704
1617 * typeck.c (incompatible_dependent_types_p): If one of the
1618 compared types if not a typedef then honour their main variant
1619 equivalence.
1620
1197ce8e
JJ
16212010-04-20 Jakub Jelinek <jakub@redhat.com>
1622
1623 * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
1624
d38f6bc0
DS
16252010-04-19 Dodji Seketeli <dodji@redhat.com>
1626
1627 PR c++/43704
1628 * typeck.c (structural_comptypes): Test dependent typedefs
1629 incompatibility before testing for their main variant based
1630 equivalence.
1631
5a2fa9e8
JJ
16322010-04-19 Jakub Jelinek <jakub@redhat.com>
1633
1634 * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
1635 ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
1636
3b9e5d95
EB
16372010-04-18 Eric Botcazou <ebotcazou@adacore.com>
1638
1639 * decl.c (cxx_init_decl_processing): Remove second argument in call to
1640 build_common_tree_nodes.
1641
943f82e7
JM
16422010-04-14 Jason Merrill <jason@redhat.com>
1643
1644 PR c++/36625
1645 * parser.c (cp_parser_parenthesized_expression_list): Change
1646 is_attribute_list parm to int to indicate whether or not to
1647 handle initial identifier specially.
1648 (cp_parser_attribute_list): Use attribute_takes_identifier_p.
1649
44b2dc6c
JM
16502010-04-13 Jason Merrill <jason@redhat.com>
1651
1652 * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
1653 CLASS_TYPE_P.
1654 * parser.c (cp_parser_lambda_expression): Complain about lambda in
1655 unevaluated context.
1656 * pt.c (iterative_hash_template_arg): Don't crash on lambda.
1657
d6850483
JM
16582010-04-12 Jason Merrill <jason@redhat.com>
1659
e62e4922
JM
1660 PR c++/43641
1661 * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
1662 return value directly.
1663
d6850483
JM
1664 * call.c (type_decays_to): Call cv_unqualified for non-class type.
1665
9d809e8f
FC
16662010-04-12 Fabien Chene <fabien.chene@gmail.com>
1667
1668 PR c++/25811
1669 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
1670 * init.c (build_new_1): Check for uninitialized const members and
1671 uninitialized reference members, when using new without
1672 new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
1673 (diagnose_uninitialized_cst_or_ref_member): Define, call
1674 diagnose_uninitialized_cst_or_ref_member_1.
1675 (diagnose_uninitialized_cst_or_ref_member_1): New function.
1676
3fc20697
RG
16772010-04-12 Richard Guenther <rguenther@suse.de>
1678
1679 PR c++/43611
1680 * semantics.c (expand_or_defer_fn_1): Do not keep extern
1681 template inline functions.
1682
dc8d2739
MLI
16832010-04-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
1684
1685 PR c++/28584
1686 * typeck.c (cp_build_c_cast): Warn for casting integer to larger
1687 pointer type.
1688
2401726e
JM
16892010-04-07 Jason Merrill <jason@redhat.com>
1690
fb4117f8
JM
1691 PR c++/43016
1692 * decl.c (start_preparsed_function): Do defer nested functions.
1693
48326487
JM
1694 PR c++/11094, DR 408
1695 * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
1696 * decl2.c (finish_static_data_member_decl): Set it.
1697 * decl.c (duplicate_decls): Propagate it.
1698 * pt.c (tsubst_decl): Don't substitute the domain of an array
1699 VAR_DECL if it's set.
1700 (regenerate_decl_from_template): Substitute it here.
1701 (type_dependent_expression_p): Return true if it's set.
1702 * semantics.c (finish_decltype_type): Instantiate such a variable.
1703 * typeck.c (cxx_sizeof_expr): Likewise.
1704 (strip_array_domain): New.
1705
9f1b98f0 1706 PR c++/43145
ae099258
JM
1707 * name-lookup.c (current_decl_namespace): Non-static.
1708 (pop_nested_namespace): Sanity check.
1709 * cp-tree.h: Declare current_decl_namespace.
1710 * decl.c (grokvardecl): Use it instead of current_namespace.
1711 (grokfndecl): Likewise.
1712
feb3b88a
JM
1713 PR c++/38392
1714 * pt.c (tsubst_friend_function): Instatiate a friend that has already
1715 been used.
1716
7dcfe861
JM
1717 * pt.c (print_template_statistics): New.
1718 * cp-tree.h: Declare it.
1719 * tree.c (cxx_print_statistics): Call it.
1720
2401726e
JM
1721 PR c++/41970
1722 * decl.c (grokvardecl): Tweak warning message.
1723 (grokfndecl): Likewise.
1724
5fd5c97a
DS
17252010-04-07 Dodji Seketeli <dodji@redhat.com>
1726
1727 PR c++/42697
1728 *pt.c (tsubst_decl): Get the arguments of a specialization from
1729 the specialization template, not from the most general template.
1730
7c094c11
DS
17312010-04-07 Dodji Seketeli <dodji@redhat.com>
1732
1733 PR c++/40239
1734 * typeck2.c (process_init_constructor_record):
1735 value-initialize members that are are not explicitely
1736 initialized.
1737
6addabbb
JZ
17382010-04-07 Jie Zhang <jie@codesourcery.com>
1739
1740 PR c++/42556
1741 * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
1742 when all of its elements are non-constant and have been split out.
1743
d4a2b486
JM
17442010-04-06 Taras Glek <taras@mozilla.com>
1745 Jason Merrill <jason@redhat.com>
1746
1747 * parser.c (cp_parser_class_specifier): Set class location to that
1748 of IDENTIFIER_NODE instead of '{' when possible.
1749 * semantics.c (begin_class_definition): Do not overide locations
1750 with less precise ones.
1751
d5eebac0
JM
17522010-04-06 Jason Merrill <jason@redhat.com>
1753
62daa139
JM
1754 PR c++/43648
1755 * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
1756
d5eebac0
JM
1757 PR c++/43621
1758 * pt.c (maybe_update_decl_type): Check the return value from
1759 push_scope.
1760
9542943d
JM
17612010-04-01 Jason Merrill <jason@redhat.com>
1762
d4b5fb22
JM
1763 * decl.c (next_initializable_field): No longer static.
1764 * cp-tree.h: Declare it.
1765 * call.c (build_aggr_conv): Fail if there are more initializers
1766 than initializable fields.
1767
9542943d
JM
1768 * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
1769 instead of void_zero_node.
1770
d7df0b91
DS
17712010-03-31 Dodji Seketeli <dodji@redhat.com>
1772
1773 PR c++/43558
1774 * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
1775 * pt.c (end_template_parm_list): Store sibling template parms of
1776 each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
1777 (push_template_decl_real): Don't store the containing template decl
1778 into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
1779 * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
1780 of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
1781 Simplify the logic.
1782
ce0ecb98
JM
17832010-03-30 Jason Merrill <jason@redhat.com>
1784
74537078
JM
1785 PR c++/43076
1786 * pt.c (push_template_decl_real): Deal better with running out of
1787 scopes before running out of template parms.
1788
fb077955
JM
1789 PR c++/41185
1790 PR c++/41786
1791 * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
1792 function parameter context. Don't print an error if parsing
1793 tentatively.
1794
ce0ecb98
JM
1795 PR c++/43559
1796 * pt.c (more_specialized_fn): Don't control cv-qualifier check
1797 with same_type_p.
1798
c6cc83d0
JM
17992010-03-26 Jason Merrill <jason@redhat.com>
1800
1801 PR c++/43509
1802 * parser.c (cp_parser_qualifying_entity): Do accept enum names in
1803 c++0x mode, but not other type-names.
1804
5f431950
DS
18052010-03-26 Dodji Seketeli <dodji@redhat.com>
1806
1807 PR c++/43327
1808 * pt.c (add_to_template_args): Support NULL ARGS;
1809 (most_specialized_class): call coerce_template_parms on
1810 template arguments passed to get_class_bindings. Use
1811 add_to_template_args.
1812 (unify): Handle VAR_DECLs.
1813
3910807d
DS
18142010-03-26 Dodji Seketeli <dodji@redhat.com>
1815
1816 * cp-tree.h (get_template_parms_at_level): Change unsigned parm
1817 into int.
1818 * pt.c (get_template_parms_at_level): Adjust.
1819
58f5f6b4
DS
18202010-03-25 Dodji Seketeli <dodji@redhat.com>
1821
1822 PR c++/43206
1823 * cp-tree.h (get_template_parms_at_level): Declare ...
1824 * pt.c (get_template_parms_at_level): ... new function.
1825 * typeck.c (get_template_parms_of_dependent_type): If a template
1826 type parm's DECL_CONTEXT isn't yet set, get its siblings from
1827 current_template_parms. Use get_template_parms_at_level. Remove
1828 useless test.
1829 (incompatible_dependent_types_p): If we get empty parms from just one
1830 of the template type parms we are comparing then the template parms are
1831 incompatible.
1832
bff0b1a6
JM
18332010-03-24 Jason Merrill <jason@redhat.com>
1834
1835 PR c++/43502
1836 * parser.c (make_declarator): Initialize id_loc.
1837 (cp_parser_lambda_declarator_opt): And set it.
1838
c6be04ad
JM
18392010-03-23 Jason Merrill <jason@redhat.com>
1840
1841 Make lambda conversion op and op() non-static.
1842 * semantics.c (maybe_add_lambda_conv_op): Make non-static.
1843 Also add the thunk function returned by the conversion op.
1844 Mark the conversion deleted if the op() is variadic.
1845 * decl2.c (mark_used): Give helpful message about deleted conversion.
1846 * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
1847 * semantics.c (finish_this_expr): Adjust.
1848 * mangle.c (write_closure_type_name): Adjust.
1849 * decl.c (grok_op_properties): Don't allow it.
1850 * call.c (build_user_type_conversion_1): No static conversion ops.
1851 (build_op_call): Or op().
1852
1853 * decl2.c (change_return_type): Fix 'this' quals.
1854
18932737
JM
18552010-03-22 Jason Merrill <jason@redhat.com>
1856
cc72bbaa
JM
1857 PR c++/43333
1858 * tree.c (pod_type_p): Use old meaning in C++98 mode.
1859
18932737
JM
1860 PR c++/43281
1861 * pt.c (contains_auto_r): New fn.
1862 (do_auto_deduction): Use it.
1863 (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
1864
7801b86a
SM
18652010-03-20 Simon Martin <simartin@users.sourceforge.net>
1866
1867 PR c++/43081:
1868 * decl2.c (grokfield): Handle invalid initializers for member
1869 functions.
1870
39bac010
DS
18712010-03-20 Dodji Seketeli <dodji@redhat.com>
1872
1873 PR c++/43375
1874 * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
1875 is NULL.
1876 * decl2.c (vague_linkage_p): Likewise.
1877
8269067b
PC
18782010-03-18 Paolo Carlini <paolo.carlini@oracle.com>
1879
1880 PR c++/43418
1881 * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
1882 false, in the cp_parser_expression_statement call.
1883
1b88f240
JM
18842010-03-05 Jason Merrill <jason@redhat.com>
1885
1886 * mangle.c (mangle_decl): Give name collision error even without
1887 ASM_OUTPUT_DEF.
1888
83ff92fb
MP
18892010-03-04 Marco Poletti <poletti.marco@gmail.com>
1890
1891 * pt.c (process_partial_specialization): Use error_n instead of
1892 error.
1893
28fd1fc1
L
18942010-03-03 Jason Merrill <jason@redhat.com>
1895
1896 PR c++/12909
1897 * mangle.c (mangle_decl): Handle VAR_DECL, too.
1898
58a15cf8
JM
18992010-03-03 Jason Merrill <jason@redhat.com>
1900
1901 PR c++/12909
1902 * mangle.c: Include cgraph.h.
1903 (mangle_decl): If the mangled name will change in a later
1904 ABI version, make the later mangled name an alias.
1905 * method.c (make_alias_for): Copy DECL_ARGUMENTS.
1906 * Make-lang.in (mangle.o): Depend on cgraph.h.
d6dcdbd5
JM
1907 * method.c (make_alias_for): Handle VAR_DECL, too.
1908 * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
1909 * tree.c (no_linkage_check): Adjust.
1910 * decl.c (maybe_commonize_var): Adjust.
1911 * cp-tree.h: Adjust.
58a15cf8 1912
894e2652
SZ
19132010-03-01 Marco Poletti <poletti.marco@gmail.com>
1914
1915 * pt.c (redeclare_class_template): Use error_n and inform_n.
1916
2a3dbebf
MM
19172010-02-27 Mark Mitchell <mark@codesourcery.com>
1918
1919 PR c++/42748
1920 * cp-tree.h (push_tinst_level): Declare.
1921 (pop_tinst_level): Likewise.
1922 * pt.c (push_tinst_level): Give it external linkage.
1923 (pop_tinst_level): Likewise.
1924 * mangle.c (mangle_decl_string): Set the source location to that
1925 of the decl while mangling.
1926
baae602e
SM
19272010-02-27 Simon Martin <simartin@users.sourceforge.net>
1928
1929 PR c++/42054
1930 * pt.c (redeclare_class_template): Return false if there are erroneous
1931 template parameters.
1932
124e0d27
MLI
19332010-02-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
1934
1935 * pt.c (push_tinst_level): Replace -ftemplate-depth- with
1936 -ftemplate-depth=.
1937
254d1a5a
JM
19382010-02-24 Jason Merrill <jason@redhat.com>
1939
b66093b0
JM
1940 PR c++/12909
1941 * mangle.c (write_type): Give -Wabi warning for old vector mangling.
1942
254d1a5a
JM
1943 * class.c (layout_class_type): Don't give -Wabi warning for a bug
1944 in a previous ABI version.
1945
c6569cd0
JM
19462010-02-23 Jason Merrill <jason@redhat.com>
1947
1948 PR c++/43143
1949 * typeck2.c (digest_init_r): Accept value init of array.
1950
a98c2819
MLI
19512010-02-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
1952
1953 PR c++/43126
1954 * typeck.c (convert_arguments): Update error message.
a98c2819 1955
3a7ba040
MS
19562010-02-22 Mike Stump <mikestump@comcast.net>
1957
1958 PR c++/43125
1959 * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
1960
f89b94d9
MLI
19612010-02-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
1962
1963 PR c++/23510
1964 * error.c (print_instantiation_partial_context_line): New.
1965 (print_instantiation_partial_context): Print at most 12 contexts,
1966 skip the rest with a message.
1967
04afbf1c
DS
19682010-02-21 Dodji Seketeli <dodji@redhat.com>
1969
1970 PR c++/42824
1971 * pt.c (lookup_template_class): Better support of specialization
1972 of member of class template implicit instantiation.
1973
17251338
MLI
19742010-02-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
1975
1976 PR c++/35669
1977 * call.c (conversion_null_warnings): Replace -Wconversion with
1978 -Wconversion-null.
1979 * cvt.c (build_expr_type_conversion): Likewise.
1980
935c0a5d
JM
19812010-02-18 Jason Merrill <jason@redhat.com>
1982
7c08df6c
JM
1983 PR c++/42837
1984 * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
1985
1ff6b2c8
JM
1986 PR c++/43108
1987 * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
1988 C build_binary_op.
1989 * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
1990 * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
1991
7890246f
JM
1992 PR c++/43070
1993 * semantics.c (finish_goto_stmt): Don't call decay_conversion.
1994
04daa92b
JM
1995 PR c++/26261
1996 PR c++/43101
1997 * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
1998 (maybe_update_decl_type): New fn.
1999 * parser.c (cp_parser_init_declarator): Use it.
2000
935c0a5d
JM
2001 PR c++/43109
2002 * semantics.c (begin_class_definition): Don't crash on unnamed ns.
2003
d29760ad
JM
20042010-02-17 Jason Merrill <jason@redhat.com>
2005
9ba59715
JM
2006 PR c++/43075
2007 * call.c (build_over_call): Don't create zero-sized assignments.
2008 * cp-gimplify.c (cp_genericize_r): Don't remove them here.
2009 * cp-objcp-common.c (cp_expr_size): Remove.
2010 * cp-tree.h: Remove prototype.
2011
77278f4a
JM
2012 PR c++/43069
2013 * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
2014 decl we looked up doesn't match.
2015
85a52ea5
JM
2016 PR c++/43093
2017 * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
2018 have an INIT_EXPR anymore.
2019
d29760ad
JM
2020 PR c++/43079
2021 * pt.c (convert_nontype_argument): Change assert to test.
2022
38e40fcd
JM
20232010-02-16 Jason Merrill <jason@redhat.com>
2024
0d08582e
JM
2025 * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
2026
1e2ddf80
JM
2027 PR c++/43031
2028 * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
2029 VIEW_CONVERT_EXPR for conversions between structural equality types
2030 that the back end can't tell are the same.
2031
38e40fcd
JM
2032 PR c++/43036
2033 * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
2034 cv-quals from element here.
2035 (cp_build_qualified_type_real): Not here. Preserve typedef name.
2036
1acb8caa
JM
20372010-02-14 Jason Merrill <jason@redhat.com>
2038
2039 PR c++/41997
2040 * semantics.c (finish_compound_literal): Use
2041 cp_apply_type_quals_to_decl when creating a static variable.
2042
da7d88bf
JM
20432010-02-12 Jason Merrill <jason@redhat.com>
2044
2045 PR c++/43024
2046 * name-lookup.h (current_binding_level): Check for null
2047 cp_function_chain.
2048
96b4a0b5
JM
20492010-02-12 Jason Merrill <jason@redhat.com>
2050
2051 PR c++/43054
76a25412 2052 * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
96b4a0b5 2053
2e034e32
JJ
20542010-02-12 Jakub Jelinek <jakub@redhat.com>
2055
2056 PR c++/43033
2057 * name-lookup.c (pushdecl_maybe_friend): Check default args of t
2058 instead of x.
2059
19030d77
JM
20602010-02-10 Jason Merrill <jason@redhat.com>
2061
2062 PR c++/41896
2063 * semantics.c (outer_lambda_capture_p): Revert.
2064 (add_capture): Only finish_member_declaration if
2065 we're in the lambda class.
2066 (register_capture_members): New.
2067 * cp-tree.h: Declare it.
2068 * parser.c (cp_parser_lambda_expression): Call it.
2069
2cb95a6a
JM
20702010-02-10 Jason Merrill <jason@redhat.com>
2071
2072 PR c++/41896
2073 * semantics.c (outer_lambda_capture_p): Use current_function_decl
2074 instead of current_class_type.
2075
f1c3cf3c
JM
20762010-02-10 Jason Merrill <jason@redhat.com>
2077
2078 PR c++/42983, core issue 906
2079 * method.c (defaultable_fn_check): Check virtualness.
2080
7a79ff3b
JM
20812010-02-10 Jason Merrill <jason@redhat.com>
2082
2083 PR c++/43016
2084 * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
2085
f25a2b52
SZ
20862010-02-10 Shujing Zhao <pearly.zhao@oracle.com>
2087
2088 * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
2089 * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
2090 translation.
2091 * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
2092 (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
2093 (cp_parser_parameter_declaration)
2094 (cp_parser_exception_specification_opt)
2095 (cp_parser_exception_declaration): Likewise.
2096 * pt.c (check_default_tmpl_args): Likewise.
2097 * search.c (lookup_field_r): Likewise.
2098
0bbe864d
JM
20992010-02-09 Jason Merrill <jason@redhat.com>
2100
2101 PR c++/42399
2102 * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
2103
643d4cd6
JM
21042010-02-09 Jason Merrill <jason@redhat.com>
2105
2106 PR c++/42370
2107 * decl2.c (change_return_type): New fn.
2108 * semantics.c (apply_lambda_return_type): Use it.
2109 * cp-tree.h: Declare it.
2110
6561cdf6
RG
21112010-02-05 Richard Guenther <rguenther@suse.de>
2112
2113 * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
2114 * cp-lang.c: Include gt-cp-cp-lang.h.
2115 * config-lang.in (gtfiles): Add cp/cp-lang.c.
2116
3cdabe3b
DS
21172010-02-05 Dodji Seketeli <dodji@redhat.com>
2118
2119 PR c++/42915
2120 * typeck.c (get_template_parms_of_dependent_type): Try getting
2121 the template parameters fromt the type itself first.
2122
abfe01ce
JM
21232010-02-03 Jason Merrill <jason@redhat.com>
2124
f000c6a7
JM
2125 PR c++/4926
2126 PR c++/38600
2127 * mangle.c (write_unqualified_id): Split out from write_expression.
2128 (write_unqualified_name): Call it.
2129 (write_member_name): Likewise.
2130 (write_expression): Support TEMPLATE_ID_EXPR.
2131 Disambiguate operator names.
2132
abfe01ce
JM
2133 PR c++/12909
2134 * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
2135 -fabi-version=4.
2136
e6ca6e2a
JM
21372010-02-02 Jason Merrill <jason@redhat.com>
2138
2139 PR c++/41090
2140 * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
2141 * optimize.c (clone_body): Remap their initializers when making base
2142 variants.
2143 (maybe_clone_body): Complain if multiple clones aren't safe.
2144
1a048f82
DS
21452010-01-29 Dodji Seketeli <dodji@redhat.com>
2146
2147 PR c++/42758
2148 PR c++/42634
2149 PR c++/42336
2150 PR c++/42797
2151 PR c++/42880
2152 * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
2153 SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
2154 GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
2155 * pt.c (coerce_template_parms, type_unification_real,
2156 expand_template_argument_pack, coerce_template_parameter_pack):
2157 Set the non default template args count.
2158 (current_template_args): Always set non defaulted
2159 template args count when compiled with --enable-checking
2160 (tsubst_template_args, type_unification_real): Propagate the non
2161 defaulted template args count.
2162 * error.c (get_non_default_template_args_count): Renamed
2163 count_non_default_template_args into this. Don't calculate the
2164 non default template argument count anymore. Use the new
2165 accessor macros above to get it.
2166 (dump_template_argument_list, dump_type, dump_decl,
2167 dump_template_parms): Adjust.
2168 * parser.c (cp_parser_template_argument_list): Always set defaulted
2169 template args count when compiled with --enable-checking.
2170
9ee5ebeb
SZ
21712010-01-29 Shujing Zhao <pearly.zhao@oracle.com>
2172
2173 * decl.c (redeclaration_error_message): Wrap the return messages into
2174 G_() for easy translation.
2175
cd924144
JM
21762010-01-28 Jason Merrill <jason@redhat.com>
2177
2178 PR c++/42880
2179 * semantics.c (begin_class_definition): Don't use type_as_string.
2180
20c202f3
DS
21812010-01-28 Dodji Seketeli <dodji@redhat.com>
2182
2183 PR c++/42713
2184 PR c++/42820
2185 * typeck.c (get_template_parms_of_dependent_type): Factorized
2186 this out of incompatible_template_type_parms_p
2187 (incompatible_dependent_types_p): Renamed
2188 incompatible_template_type_parms_p into this. Make it detect
2189 two incompatible dependent typedefs too.
2190 (structural_comptypes): Use incompatible_dependent_types_p.
2191 * pt.c (get_template_info):
2192 Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
2193
ebf0bf7f
JJ
21942010-01-20 Janis Johnson <janis187@us.ibm.com>
2195 Jason Merrill <jason@redhat.com>
2196
2197 * mangle.c (write_type): Mangle transparent record as member type.
2198 * semantics.c (begin_class_definition): Recognize decimal classes
2199 and set TYPE_TRANSPARENT_AGGR.
2200
4d43dcde
JM
22012010-01-20 Jason Merrill <jason@redhat.com>
2202
2203 PR c++/42338
2204 * mangle.c (write_expression): Handle tree codes that have extra
2205 arguments in the middle-end.
2206
4227d4a1
PC
22072010-01-20 Paolo Carlini <paolo.carlini@oracle.com>
2208
2209 PR c++/42038
2210 * except.c (expand_start_catch_block): Deal correctly with
2211 do_begin_catch returning error_mark_node.
2212
e4672ccd
JM
22132010-01-20 Jason Merrill <jason@redhat.com>
2214
a402c1b1
JM
2215 PR c++/41788
2216 * class.c (layout_class_type): Set packed_maybe_necessary for packed
2217 non-PODs.
2218
1f4a7a48
JM
2219 PR c++/41920
2220 * semantics.c (build_lambda_object): Call mark_used on captured
2221 variables.
2222
e4672ccd
JM
2223 PR c++/40750
2224 * decl.c (grokdeclarator): Clear type_quals for a member function
2225 declared using a typedef. Don't complain about adding cv-quals
2226 to a function typedef in C++0x mode.
2227
1124098b
JJ
22282010-01-20 Jakub Jelinek <jakub@redhat.com>
2229
2230 * decl.c (create_array_type_for_decl): Remove set but not used
2231 variable error_msg. Remove break stmts after return stmts.
2232
11d7788d
DS
22332010-01-19 Dodji Seketeli <dodji@redhat.com>
2234
2235 * error.c (dump_template_parms, count_non_default_template_args):
2236 Revert fix of PR c++/42634.
2237
ebea03e0
DS
22382010-01-18 Dodji Seketeli <dodji@redhat.com>
2239
2240 PR c++/42634
2241 * error.c (dump_template_parms): Use innermost template
2242 arguments before calling count_non_default_template_args.
2243 (count_non_default_template_args): We are being called with
2244 template innermost arguments now. There is no need to ensure
2245 that again.
2246
a5cf630e
DS
22472010-01-18 Dodji Seketeli <dodji@redhat.com>
2248
2249 PR c++/42766
2250 * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
2251
c4471bb2
DS
22522010-01-17 Dodji Seketeli <dodji@redhat.com>
2253
2254 PR c++/42697
2255 *pt.c (tsubst_decl): Revert commit for PR c++/42697.
2256
4548cb4b
DS
22572010-01-17 Dodji Seketeli <dodji@redhat.com>
2258
2259 PR c++/42697
2260 *pt.c (tsubst_decl): Get the arguments of a specialization from
2261 the specialization template, not from the most general template.
2262
d1c05c88
JM
22632010-01-16 Jason Merrill <jason@redhat.com>
2264
2265 PR c++/42761
2266 * semantics.c (finish_decltype_type): Within a template, treat
2267 unresolved CALL_EXPR as dependent.
2268
58be9ce9
DS
22692010-01-15 Dodji Seketeli <dodji@redhat.com>
2270
2271 * error.c (dump_template_parms,count_non_default_template_args):
2272 Revert changes of PR c++/42634.
2273
ef5d1181
JJ
22742010-01-14 Jakub Jelinek <jakub@redhat.com>
2275
2276 PR middle-end/42674
2277 * decl.c (finish_function): Don't emit -Wreturn-type warnings in
2278 functions with noreturn attribute.
2279
2d1a618e
JM
22802010-01-14 Jason Merrill <jason@redhat.com>
2281
6700a285
JM
2282 PR c++/42701
2283 * call.c (build_new_method_call): Don't free the vec here.
2284
2d1a618e
JM
2285 PR c++/42655
2286 * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
2287
a5859aaf
DS
22882010-01-13 Dodji Seketeli <dodji@redhat.com>
2289
2290 PR c++/42634
2291 * error.c (dump_template_parms): Use innermost template
2292 arguments before calling count_non_default_template_args.
2293 (count_non_default_template_args): We are being called with
2294 template innermost arguments now. There is no need to ensure
2295 that again.
2296
c8f4e43a
DS
22972010-01-07 Dodji Seketeli <dodji@redhat.com>
2298
2299 c++/40155
2300 * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
2301 arguments that were previously deduced.
2302
d097567d
JM
23032010-01-05 Jason Merrill <jason@redhat.com>
2304
2305 * pt.c (unify_pack_expansion): Handle deduction from init-list.
2306 * call.c (build_over_call): Don't complain about it.
2307
4b4a42c4
JM
23082010-01-04 Jason Merrill <jason@redhat.com>
2309
282c399b
JM
2310 PR c++/42555
2311 * pt.c (tsubst_decl): Don't apply type attributes in place.
2312
4b4a42c4
JM
2313 PR c++/42567
2314 * semantics.c (describable_type): Remove decltype comment and
2315 semantics.
2316
ad41bd84
JM
2317
2318\f
0bdf1263 2319Copyright (C) 2010 Free Software Foundation, Inc.
ad41bd84
JM
2320
2321Copying and distribution of this file, with or without modification,
2322are permitted in any medium without royalty provided the copyright
2323notice and this notice are preserved.
2f5b91f5 2324
This page took 0.726221 seconds and 5 git commands to generate.