]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
utils.c (init_gnat_to_gnu): Use typed GC allocation.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
a9429e29
LB
12010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2
3 * typeck2.c (abstract_virtuals_error): Use typed GC allocation.
4
5 * pt.c (maybe_process_partial_specialization): Likewise.
6 (register_specialization): Likewise.
7 (add_pending_template): Likewise.
8 (lookup_template_class): Likewise.
9 (push_tinst_level): Likewise.
10
11 * parser.c (cp_lexer_new_main): Likewise.
12 (cp_lexer_new_from_tokens): Likewise.
13 (cp_token_cache_new): Likewise.
14 (cp_parser_context_new): Likewise.
15 (cp_parser_new): Likewise.
16 (cp_parser_nested_name_specifier_opt): Likewise.
17 (cp_parser_template_id): Likewise.
18
19 * name-lookup.c (binding_entry_make): Likewise.
20 (binding_table_construct): Likewise.
21 (binding_table_new): Likewise.
22 (cxx_binding_make): Likewise.
23 (pushdecl_maybe_friend): Likewise.
24 (begin_scope): Likewise.
25 (push_to_top_level): Likewise.
26
27 * lex.c (init_reswords): Likewise.
28 (retrofit_lang_decl): Likewise.
29 (cxx_dup_lang_specific_decl): Likewise.
30 (copy_lang_type): Likewise.
31 (cxx_make_type): Likewise.
32
33 * decl.c (make_label_decl): Likewise.
34 (check_goto): Likewise.
35 (start_preparsed_function): Likewise.
36 (save_function_data): Likewise.
37
38 * cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
39
40 * cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
41
42 * class.c (finish_struct_1): Likewise.
43
44 * cp-tree.h (struct lang_type): Add variable_size GTY option.
45 (struct lang_decl): Likewise.
46
47 * parser.c (cp_parser_new): Update comment to not reference
48 ggc_alloc.
49
55cdb6b6
JM
502010-06-07 Jason Merrill <jason@redhat.com>
51
af88c58f
JM
52 PR c++/44366
53 * error.c (dump_parameters): Mask out TFF_SCOPE.
54 (dump_simple_decl): Don't print the scope of a PARM_DECL.
55 (dump_scope): Remove no-op mask.
56
b0a421e8
JM
57 PR c++/44401
58 * parser.c (cp_parser_lookup_name): Fix naming the constructor.
59
01628e54
JM
60 * cp-tree.h (COMPLETE_OR_OPEN_TYPE_P): New macro.
61 * init.c (build_offset_ref): Use it.
62 * pt.c (maybe_process_partial_specialization): Use it.
63 (instantiate_class_template): Use it.
64 * search.c (lookup_base): Use it.
65
026698d2
JJ
662010-06-07 Jakub Jelinek <jakub@redhat.com>
67
d84686d1
JJ
68 PR c++/44444
69 * expr.c (mark_exp_read): Handle INDIRECT_REF.
70 * cvt.c (convert_to_void): Handle INDIRECT_REF like
71 handled_component_p.
72
026698d2
JJ
73 PR c++/44443
74 * decl.c (initialize_local_var): If TREE_USED is set on the type,
75 set also DECL_READ_P on the decl.
76
e62b90b4
DS
772010-05-25 Dodji Seketeli <dodji@redhat.com>
78
79 PR c++/44188
80 * cp-tree.h (typedef_variant_p): Move this declaration to
81 gcc/tree.h.
82 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
83 * decl.c (grokdeclarator): Do not rename debug info of an
84 anonymous tagged type named by a typedef.
85
4c2332c7
JM
862010-06-05 Fabien ChĂȘne <fabien@gcc.gnu.org>
87
640c2adf
FC
88 PR c++/44086
89 * class.c (check_field_decls): Move the call to
90 check_bitfield_decl before trying to set the
91 CLASSTYPE_READONLY_FIELDS_NEED_INIT flag.
92
39dabefd
SB
932010-06-05 Steven Bosscher <steven@gcc.gnu.org>
94
95 * typeck.c: Update include path for moved files.
96 * decl.c: Likewise.
97 * rtti.c: Likewise.
98 * cp-gimplify.c: Likewise.
99 * cp-lang.c: Likewise.
100 * pt.c: Likewise.
101 * semantics.c: Likewise.
102 * cxx-pretty-print.h: Likewise.
103 * decl2.c: Likewise.
104 * parser.c: Likewise.
105 * cp-objcp-common.c: Likewise.
106 * cp-tree.h: Likewise.
107 * name-lookup.c: Likewise.
108 * lex.c: Likewise.
109 * name-lookup.h: Likewise.
110 * config-lang.in: Update paths in gtfiles for files in c-family/.
111 * Make-lang.in: Likewise.
112
33c2474d
MF
1132010-06-04 Magnus Fromreide <magfr@lysator.liu.se>
114
115 * cvt.c (cp_convert_to_pointer): Use null_ptr_cst_p.
116 * typeck.c (build_ptrmemfunc): Likewise.
117
d8a0d13e
JM
1182010-06-04 Jason Merrill <jason@redhat.com>
119
247078ec
JM
120 * typeck2.c (merge_exception_specifiers): Adjust merging of
121 throw() and noexcept(true).
122
aa3bf45c
JM
123 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Avoid
124 using an uninitialized variable.
125
c56ba354
JM
126 * cxx-pretty-print.c (pp_cxx_unary_expression): Handle NOEXCEPT_EXPR.
127 (pp_cxx_expression): Likewise.
128
3a55fb4c
JM
129 Implement noexcept-specification (15.4)
130 * parser.c (cp_parser_exception_specification_opt): Parse it.
131 Give -Wdeprecated warning about throw() specs.
132 * pt.c (tsubst_exception_specification): Handle it.
133 * error.c (dump_exception_spec): Handle it.
c56ba354 134 (dump_expr): Handle NOEXCEPT_EXPR.
3a55fb4c
JM
135 * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
136 * typeck.c (comp_except_specs): Handle compatibility rules.
137 Change exact parm to take an enum.
138 * typeck2.c (merge_exception_specifiers): Handle noexcept.
139 * except.c (nothrow_spec_p, type_noexcept_p): New fns.
140 (type_throw_all_p, build_noexcept_spec): New fns.
141 * cp-tree.h (TYPE_NOTHROW_P, TYPE_NOEXCEPT_P): Use them.
142 (comp_except_specs): Define ce_derived, ce_normal, ce_exact enums.
143 (cp_tree_index): Add CPTI_NOEXCEPT_TRUE_SPEC, CPTI_NOEXCEPT_FALSE_SPEC.
144 (noexcept_true_spec, noexcept_false_spec): New macros.
145 * name-lookup.c (pushdecl_maybe_friend): Adjust.
146 * search.c (check_final_overrider): Adjust.
147 * decl.c (check_redeclaration_exception_specification): Adjust.
148 (use_eh_spec_block): Use type_throw_all_p.
149 (cxx_init_decl_processing): Set noexcept_false_spec,noexcept_true_spec.
150 Give operator new a noexcept-specification in C++0x mode.
151 * tree.c (build_exception_variant, cxx_type_hash_eq): Adjust.
152 (cp_build_type_attribute_variant): Don't test TYPE_RAISES_EXCEPTIONS.
153
0a766368
JM
154 Implement noexcept operator (5.3.7)
155 * cp-tree.def (NOEXCEPT_EXPR): New.
156 * except.c (check_noexcept_r, finish_noexcept_expr): New.
157 * cp-tree.h: Declare finish_noexcept_expr.
158 * parser.c (cp_parser_unary_expression): Parse noexcept-expression.
159 * pt.c (tsubst_copy_and_build): And tsubst it.
160 (type_dependent_expression_p): Handle it.
161 (value_dependent_expression_p): Handle it.
162
d8a0d13e
JM
163 * call.c (build_conditional_expr): Never fold in unevaluated context.
164 * tree.c (build_aggr_init_expr): Propagate TREE_NOTHROW.
165 * semantics.c (simplify_aggr_init_expr): Likewise.
166 * typeck.c (merge_types): Call merge_exception_specifiers.
167 * decl.c (duplicate_decls): Check DECL_SOURCE_LOCATION rather than
168 DECL_ANTICIPATED for preferring new type.
169
bdc6b402
JM
1702010-06-04 Joseph Myers <joseph@codesourcery.com>
171
172 * g++spec.c (lang_specific_driver): Use GCC-specific formats in
173 diagnostics.
174
2aa64966
JJ
1752010-06-04 Jakub Jelinek <jakub@redhat.com>
176
177 PR c++/44412
178 * typeck.c (build_class_member_access_expr): Call mark_exp_read
179 on object for static data members.
180
16c82123
JJ
1812010-06-04 Jakub Jelinek <jakub@redhat.com>
182 Jason Merrill <jason@redhat.com>
183
184 PR c++/44362
185 * call.c (build_conditional_expr): If both arg2 and arg3 are lvalues
186 with the same type, call mark_lvalue_use on both.
187
9d6a019c
NF
1882010-06-03 Nathan Froyd <froydnj@codesourcery.com>
189
190 * class.c (struct vtbl_init_data_s): Remove last_init field.
191 (struct secondary_vptr_vtt_init_data_s): Change type of inits field
192 to a VEC.
193 (finish_vtbls): Use a VEC rather than a TREE_LIST for the accumulated
194 initializers.
195 (build_vtt): Likewise.
196 (initialize_vtable): Take a VEC instead of a tree.
197 (build_vtt_inits): Change return type to void. Take a VEC **
198 instead of a tree *; accumulate results into said VEC.
199 (build_ctor_vtbl_group): Use a VEC rather than a TREE_LIST for the
200 accumulated initializers. Pass the vtable to accumulate_vtbl_inits.
201 (accumulate_vtbl_inits): Add extra vtable tree parameter; take a VEC
202 instead of a tree.
203 (dfs_accumulate_vtbl_inits): Likewise. Change return type to void.
204 (build_vtbl_initializer): Add VEC parameter; accumulate initializers
205 into it.
206 (dfs_build_secondary_vptr_vtt_inits): Use CONSTRUCTOR_APPEND_ELT
207 rather than tree_cons.
208 (build_vbase_offset_vtbl_entries): Likewise.
209 (add_vcall_offset): Likewise.
210 (build_rtti_vtbl_entries): Likewise.
211 * cp-tree.h (initialize_artificial_var): Take a VEC instead of a tree.
212 * decl.c (initialize_artificial_var): Use build_constructor instead
213 of build_constructor_from_list.
214
1c314335
L
2152010-06-03 H.J. Lu <hongjiu.lu@intel.com>
216
217 PR c++/44294
218 * class.c (layout_class_type): Check MAX_FIXED_MODE_SIZE on
219 bit-field.
220
6c07d08b
JW
2212010-06-02 Jonathan Wakely <jwakely.gcc@gmail.com>
222
223 * parser.c (cp_parser_mem_initializer_list): Change error text.
224
53e030f1
JJ
2252010-06-02 Jakub Jelinek <jakub@redhat.com>
226
227 * cp-objcp-common.c (shadowed_var_for_decl): Change into
228 tree_decl_map hashtab from tree_map.
229 (decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
230 (init_shadowed_var_for_decl): Adjust initialization.
231
5d588f83
JJ
232 PR c++/44361
233 * cvt.c (convert_to_void): If implicit is NULL, call mark_rvalue_use
234 instead of calling mark_exp_read only when not an assignment.
add86e09 235
9fc8dacc
JJ
236 PR debug/44367
237 * semantics.c (finalize_nrv): Don't copy DECL_ARTIFICIAL, DECL_IGNORED_P,
238 DECL_SOURCE_LOCATION and DECL_ABSTRACT_ORIGIN from var to result.
239 Set DECL_VALUE_EXPR on var.
240
1e003829
JM
2412010-06-02 Jason Merrill <jason@redhat.com>
242
3333a2dd
JM
243 * error.c (dump_type): Improve typedef handling.
244
1e003829
JM
245 PR c++/9726
246 PR c++/23594
247 PR c++/44333
248 * name-lookup.c (same_entity_p): New.
249 (ambiguous_decl): Multiple declarations of the same entity
250 are not ambiguous.
251
e5901560
JM
2522010-06-01 Jason Merrill <jason@redhat.com>
253
4c9b3895
JM
254 DR 990
255 * call.c (add_list_candidates): Prefer the default constructor.
256 (build_aggr_conv): Treat missing initializers like { }.
257 * typeck2.c (process_init_constructor_record): Likewise.
258 * init.c (expand_default_init): Use digest_init for
259 direct aggregate initialization, too.
260
261 * call.c (add_list_candidates): Split out...
262 (build_user_type_conversion_1): ...from here.
263 (build_new_method_call): And here.
264 (implicit_conversion): Propagate LOOKUP_NO_NARROWING.
265
e5901560
JM
266 PR c++/44358
267 * call.c (build_list_conv): Set list-initialization flags properly.
268
f038ec69
NF
2692010-06-01 Nathan Froyd <froydnj@codesourcery.com>
270
271 * typeck2.c (build_x_arrow): Make types_memoized a VEC.
272
36a549b8
AC
2732010-06-01 Arnaud Charlet <charlet@adacore.com>
274 Matthew Gingell <gingell@adacore.com>
275
276 * Make-lang.in (CXX_C_OBJS): Add c-ada-spec.o.
277 * decl2.c: Include langhooks.h and c-ada-spec.h.
278 (cpp_check, collect_source_refs, collect_ada_namespace,
279 collect_all_refs): New functions.
280 (cp_write_global_declarations): Add handling of -fdump-ada-spec.
281 * lang-specs.h: Ditto.
282
450f4293
NF
2832010-05-29 Nathan Froyd <froydnj@codesourcery.com>
284
285 * cp-tree.h (cp_build_function_call_nary): Declare.
286 * typeck.c (cp_build_function_call_nary): Define.
287 * decl.c (register_dtor_fn): Use it instead of
288 cp_build_function_call.
289 (cxx_maybe_build_cleanup): Likewise.
290 * decl2.c (generate_ctor_or_dtor_function): Likewise.
291 * except.c (do_get_exception_ptr): Likewise.
292 (do_begin_catch): Likewise.
293 (do_allocate_exception): Likewise.
294 (do_free_exception): Likewise.
295 (build_throw): Likewise. Use cp_build_function_call_vec instead
296 of cp_build_function_call.
297 (do_end_catch): Likewise.
298
673c6299
NF
2992010-05-29 Nathan Froyd <froydnj@codesourcery.com>
300
301 * cp-tree.h (struct cp_decl_specifier_seq): Move type_location field up.
302 (struct cp_declarator): Move id_loc field up.
303
59cc9210
SB
3042010-05-29 Steven Bosscher <steven@gcc.gnu.org>
305
306 * cp-tree.h (ATTRIBUTE_GCC_CXXDIAG): Remove. Require that
307 this file is included before c-common.h. Define GCC_DIAG_STYLE
308 before including diagnostic-core.h and toplev.h.
309 (pedwarn_cxx98): Use ATTRIBUTE_GCC_DIAG.
310 * pt.c: Include cp-tree.h before c-common.h.
311
bffad7f1
SB
3122010-05-29 Steven Bosscher <steven@gcc.gnu.org>
313
314 * tree.c (c_register_addr_space): Add stub.
315
2dec80c7
JM
3162010-05-28 Joseph Myers <joseph@codesourcery.com>
317
318 * g++spec.c (lang_specific_driver): Use fatal_error instead of
319 fatal.
320
ec4be2f4
DS
3212010-05-28 Dodji Seketeli <dodji@redhat.com>
322
323 Revert fix of PR c++/44188
324 * cp-tree.h (typedef_variant_p): Revert moving this declaration to
325 gcc/tree.h.
326 * tree.c (typedef_variant_p): Revert moving this definition to
327 gcc/tree.c.
328 * decl.c (grokdeclarator): Revert naming typedef handling.
329
1da2ed5f
JM
3302010-05-27 Joseph Myers <joseph@codesourcery.com>
331
332 * call.c: Include diagnostic-core.h instead of diagnostic.h.
333 * cp-lang.c: Don't include diagnostic.h
334 * name-lookup.c: Include diagnostic-core.h instead of
335 diagnostic.h.
336 (cp_emit_debug_info_for_using): Use seen_error.
337 * optimize.c: Include diagnostic-core.h instead of diagnostic.h.
338 * parser.c: Include diagnostic-core.h instead of diagnostic.h.
339 * pt.c (iterative_hash_template_arg): Use seen_error.
340 * repo.c: Include diagnostic-core.h instead of diagnostic.h.
341 * typeck2.c: Include diagnostic-core.h instead of diagnostic.h.
342 * Make-lang.in (cp/cp-lang.o, cp/typeck2.o, cp/call.o, cp/repo.o,
343 cp/optimize.o, cp/parser.o, cp/name-lookup.o): Update
344 dependencies.
345
fe08ec12
DS
3462010-05-25 Dodji Seketeli <dodji@redhat.com>
347
348 PR c++/44188
349 * cp-tree.h (typedef_variant_p): Move this declaration to
350 gcc/tree.h.
351 * tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
352 * decl.c (grokdeclarator): Do not rename debug info of an
353 anonymous tagged type named by a typedef.
354
6ab4e49c
JM
3552010-05-27 Jason Merrill <jason@redhat.com>
356
357 PR c++/43555
358 * decl.c (grokdeclarator) [cdk_pointer et al]: Force evaluation of
359 anonymous VLA size.
360
64c31785
KT
3612010-05-27 Kai Tietz <kai.tietz@onevision.com>
362
363 PR bootstrap/44287
364 * rtti.c (emit_support_tinfos): Check for NULL_TREE.
365 * class.c (layout_class_type): Likewise.
366 * decl.c (finish_enum): Likewise.
367 * mangle.c (write_builitin_type): Likewise.
368
bdd71523
KT
3692010-05-26 Kai Tietz <kai.tietz@onevision.com>
370
371 * cp-tree.h (cp_decl_specifier_seq): Add new bifield
372 explicit_int128_p.
373 * decl.c (grokdeclarator): Handle __int128.
374 * parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
375 (cp_parser_simple_type_specifier): Likewise.
376 * rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
377 * typeck.c (cp_common_type): Handle __int128.
378 * mangle.c (integer_type_codes): Add itk_int128 and
379 itk_unsigned_int128.
380
1dba29f8
JM
3812010-05-26 Jason Merrill <jason@redhat.com>
382
383 PR c++/43382
cc423e9d 384 * pt.c (tsubst_pack_expansion): Don't get confused by recursive
1dba29f8
JM
385 unification.
386
fa3adca3
SB
3872010-05-26 Steven Bosscher <steven@gcc.gnu.org>
388
389 * cp-lang.c: Do not include expr.h.
390
d347d97e
SB
3912010-05-26 Steven Bosscher <steven@gcc.gnu.org>
392
393 * decl.c: Do not include rtl.h
394 * semantics.c: Likewise.
395
245763e3
SB
3962010-05-25 Steven Bosscher <steven@gcc.gnu.org>
397
398 * cp-tree.h: Do not include splay-tree.h.
399 (struct prtmem_cst): Remove unused field and false comment.
400 * typeck.c: Do not include rtl.h, expr.h, and tm_p.h.
401 * optimize.c: Do not inclde rtl.h, insn-config.h, and integrate.h.
402 * init.c: Do not include rtl.h and expr.h.
403 * class.c: Do not include rtl.h. Include splay-tree.h.
404 (build_clone): Use plain NULL instead of NULL_RTX.
405 * decl.c: Do not include expr.h. Explain why rtl.h has to be
406 included. Include splay-tree.h.
407 * method.c: Do not include rtl.h and expr.h.
408 (use_thunk): Use plain NULL instead of NULL_RTX.
409 * except.c: Do not include rtl.h, expr.h, and libfuncs.h.
410 * tree.c: Do not include rtl.h, insn-config.h, integrate.h,
411 and target.h. Include splay-tree.h.
412 * expr.c: Do not include rtl.h and expr.h.
413 * pt.c: Do not include obstack.h and rtl.h.
414 (tsubst_friend_function): Use plain NULL instead of NULL_RTX.
415 (tsubst_decl): Likewise.
416 (instantiate_decl): Likewise.
417 * semantics.c: Do not include exprt.h and debug.h. Explain why
418 rtl.h has to be included.
419 * decl2.c: Do not include rtl.h and expr.h. Include splay-tree.h.
420 * call.c: Do not include rtl.h and expr.h.
421 * search.c: Do not include obstack.h and rtl.h.
422 * friend.c: Do not include rtl.h and expr.h.
423 * Make-lang.in: Update dependencies.
424
9602a7a9
JJ
4252010-05-25 Jakub Jelinek <jakub@redhat.com>
426
427 PR c++/18249
428 * parser.c (non_integral_constant): Add NIC_NONE.
429 (required_token): Add RT_NONE.
430 (cp_parser_unary_expression): Initialize non_constant_p
431 to NIC_NONE.
432 (cp_parser_asm_definition): Initialize missing to RT_NONE.
433 (cp_parser_primary_expression, cp_parser_postfix_expression,
434 cp_parser_cast_expression, cp_parser_binary_expression,
435 cp_parser_functional_cast): Fix formatting.
436
fd33fd10
SZ
4372010-05-25 Shujing Zhao <pearly.zhao@oracle.com>
438
439 PR c++/18249
440 * parser.c: Remove inclusion of dyn-string.h.
441 (non_integral_constant): New enum.
442 (name_lookup_error): New enum.
443 (required_token): New enum.
444 (cp_parser_required_error): New function.
445 (cp_parser_require): Change the type of variable token_desc to
446 required_token and use cp_parser_required_error.
447 (cp_parser_require_keyword): Likewise.
448 (cp_parser_error): Use gmsgid as parameter.
449 (cp_parser_name_lookup_error): Change the type of variable desired to
450 name_lookup_error and put the diagnostic in the full sentences. Change
451 caller.
452 (cp_parser_non_integral_constant_expression): Change the type of the
453 variable thing to non_integral_constant and put the diagnostics in
454 full sentences. Change caller.
455
12a149a0
EB
4562010-05-24 Eric Botcazou <ebotcazou@adacore.com>
457
458 PR middle-end/44100
459 * typeck.c (cp_build_unary_op): Fold offsetof-like computations.
460
243fbddd
JM
4612010-05-24 Joseph Myers <joseph@codesourcery.com>
462
463 * error.c (cp_diagnostic_starter): Update call to
464 diagnostic_build_prefix.
465 (cp_print_error_function,
466 print_instantiation_partial_context_line): Check show_column flag
467 in context.
468
611d6f76
JM
4692010-05-24 Jason Merrill <jason@redhat.com>
470
471 PR c++/41510
472 * decl.c (check_initializer): Don't wrap an init-list in a
473 TREE_LIST.
474 * init.c (build_aggr_init): Don't assume copy-initialization if
475 init has CONSTRUCTOR_IS_DIRECT_INIT.
476 * call.c (build_new_method_call): Sanity check.
477
e20463aa
NF
4782010-05-24 Nathan Froyd <froydnj@codesourcery.com>
479
480 * rtti.c (tinfo_base_init): Use build_constructor instead of
481 build_constructor_from_list. Don't cons a tree node for
482 returning.
483 (generic_initializer): Use build_constructor_single instead of
484 build_constructor_from_list.
485 (ptr_initializer): Use build_constructor instead of
486 build_constructor_from_list
487 (ptm_initializer): Likewise.
488 (class_initializer): Likewise. Take varargs instead of TRAIL.
489 (get_pseudo_ti_init): Adjust calls to class_initializer. Use
490 build_constructor instead of build_constructor_from_list.
491
7a8cba34
SB
4922010-05-22 Steven Bosscher <steven@gcc.gnu.org>
493
494 * semantics.c: Include bitmap.h.
495 * Make-lang.in: Update dependencies.
496
9f90e80a
JH
4972010-05-22 Jan Hubicka <jh@suse.cz>
498
499 * decl2.c (maybe_emit_vtables): Produce same comdat group when outputting
500 comdat vtables.
501 (cxx_callgraph_analyze_expr): Remove code marking vtables needed.
502
5d127eeb
JM
5032010-05-21 Joseph Myers <joseph@codesourcery.com>
504
505 * cxx-pretty-print.c: Correct merge error.
506
cf835838
JM
5072010-05-21 Joseph Myers <joseph@codesourcery.com>
508
509 * error.c: Include tree-diagnostic.h and tree-pretty-print.h.
510 (cp_print_error_function): Use diagnostic_abstract_origin macro.
511 (cp_printer): Handle %K here using percent_K_format.
512 * cxx-pretty-print.c: Include tree-pretty-print.h.
513 * Make-lang.in (cp/error.o, cp/cxx-pretty-print.o): Update
514 dependencies.
515
40013784
SB
5162010-05-21 Steven Bosscher <steven@gcc.gnu.org>
517
518 * error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
519 Clean up redundant includes.
520
1a494ab5
PC
5212010-05-20 Paolo Carlini <paolo.carlini@oracle.com>
522
523 PR c++/30298
524 * decl.c (xref_basetypes): Return false in case of ill-formed
525 redefinition.
526
2872152c
JM
5272010-05-19 Jason Merrill <jason@redhat.com>
528
a3360e77
JM
529 * call.c (reference_binding): Use cp_build_qualified_type_real
530 and cp_type_quals consistently.
531 (add_function_candidate): Likewise.
532 (build_conditional_expr): Likewise.
533 (convert_like_real): Likewise.
534 (type_passed_as): Likewise.
535 * class.c (add_method): Likewise.
536 (same_signature_p): Likewise.
537 (layout_class_type): Likewise.
538 * decl.c (cxx_init_decl_processing): Likewise.
539 (cp_fname_init): Likewise.
540 (grokdeclarator): Likewise.
541 * decl2.c (cp_reconstruct_complex_type): Likewise.
542 * init.c (build_new_1): Likewise.
543 * method.c (do_build_copy_constructor): Likewise.
544 (implicitly_declare_fn): Likewise.
545 * pt.c (tsubst_aggr_type): Likewise.
546 (tsubst): Likewise.
547 * rtti.c (init_rtti_processing): Likewise.
548 (build_headof): Likewise.
549 (build_dynamic_cast_1): Likewise.
550 (tinfo_base_init): Likewise.
551 (emit_support_tinfos): Likewise.
552 * semantics.c (capture_decltype): Likewise.
553 * tree.c (cv_unqualified): Likewise.
554 * typeck.c (composite_pointer_type): Likewise.
555 (string_conv_p): Likewise.
556
557 * mangle.c (write_CV_qualifiers_for_type): Tweak.
558
559 * call.c (initialize_reference): Use CP_TYPE_CONST_P.
560 * decl.c (start_decl): Likewise.
561 * semantics.c (finish_compound_literal): Likewise.
562 * typeck.c (check_return_expr): Use CP_TYPE_VOLATILE_P.
563 (cp_type_readonly): Remove.
564 * cp-tree.h: Remove declaration.
565
a0685b73
JM
566 * typeck.c (merge_types): Preserve memfn quals.
567
93e1ddcf
JM
568 * decl.c (grokdeclarator): Don't check quals on fn type.
569 * typeck.c (cp_apply_type_quals_to_decl): Likewise.
570 * tree.c (cp_build_qualified_type_real): Simplify qualifier checking.
571
2872152c
JM
572 PR c++/44193
573 * typeck.c (type_memfn_quals): New fn.
574 (apply_memfn_quals): New fn.
575 (cp_type_quals): Return TYPE_UNQUALIFIED for FUNCTION_TYPE.
576 (cp_type_readonly): Use cp_type_quals.
577 * cp-tree.h: Add declarations.
578 * tree.c (cp_build_qualified_type_real): Don't set, but do
579 preserve, quals on FUNCTION_TYPE.
580 (strip_typedefs): Use apply_memfn_quals and type_memfn_quals.
581 * decl.c (build_ptrmem_type): Likewise.
582 (grokdeclarator): Likewise.
583 (static_fn_type): Likewise.
584 * decl2.c (change_return_type): Likewise.
585 (cp_reconstruct_complex_type): Likewise.
586 * pt.c (tsubst_function_type): Likewise.
587 (unify): Likewise.
588 (tsubst): Likewise. Drop special FUNCTION_TYPE substitution code.
589
3fcb9d1b
NF
5902010-05-18 Nathan Froyd <froydnj@codesourcery.com>
591
592 * tree.c (build_min_non_dep_call_vec): Update comment.
593
c8361db1
JM
5942010-05-17 Jason Merrill <jason@redhat.com>
595
f18ea1bf
JM
596 * call.c (struct z_candidate): Add explicit_targs field.
597 (add_template_candidate_real): Set it.
598 (build_over_call): Use it to control init-list warning.
599
9d2b7551
JM
600 PR c++/44157
601 * call.c (build_over_call): Limit init-list deduction warning to
602 cases where the argument is actually an init-list.
603
c8361db1
JM
604 PR c++/44158
605 * call.c (build_over_call): Don't do bitwise copy for move ctor.
606
ad13f229
DS
6072010-05-17 Dodji Seketeli <dodji@redhat.com>
608 Jason Merrill <jason@redhat.com>
609
610 PR c++/44108
611 * decl.c (compute_array_index_type): Call mark_rvalue_use.
612
9feb3d6a
JM
6132010-05-15 Jason Merrill <jason@redhat.com>
614
615 * cp-tree.h (TYPE_NOEXCEPT_P): New macro.
616 * except.c (begin_eh_spec_block): Use MUST_NOT_THROW_EXPR if
617 TYPE_NOEXCEPT_P.
618 (finish_eh_spec_block): Adjust.
619
1f910942
JJ
6202010-05-15 Jakub Jelinek <jakub@redhat.com>
621
622 PR c++/44148
623 * pt.c (tsubst): Unshare template argument.
624
f4ce02c5
SB
6252010-05-15 Steven Bosscher <steven@gcc.gnu.org>
626
627 * decl.c: Include tree-iterator.h, as fixup for tree-inline.h changes.
628 * Make-lang.in: Fix dependencies accordingly.
629
786f715d
JM
6302010-05-14 Jason Merrill <jason@redhat.com>
631
b33a0480
JM
632 C++ DR 475
633 * except.c (build_throw): Simplify, adjust for DR 475.
634
9bb1a81b
JM
635 PR c++/44127
636 * except.c (dtor_nothrow): Return nonzero for type with
637 trivial destructor.
638
786f715d
JM
639 PR c++/44127
640 * cp-gimplify.c (gimplify_must_not_throw_expr): Use
641 gimple_build_eh_must_not_throw.
642
b5023f3c
MJ
6432010-05-14 Martin Jambor <mjambor@suse.cz>
644
645 * cp-lang.c (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove both its undef
646 and define.
647
a940d033
JW
6482010-05-14 Jonathan Wakely <jwakely.gcc@gmail.com>
649
650 * call.c (build_new_method_call): Change warning text.
651 * typeck2.c (build_functional_cast): Change error text.
652
74b80262
SZ
6532010-05-14 Shujing Zhao <pearly.zhao@oracle.com>
654
655 PR c++/30566
656 * name-lookup.c (pushdecl_maybe_friend): Avoid the warnings about
657 shadowing the outer parameter or variables by the declaration of
658 nested function in nested structure or class. Warn the shadowing by
659 the declaration of nested lambda expression.
660
3a11c665
JM
6612010-05-13 Jason Merrill <jason@redhat.com>
662
663 * typeck.c (cp_build_array_ref): Factor out from...
664 (build_array_ref): ...here. Drop complain parm.
665 (build_new_op): Adjust.
666 * class.c (build_vtbl_ref_1): Adjust.
667 * decl2.c (grok_array_decl): Adjust.
668 * cp-tree.h: Adjust prototypes.
669
a2e66caf
JH
6702010-05-13 Jan Hubicka <jh@suse.cz>
671
672 * decl.c (cp_finish_decl): Do not worry about used attribute.
673
5c824000
JM
6742010-05-12 Jason Merrill <jason@redhat.com>
675
73647d75
JM
676 * typeck.c (build_array_ref): Take complain parm.
677 * cp-tree.h: Add it to prototype.
678 * call.c (build_new_op): Pass it.
679 * class.c (build_vtbl_ref): Pass it.
680 * decl2.c (grok_array_decl): Pass it.
681
5116acc6
JM
682 PR bootstrap/44048
683 PR target/44099
684 * cp-tree.def (NULLPTR_TYPE): Remove.
685 * cp-tree.h (NULLPTR_TYPE_P): New.
686 (SCALAR_TYPE_P): Use it.
687 (nullptr_type_node): New.
688 (cp_tree_index): Add CPTI_NULLPTR_TYPE.
689 * decl.c (cxx_init_decl_processing): Call record_builtin_type on
690 nullptr_type_node.
691 * cvt.c (ocp_convert): Use NULLPTR_TYPE_P instead of NULLPTR_TYPE.
692 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
693 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
694 * mangle.c (write_type): Likewise.
695 * name-lookup.c (arg_assoc_type): Likewise.
696 * typeck.c (build_reinterpret_cast_1): Likewise.
697 * rtti.c (typeinfo_in_lib_p): Likewise.
698 (emit_support_tinfos): Remove local nullptr_type_node.
699
fbfc8363
JM
700 * cp-tree.h (UNKNOWN_TYPE): Remove.
701 * decl.c (cxx_init_decl_processing): Use LANG_TYPE instead.
702 * error.c (dumy_type, dump_type_prefix, dump_type_suffix): Likewise.
703 * typeck2.c (cxx_incomplete_type_diagnostic): Likewise.
704 * class.c (instantiate_type): Check unknown_type_node rather than
705 UNKNOWN_TYPE.
706 * name-lookup.c (maybe_push_decl): Likewise.
707 * rtti.c (get_tinfo_decl_dynamic): Likewise.
708 (get_typeid): Likewise.
709 * semantics.c (finish_offsetof): Likewise.
710
3784b33c
JM
711 PR c++/20669
712 * call.c (add_template_candidate_real): If deduction fails, still
713 add the template as a non-viable candidate.
714 (equal_functions): Handle template candidates.
715 (print_z_candidate): Likewise.
716 (print_z_candidates): Likewise.
717 (build_new_function_call): Likewise.
718
d451d5b2
JM
719 * cp-tree.h (LOOKUP_LIST_ONLY): New.
720 * call.c (add_candidates): Enforce it.
721 (build_new_method_call): Try non-list ctor if no viable list ctor.
722 (build_user_type_conversion_1): Likewise.
723
404f08f8
JM
724 * call.c (add_candidates): Distinguish between type(x) and
725 x.operator type().
726 (convert_class_to_reference): Set LOOKUP_NO_CONVERSION.
727 (build_new_method_call): Give better error for conversion op.
728
5c824000
JM
729 * call.c (add_candidates): Add first_arg and return_type parms.
730 Add special constructor/conversion op handling.
731 (convert_class_to_reference): Use it.
732 (build_user_type_conversion_1): Likewise.
733 (build_op_call): Likewise.
734 (build_new_method_call): Likewise.
735 (build_new_op): Adjust.
736 (perform_overload_resolution): Adjust.
737
aac73a6d
PC
7382010-05-11 Paolo Carlini <paolo.carlini@oracle.com>
739
740 PR c++/34272
741 PR c++/43630
742 PR c++/34491
743 * pt.c (process_partial_specialization): Return error_mark_node
744 in case of unused template parameters in partial specialization.
745
056928b2
JJ
7462010-05-11 Jakub Jelinek <jakub@redhat.com>
747
748 PR c++/44062
749 * semantics.c (finish_expr_stmt): Don't call mark_exp_read here...
750 * cvt.c (convert_to_void): ... but here. If expr is a COMPOUND_EXPR,
751 look at its second operand.
752
eaa9d009
JM
7532010-05-10 Jason Merrill <jason@redhat.com>
754
5a40306b
JM
755 PR c++/44017
756 * semantics.c (baselink_for_fns): Revert earlier change.
757
eaa9d009
JM
758 PR c++/44045
759 * typeck.c (cp_build_modify_expr): Complain about assignment to
760 array from init list.
761
34655c9e
FC
7622010-05-10 Fabien ChĂȘne <fabien.chene@gmail.com>
763
764 PR c++/43719
765 * decl.c (check_initializer): strip array type before checking for
766 uninitialized const or ref members.
767
40bb78ad
FC
7682010-05-07 Fabien ChĂȘne <fabien.chene@gmail.com>
769
770 PR c++/43951
771 * init.c (diagnose_uninitialized_cst_or_ref_member_1): Returns the
772 error count. Emit errors only if compain is true.
773 (build_new_1): Do not return error_mark_node if
774 diagnose_uninitialized_cst_or_ref_member_1 does not diagnose any
775 errors. Delay the check for user-provided constructor.
776 (perform_member_init): Adjust.
777 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Change the
778 prototype.
779
14c2101d
JM
7802010-05-06 Magnus Fromreide <magfr@lysator.liu.se>
781 Jason Merrill <jason@redhat.com>
782
783 Add support for C++0x nullptr.
784 * cp-tree.def: Add NULLPTR_TYPE.
785 * cp-tree.h: Add nullptr_node.
786 (cp_tree_index): Add CPTI_NULLPTR.
787 (SCALAR_TYPE_P): Add NULLPTR_TYPE.
788 * call.c (null_ptr_cst_p): Handle nullptr.
789 (standard_conversion): Likewise.
790 (convert_arg_to_ellipsis): Likewise.
791 * mangle.c (write_type): Likewise.
792 * name-lookup.c (arg_assoc_type): Likewise.
793 * parser.c (cp_parser_primary_expression): Likewise.
794 * typeck.c (cp_build_binary_op): Likewise.
795 (build_reinterpret_cast_1): Likewise.
796 * error.c (dump_type): Likewise.
797 (dump_type_prefix, dump_type_suffix): Likewise.
798 * decl.c (cxx_init_decl_processing): Likewise.
799 * cxx-pretty-print.c (pp_cxx_constant): Likewise.
800 * cvt.c (ocp_convert): Likewise.
801 * rtti.c (typeinfo_in_lib_p, emit_support_tinfos): Put
802 nullptr_t tinfo in libsupc++.
803
941f78d1
JM
8042010-05-06 Jason Merrill <jason@redhat.com>
805
806 * semantics.c (simplify_aggr_init_expr): Use INIT_EXPR.
807
03a904b5
JJ
8082010-04-22 Jakub Jelinek <jakub@redhat.com>
809 Dodji Seketeli <dodji@redhat.com>
810
811 PR c/18624
812 * cp-tree.h (mark_exp_read, rvalue_use, lvalue_use, type_use):
813 Declare ...
814 * expr.c (mark_exp_read, rvalue_use, lvalue_use, type_use): ... new fns.
815 * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call type_use.
816 (decay_conversion, perform_integral_promotions): Call rvalue_use.
817 (cp_build_unary_op): Call lvalue_use.
818 * decl.c (unused_but_set_errorcount): New variable.
819 (poplevel): Issue -Wunused-but-set-variable diagnostics.
820 (duplicate_decls): Merge DECL_READ_P flags.
821 (start_cleanup_fn): Set DECL_READ_P flag.
822 (finish_function): Issue -Wunused-but-set-parameter diagnostics.
823 * tree.c (rvalue): Call rvalue_use.
824 * pt.c (convert_nontype_argument): Likewise.
825 * semantics.c (finish_expr_stmt, finish_asm_stmt, finish_typeof,
826 finish_decltype_type): Likewise.
827 * call.c (convert_like_real) <ck_identity, ck_user>: Call rvalue use.
828 (build_x_va_arg, build_new_method_call, build_over_call): Call lvalue_use
829 or rvalue_use depending on the expr.
830 * init.c (build_new, build_delete): Likewise.
831 * rtti.c (build_typeid, build_dynamic_cast_1): Likewise.
832
6d729f28
JM
8332010-05-05 Jason Merrill <jason@redhat.com>
834
835 PR c++/43787
836 * cp-gimplify.c (cp_gimplify_expr): Remove copies of empty classes.
837 * call.c (build_over_call): Don't try to avoid INIT_EXPR copies here.
838
68fef9f9
PC
8392010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
840
841 PR c++/43028
842 * pt.c (unify): Check each elt for error_mark_node.
843
b5c0a77e
JM
8442010-05-04 Jason Merrill <jason@redhat.com>
845
846 PR c++/38064
847 * typeck.c (cp_build_binary_op): Allow enums for <> as well.
848
4ac4b596
PC
8492010-05-04 Paolo Carlini <paolo.carlini@oracle.com>
850
851 PR c++/43705
852 * call.c (build_new_method_call): Return error_mark_node if fns is
853 NULL_TREE.
854
f857e9a4
DS
8552010-05-03 Dodji Seketeli <dodji@redhat.com>
856
857 PR c++/43953
858 * pt.c (most_specialized_class): Pretend we are processing
859 a template decl during the call to coerce_template_parms.
860
cbb4feb3
JM
8612010-05-03 Jason Merrill <jason@redhat.com>
862
863 PR c++/42810
864 PR c++/43680
865 * decl.c (finish_enum): Use the TYPE_MIN_VALUE and TYPE_MAX_VALUE
866 from the selected underlying type unless -fstrict-enums. Set
867 ENUM_UNDERLYING_TYPE to have the restricted range.
868 * cvt.c (type_promotes_to): Use ENUM_UNDERLYING_TYPE.
869 * class.c (check_bitfield_decl): Likewise.
870
13ead6d8
L
8712010-05-01 H.J. Lu <hongjiu.lu@intel.com>
872
873 PR c++/43951
874 * init.c (build_new_1): Revert the accidental checkin in
875 revision 158918.
876
5cb6410a
JM
8772010-04-30 Jason Merrill <jason@redhat.com>
878
879 PR c++/43868
880 * cxx-pretty-print.c (pp_cxx_decl_specifier_seq): Move pmf handling...
881 (pp_cxx_type_specifier_seq): ...here.
882
9aae8d16
SB
8832010-04-30 Steven Bosscher <steven@gcc.gnu.org>
884
ccb253b3 885 * optimize.c, parser.c, mangle.c, cp-tree.h: Do not include varray.h.
9aae8d16
SB
886 * Make-lang.in: Don't include varray.h dependency in CXX_TREE_H.
887
8cdea6ab
SZ
8882010-04-30 Shujing Zhao <pearly.zhao@oracle.com>
889
890 PR c++/43779
891 * typeck.c (warn_args_num): New function.
892 (convert_arguments): Use warn_args_num to print the diagnostic
893 messages.
894
10ab8f62
FC
8952010-04-29 Fabien ChĂȘne <fabien.chene@gmail.com>
896
897 PR c++/43890
898 * init.c (diagnose_uninitialized_cst_or_ref_member): check for
899 user-provided constructor while recursing.
900
4b414c93
MLI
9012010-04-28 Manuel López-Ibåñez <manu@gcc.gnu.org>
902
903 PR c++/9335
904 * error.c (print_instantiation_partial_context_line): Handle
905 recursive instantiation.
906 (print_instantiation_partial_context): Likewise.
907
012e6a1e
JM
9082010-04-27 Jason Merrill <jason@redhat.com>
909
910 * init.c (perform_member_init): Check CLASS_TYPE_P.
911
31d1acec
FC
9122010-04-27 Fabien ChĂȘne <fabien.chene@gmail.com>
913
914 PR c++/29043
915 * init.c (perform_member_init): check for uninitialized const or
916 reference members, including array types.
917
294e855f
JM
9182010-04-24 Jason Merrill <jason@redhat.com>
919
920 * tree.c (get_fns): Split out from get_first_fn.
921 * cp-tree.h: Declare it.
922 * search.c (shared_member_p): Use it.
923 * semantics.c (finish_qualified_id_expr): Simplify.
924 (finish_id_expression): Simplify.
798ec807 925
2defb926
JM
926 * semantics.c (finish_non_static_data_member): Call maybe_dummy_object
927 whenever object is NULL_TREE. Don't do 'this' capture here.
928 (finish_qualified_id_expr): Pass NULL_TREE.
929 (finish_id_expression): Likewise.
930 (lambda_expr_this_capture): Likewise.
931
38f1276b
JM
932 * semantics.c (finish_qualified_id_expr): Use maybe_dummy_object
933 rather than checking current_class_ref directly.
934 (finish_call_expr): Likewise.
935
a6846853
JM
936 PR c++/43856
937 * name-lookup.c (qualify_lookup): Disqualify lambda op().
938 * class.c (current_nonlambda_class_type): New fn.
939 * semantics.c (nonlambda_method_basetype): New.
940 * cp-tree.h: Declare them.
941 * tree.c (maybe_dummy_object): Handle implicit 'this' capture.
942
16de17ae
JM
943 * semantics.c (baselink_for_fns): Correct BASELINK_BINFO.
944
95b24c84
JM
945 PR c++/43875
946 * semantics.c (lambda_return_type): Complain about
947 braced-init-list.
948
ea8b8aa0
JM
949 PR c++/43790
950 * tree.c (cv_unqualified): Handle error_mark_node.
951
4a5d353f
JM
952 PR c++/41468
953 * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
954 if we don't want errors.
955
798ec807
JM
956 PR c++/41468
957 * class.c (convert_to_base): Add complain parameter. Pass
958 ba_quiet to lookup_base if we don't want errors.
959 (build_vfield_ref): Pass complain to convert_to_base.
960 * call.c (convert_like_real): Likewise.
961 (initialize_reference): Likewise.
962 (perform_direct_initialization_if_possible): Pass complain to
963 convert_like_real.
964 * cp-tree.h: Adjust.
965
6ad86a5b
FC
9662010-04-27 Fabien ChĂȘne <fabien.chene@gmail.com>
967 Jason Merrill <jason@redhat.com>
968
969 PR c++/42844
970 * decl.c (check_for_uninitialized_const_var): Handle classes that need
971 constructing, too.
972 (check_initializer): Call it for classes that need constructing, too.
973 * class.c (in_class_defaulted_default_constructor): New.
974 * cp-tree.h: Declare it.
975
88274c4d
JM
9762010-04-20 Jason Merrill <jason@redhat.com>
977
978 PR c++/9335
979 * init.c (constant_value_1): Treat error_mark_node as a constant
980 if DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P is set.
981 * cvt.c (ocp_convert): Handle getting error_mark_node from
982 integral_constant_value.
983 * decl.c (compute_array_index_type): Likewise.
984
5a80a1dd
DS
9852010-04-20 Dodji Seketeli <dodji@redhat.com>
986
987 PR c++/43800
988 PR c++/43704
989 * typeck.c (incompatible_dependent_types_p): If one of the
990 compared types if not a typedef then honour their main variant
991 equivalence.
992
1197ce8e
JJ
9932010-04-20 Jakub Jelinek <jakub@redhat.com>
994
995 * cp-tree.h (TYPE_REF_IS_RVALUE): Remove.
996
d38f6bc0
DS
9972010-04-19 Dodji Seketeli <dodji@redhat.com>
998
999 PR c++/43704
1000 * typeck.c (structural_comptypes): Test dependent typedefs
1001 incompatibility before testing for their main variant based
1002 equivalence.
1003
5a2fa9e8
JJ
10042010-04-19 Jakub Jelinek <jakub@redhat.com>
1005
1006 * cp-tree.h (SCOPED_ENUM_P, UNSCOPED_ENUM_P, SET_SCOPED_ENUM_P): Use
1007 ENUM_IS_SCOPED bit instead of TYPE_LANG_FLAG_5.
1008
3b9e5d95
EB
10092010-04-18 Eric Botcazou <ebotcazou@adacore.com>
1010
1011 * decl.c (cxx_init_decl_processing): Remove second argument in call to
1012 build_common_tree_nodes.
1013
943f82e7
JM
10142010-04-14 Jason Merrill <jason@redhat.com>
1015
1016 PR c++/36625
1017 * parser.c (cp_parser_parenthesized_expression_list): Change
1018 is_attribute_list parm to int to indicate whether or not to
1019 handle initial identifier specially.
1020 (cp_parser_attribute_list): Use attribute_takes_identifier_p.
1021
44b2dc6c
JM
10222010-04-13 Jason Merrill <jason@redhat.com>
1023
1024 * call.c (type_decays_to): Check MAYBE_CLASS_TYPE_P instead of
1025 CLASS_TYPE_P.
1026 * parser.c (cp_parser_lambda_expression): Complain about lambda in
1027 unevaluated context.
1028 * pt.c (iterative_hash_template_arg): Don't crash on lambda.
1029
d6850483
JM
10302010-04-12 Jason Merrill <jason@redhat.com>
1031
e62e4922
JM
1032 PR c++/43641
1033 * semantics.c (maybe_add_lambda_conv_op): Use build_call_a and tweak
1034 return value directly.
1035
d6850483
JM
1036 * call.c (type_decays_to): Call cv_unqualified for non-class type.
1037
9d809e8f
FC
10382010-04-12 Fabien Chene <fabien.chene@gmail.com>
1039
1040 PR c++/25811
1041 * cp-tree.h (diagnose_uninitialized_cst_or_ref_member): Declare.
1042 * init.c (build_new_1): Check for uninitialized const members and
1043 uninitialized reference members, when using new without
1044 new-initializer. Call diagnose_uninitialized_cst_or_ref_member.
1045 (diagnose_uninitialized_cst_or_ref_member): Define, call
1046 diagnose_uninitialized_cst_or_ref_member_1.
1047 (diagnose_uninitialized_cst_or_ref_member_1): New function.
1048
3fc20697
RG
10492010-04-12 Richard Guenther <rguenther@suse.de>
1050
1051 PR c++/43611
1052 * semantics.c (expand_or_defer_fn_1): Do not keep extern
1053 template inline functions.
1054
dc8d2739
MLI
10552010-04-09 Manuel López-Ibåñez <manu@gcc.gnu.org>
1056
1057 PR c++/28584
1058 * typeck.c (cp_build_c_cast): Warn for casting integer to larger
1059 pointer type.
1060
2401726e
JM
10612010-04-07 Jason Merrill <jason@redhat.com>
1062
fb4117f8
JM
1063 PR c++/43016
1064 * decl.c (start_preparsed_function): Do defer nested functions.
1065
48326487
JM
1066 PR c++/11094, DR 408
1067 * cp-tree.h (VAR_HAD_UNKNOWN_BOUND, SET_VAR_HAD_UNKNOWN_BOUND): New.
1068 * decl2.c (finish_static_data_member_decl): Set it.
1069 * decl.c (duplicate_decls): Propagate it.
1070 * pt.c (tsubst_decl): Don't substitute the domain of an array
1071 VAR_DECL if it's set.
1072 (regenerate_decl_from_template): Substitute it here.
1073 (type_dependent_expression_p): Return true if it's set.
1074 * semantics.c (finish_decltype_type): Instantiate such a variable.
1075 * typeck.c (cxx_sizeof_expr): Likewise.
1076 (strip_array_domain): New.
1077
9f1b98f0 1078 PR c++/43145
ae099258
JM
1079 * name-lookup.c (current_decl_namespace): Non-static.
1080 (pop_nested_namespace): Sanity check.
1081 * cp-tree.h: Declare current_decl_namespace.
1082 * decl.c (grokvardecl): Use it instead of current_namespace.
1083 (grokfndecl): Likewise.
1084
feb3b88a
JM
1085 PR c++/38392
1086 * pt.c (tsubst_friend_function): Instatiate a friend that has already
1087 been used.
1088
7dcfe861
JM
1089 * pt.c (print_template_statistics): New.
1090 * cp-tree.h: Declare it.
1091 * tree.c (cxx_print_statistics): Call it.
1092
2401726e
JM
1093 PR c++/41970
1094 * decl.c (grokvardecl): Tweak warning message.
1095 (grokfndecl): Likewise.
1096
5fd5c97a
DS
10972010-04-07 Dodji Seketeli <dodji@redhat.com>
1098
1099 PR c++/42697
1100 *pt.c (tsubst_decl): Get the arguments of a specialization from
1101 the specialization template, not from the most general template.
1102
7c094c11
DS
11032010-04-07 Dodji Seketeli <dodji@redhat.com>
1104
1105 PR c++/40239
1106 * typeck2.c (process_init_constructor_record):
1107 value-initialize members that are are not explicitely
1108 initialized.
1109
6addabbb
JZ
11102010-04-07 Jie Zhang <jie@codesourcery.com>
1111
1112 PR c++/42556
1113 * typeck2.c (split_nonconstant_init_1): Drop empty CONSTRUCTOR
1114 when all of its elements are non-constant and have been split out.
1115
d4a2b486
JM
11162010-04-06 Taras Glek <taras@mozilla.com>
1117 Jason Merrill <jason@redhat.com>
1118
1119 * parser.c (cp_parser_class_specifier): Set class location to that
1120 of IDENTIFIER_NODE instead of '{' when possible.
1121 * semantics.c (begin_class_definition): Do not overide locations
1122 with less precise ones.
1123
d5eebac0
JM
11242010-04-06 Jason Merrill <jason@redhat.com>
1125
62daa139
JM
1126 PR c++/43648
1127 * name-lookup.c (constructor_name_p): Allow X::~X even for typedefs.
1128
d5eebac0
JM
1129 PR c++/43621
1130 * pt.c (maybe_update_decl_type): Check the return value from
1131 push_scope.
1132
9542943d
JM
11332010-04-01 Jason Merrill <jason@redhat.com>
1134
d4b5fb22
JM
1135 * decl.c (next_initializable_field): No longer static.
1136 * cp-tree.h: Declare it.
1137 * call.c (build_aggr_conv): Fail if there are more initializers
1138 than initializable fields.
1139
9542943d
JM
1140 * semantics.c (maybe_add_lambda_conv_op): Use null_pointer_node
1141 instead of void_zero_node.
1142
d7df0b91
DS
11432010-03-31 Dodji Seketeli <dodji@redhat.com>
1144
1145 PR c++/43558
1146 * cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
1147 * pt.c (end_template_parm_list): Store sibling template parms of
1148 each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
1149 (push_template_decl_real): Don't store the containing template decl
1150 into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
1151 * typeck.c (get_template_parms_of_dependent_type): Get sibling parms
1152 of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
1153 Simplify the logic.
1154
ce0ecb98
JM
11552010-03-30 Jason Merrill <jason@redhat.com>
1156
74537078
JM
1157 PR c++/43076
1158 * pt.c (push_template_decl_real): Deal better with running out of
1159 scopes before running out of template parms.
1160
fb077955
JM
1161 PR c++/41185
1162 PR c++/41786
1163 * parser.c (cp_parser_direct_declarator): Don't allow VLAs in
1164 function parameter context. Don't print an error if parsing
1165 tentatively.
1166
ce0ecb98
JM
1167 PR c++/43559
1168 * pt.c (more_specialized_fn): Don't control cv-qualifier check
1169 with same_type_p.
1170
c6cc83d0
JM
11712010-03-26 Jason Merrill <jason@redhat.com>
1172
1173 PR c++/43509
1174 * parser.c (cp_parser_qualifying_entity): Do accept enum names in
1175 c++0x mode, but not other type-names.
1176
5f431950
DS
11772010-03-26 Dodji Seketeli <dodji@redhat.com>
1178
1179 PR c++/43327
1180 * pt.c (add_to_template_args): Support NULL ARGS;
1181 (most_specialized_class): call coerce_template_parms on
1182 template arguments passed to get_class_bindings. Use
1183 add_to_template_args.
1184 (unify): Handle VAR_DECLs.
1185
3910807d
DS
11862010-03-26 Dodji Seketeli <dodji@redhat.com>
1187
1188 * cp-tree.h (get_template_parms_at_level): Change unsigned parm
1189 into int.
1190 * pt.c (get_template_parms_at_level): Adjust.
1191
58f5f6b4
DS
11922010-03-25 Dodji Seketeli <dodji@redhat.com>
1193
1194 PR c++/43206
1195 * cp-tree.h (get_template_parms_at_level): Declare ...
1196 * pt.c (get_template_parms_at_level): ... new function.
1197 * typeck.c (get_template_parms_of_dependent_type): If a template
1198 type parm's DECL_CONTEXT isn't yet set, get its siblings from
1199 current_template_parms. Use get_template_parms_at_level. Remove
1200 useless test.
1201 (incompatible_dependent_types_p): If we get empty parms from just one
1202 of the template type parms we are comparing then the template parms are
1203 incompatible.
1204
bff0b1a6
JM
12052010-03-24 Jason Merrill <jason@redhat.com>
1206
1207 PR c++/43502
1208 * parser.c (make_declarator): Initialize id_loc.
1209 (cp_parser_lambda_declarator_opt): And set it.
1210
c6be04ad
JM
12112010-03-23 Jason Merrill <jason@redhat.com>
1212
1213 Make lambda conversion op and op() non-static.
1214 * semantics.c (maybe_add_lambda_conv_op): Make non-static.
1215 Also add the thunk function returned by the conversion op.
1216 Mark the conversion deleted if the op() is variadic.
1217 * decl2.c (mark_used): Give helpful message about deleted conversion.
1218 * parser.c (cp_parser_lambda_declarator_opt): Don't make op() static.
1219 * semantics.c (finish_this_expr): Adjust.
1220 * mangle.c (write_closure_type_name): Adjust.
1221 * decl.c (grok_op_properties): Don't allow it.
1222 * call.c (build_user_type_conversion_1): No static conversion ops.
1223 (build_op_call): Or op().
1224
1225 * decl2.c (change_return_type): Fix 'this' quals.
1226
18932737
JM
12272010-03-22 Jason Merrill <jason@redhat.com>
1228
cc72bbaa
JM
1229 PR c++/43333
1230 * tree.c (pod_type_p): Use old meaning in C++98 mode.
1231
18932737
JM
1232 PR c++/43281
1233 * pt.c (contains_auto_r): New fn.
1234 (do_auto_deduction): Use it.
1235 (tsubst): Don't look at TREE_TYPE of a TEMPLATE_TYPE_PARM.
1236
7801b86a
SM
12372010-03-20 Simon Martin <simartin@users.sourceforge.net>
1238
1239 PR c++/43081:
1240 * decl2.c (grokfield): Handle invalid initializers for member
1241 functions.
1242
39bac010
DS
12432010-03-20 Dodji Seketeli <dodji@redhat.com>
1244
1245 PR c++/43375
1246 * method.c (make_alias_for): Avoid crashing when DECL_LANG_SPECIFIC
1247 is NULL.
1248 * decl2.c (vague_linkage_p): Likewise.
1249
8269067b
PC
12502010-03-18 Paolo Carlini <paolo.carlini@oracle.com>
1251
1252 PR c++/43418
1253 * parser.c (cp_parser_for_init_statement): Use NULL_TREE, not
1254 false, in the cp_parser_expression_statement call.
1255
1b88f240
JM
12562010-03-05 Jason Merrill <jason@redhat.com>
1257
1258 * mangle.c (mangle_decl): Give name collision error even without
1259 ASM_OUTPUT_DEF.
1260
83ff92fb
MP
12612010-03-04 Marco Poletti <poletti.marco@gmail.com>
1262
1263 * pt.c (process_partial_specialization): Use error_n instead of
1264 error.
1265
28fd1fc1
L
12662010-03-03 Jason Merrill <jason@redhat.com>
1267
1268 PR c++/12909
1269 * mangle.c (mangle_decl): Handle VAR_DECL, too.
1270
58a15cf8
JM
12712010-03-03 Jason Merrill <jason@redhat.com>
1272
1273 PR c++/12909
1274 * mangle.c: Include cgraph.h.
1275 (mangle_decl): If the mangled name will change in a later
1276 ABI version, make the later mangled name an alias.
1277 * method.c (make_alias_for): Copy DECL_ARGUMENTS.
1278 * Make-lang.in (mangle.o): Depend on cgraph.h.
d6dcdbd5
JM
1279 * method.c (make_alias_for): Handle VAR_DECL, too.
1280 * decl2.c (vague_linkage_p): Rename from vague_linkage_fn_p.
1281 * tree.c (no_linkage_check): Adjust.
1282 * decl.c (maybe_commonize_var): Adjust.
1283 * cp-tree.h: Adjust.
58a15cf8 1284
894e2652
SZ
12852010-03-01 Marco Poletti <poletti.marco@gmail.com>
1286
1287 * pt.c (redeclare_class_template): Use error_n and inform_n.
1288
2a3dbebf
MM
12892010-02-27 Mark Mitchell <mark@codesourcery.com>
1290
1291 PR c++/42748
1292 * cp-tree.h (push_tinst_level): Declare.
1293 (pop_tinst_level): Likewise.
1294 * pt.c (push_tinst_level): Give it external linkage.
1295 (pop_tinst_level): Likewise.
1296 * mangle.c (mangle_decl_string): Set the source location to that
1297 of the decl while mangling.
1298
baae602e
SM
12992010-02-27 Simon Martin <simartin@users.sourceforge.net>
1300
1301 PR c++/42054
1302 * pt.c (redeclare_class_template): Return false if there are erroneous
1303 template parameters.
1304
124e0d27
MLI
13052010-02-24 Manuel López-Ibåñez <manu@gcc.gnu.org>
1306
1307 * pt.c (push_tinst_level): Replace -ftemplate-depth- with
1308 -ftemplate-depth=.
1309
254d1a5a
JM
13102010-02-24 Jason Merrill <jason@redhat.com>
1311
b66093b0
JM
1312 PR c++/12909
1313 * mangle.c (write_type): Give -Wabi warning for old vector mangling.
1314
254d1a5a
JM
1315 * class.c (layout_class_type): Don't give -Wabi warning for a bug
1316 in a previous ABI version.
1317
c6569cd0
JM
13182010-02-23 Jason Merrill <jason@redhat.com>
1319
1320 PR c++/43143
1321 * typeck2.c (digest_init_r): Accept value init of array.
1322
a98c2819
MLI
13232010-02-22 Manuel López-Ibåñez <manu@gcc.gnu.org>
1324
1325 PR c++/43126
1326 * typeck.c (convert_arguments): Update error message.
a98c2819 1327
3a7ba040
MS
13282010-02-22 Mike Stump <mikestump@comcast.net>
1329
1330 PR c++/43125
1331 * decl.c (duplicate_decls): Merge DECL_PRESERVE_P.
1332
f89b94d9
MLI
13332010-02-21 Manuel López-Ibåñez <manu@gcc.gnu.org>
1334
1335 PR c++/23510
1336 * error.c (print_instantiation_partial_context_line): New.
1337 (print_instantiation_partial_context): Print at most 12 contexts,
1338 skip the rest with a message.
1339
04afbf1c
DS
13402010-02-21 Dodji Seketeli <dodji@redhat.com>
1341
1342 PR c++/42824
1343 * pt.c (lookup_template_class): Better support of specialization
1344 of member of class template implicit instantiation.
1345
17251338
MLI
13462010-02-20 Manuel López-Ibåñez <manu@gcc.gnu.org>
1347
1348 PR c++/35669
1349 * call.c (conversion_null_warnings): Replace -Wconversion with
1350 -Wconversion-null.
1351 * cvt.c (build_expr_type_conversion): Likewise.
1352
935c0a5d
JM
13532010-02-18 Jason Merrill <jason@redhat.com>
1354
7c08df6c
JM
1355 PR c++/42837
1356 * class.c (create_vtable_ptr): Set DECL_PACKED if type is packed.
1357
1ff6b2c8
JM
1358 PR c++/43108
1359 * typeck.c (cp_build_binary_op): Adapt mixed complex/non handling from
1360 C build_binary_op.
1361 * cp-tree.h (WANT_VECTOR_OR_COMPLEX): Rename from WANT_VECTOR.
1362 * cvt.c (build_expr_type_conversion): Allow COMPLEX_TYPE.
1363
7890246f
JM
1364 PR c++/43070
1365 * semantics.c (finish_goto_stmt): Don't call decay_conversion.
1366
04daa92b
JM
1367 PR c++/26261
1368 PR c++/43101
1369 * pt.c (tsubst_qualified_id): Do normal lookup in non-dependent scope.
1370 (maybe_update_decl_type): New fn.
1371 * parser.c (cp_parser_init_declarator): Use it.
1372
935c0a5d
JM
1373 PR c++/43109
1374 * semantics.c (begin_class_definition): Don't crash on unnamed ns.
1375
d29760ad
JM
13762010-02-17 Jason Merrill <jason@redhat.com>
1377
9ba59715
JM
1378 PR c++/43075
1379 * call.c (build_over_call): Don't create zero-sized assignments.
1380 * cp-gimplify.c (cp_genericize_r): Don't remove them here.
1381 * cp-objcp-common.c (cp_expr_size): Remove.
1382 * cp-tree.h: Remove prototype.
1383
77278f4a
JM
1384 PR c++/43069
1385 * name-lookup.c (set_decl_namespace): Don't copy DECL_CONTEXT if the
1386 decl we looked up doesn't match.
1387
85a52ea5
JM
1388 PR c++/43093
1389 * cp-gimplify.c (cp_gimplify_expr) [INIT_EXPR]: Return if we don't
1390 have an INIT_EXPR anymore.
1391
d29760ad
JM
1392 PR c++/43079
1393 * pt.c (convert_nontype_argument): Change assert to test.
1394
38e40fcd
JM
13952010-02-16 Jason Merrill <jason@redhat.com>
1396
0d08582e
JM
1397 * cp-gimplify.c (cp_gimplify_expr): Fix error recovery.
1398
1e2ddf80
JM
1399 PR c++/43031
1400 * cp-gimplify.c (cp_gimplify_expr) [MODIFY_EXPR]: Use
1401 VIEW_CONVERT_EXPR for conversions between structural equality types
1402 that the back end can't tell are the same.
1403
38e40fcd
JM
1404 PR c++/43036
1405 * tree.c (build_cplus_array_type): Set TYPE_MAIN_VARIANT to strip
1406 cv-quals from element here.
1407 (cp_build_qualified_type_real): Not here. Preserve typedef name.
1408
1acb8caa
JM
14092010-02-14 Jason Merrill <jason@redhat.com>
1410
1411 PR c++/41997
1412 * semantics.c (finish_compound_literal): Use
1413 cp_apply_type_quals_to_decl when creating a static variable.
1414
da7d88bf
JM
14152010-02-12 Jason Merrill <jason@redhat.com>
1416
1417 PR c++/43024
1418 * name-lookup.h (current_binding_level): Check for null
1419 cp_function_chain.
1420
96b4a0b5
JM
14212010-02-12 Jason Merrill <jason@redhat.com>
1422
1423 PR c++/43054
76a25412 1424 * tree.c (cp_tree_equal): Correct CALL_EXPR logic.
96b4a0b5 1425
2e034e32
JJ
14262010-02-12 Jakub Jelinek <jakub@redhat.com>
1427
1428 PR c++/43033
1429 * name-lookup.c (pushdecl_maybe_friend): Check default args of t
1430 instead of x.
1431
19030d77
JM
14322010-02-10 Jason Merrill <jason@redhat.com>
1433
1434 PR c++/41896
1435 * semantics.c (outer_lambda_capture_p): Revert.
1436 (add_capture): Only finish_member_declaration if
1437 we're in the lambda class.
1438 (register_capture_members): New.
1439 * cp-tree.h: Declare it.
1440 * parser.c (cp_parser_lambda_expression): Call it.
1441
2cb95a6a
JM
14422010-02-10 Jason Merrill <jason@redhat.com>
1443
1444 PR c++/41896
1445 * semantics.c (outer_lambda_capture_p): Use current_function_decl
1446 instead of current_class_type.
1447
f1c3cf3c
JM
14482010-02-10 Jason Merrill <jason@redhat.com>
1449
1450 PR c++/42983, core issue 906
1451 * method.c (defaultable_fn_check): Check virtualness.
1452
7a79ff3b
JM
14532010-02-10 Jason Merrill <jason@redhat.com>
1454
1455 PR c++/43016
1456 * semantics.c (maybe_add_lambda_conv_op): Set DECL_INTERFACE_KNOWN.
1457
f25a2b52
SZ
14582010-02-10 Shujing Zhao <pearly.zhao@oracle.com>
1459
1460 * Make-lang.in (cp/cvt.o, cp/parser.o, cp/search.o): Depend on intl.h.
1461 * cvt.c (warn_ref_binding): Wrap the messages into G_() for easy
1462 translation.
1463 * parser.c (cp_parser_postfix_expression, cp_parser_new_type_id)
1464 (cp_parser_cast_expression, cp_parser_condition, cp_parser_decltype)
1465 (cp_parser_parameter_declaration)
1466 (cp_parser_exception_specification_opt)
1467 (cp_parser_exception_declaration): Likewise.
1468 * pt.c (check_default_tmpl_args): Likewise.
1469 * search.c (lookup_field_r): Likewise.
1470
0bbe864d
JM
14712010-02-09 Jason Merrill <jason@redhat.com>
1472
1473 PR c++/42399
1474 * pt.c (tsubst_copy_and_build): Propagate LAMBDA_EXPR_LOCATION.
1475
643d4cd6
JM
14762010-02-09 Jason Merrill <jason@redhat.com>
1477
1478 PR c++/42370
1479 * decl2.c (change_return_type): New fn.
1480 * semantics.c (apply_lambda_return_type): Use it.
1481 * cp-tree.h: Declare it.
1482
6561cdf6
RG
14832010-02-05 Richard Guenther <rguenther@suse.de>
1484
1485 * Make-lang.in (cp/cp-lang.o): Depend on gt-cp-cp-lang.h.
1486 * cp-lang.c: Include gt-cp-cp-lang.h.
1487 * config-lang.in (gtfiles): Add cp/cp-lang.c.
1488
3cdabe3b
DS
14892010-02-05 Dodji Seketeli <dodji@redhat.com>
1490
1491 PR c++/42915
1492 * typeck.c (get_template_parms_of_dependent_type): Try getting
1493 the template parameters fromt the type itself first.
1494
abfe01ce
JM
14952010-02-03 Jason Merrill <jason@redhat.com>
1496
f000c6a7
JM
1497 PR c++/4926
1498 PR c++/38600
1499 * mangle.c (write_unqualified_id): Split out from write_expression.
1500 (write_unqualified_name): Call it.
1501 (write_member_name): Likewise.
1502 (write_expression): Support TEMPLATE_ID_EXPR.
1503 Disambiguate operator names.
1504
abfe01ce
JM
1505 PR c++/12909
1506 * mangle.c (write_type) [VECTOR_TYPE]: Change mangling with
1507 -fabi-version=4.
1508
e6ca6e2a
JM
15092010-02-02 Jason Merrill <jason@redhat.com>
1510
1511 PR c++/41090
1512 * decl.c (cp_finish_decl): Add local statics to cfun->local_decls.
1513 * optimize.c (clone_body): Remap their initializers when making base
1514 variants.
1515 (maybe_clone_body): Complain if multiple clones aren't safe.
1516
1a048f82
DS
15172010-01-29 Dodji Seketeli <dodji@redhat.com>
1518
1519 PR c++/42758
1520 PR c++/42634
1521 PR c++/42336
1522 PR c++/42797
1523 PR c++/42880
1524 * cp-tree.h (NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1525 SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT,
1526 GET_NON_DEFAULT_TEMPLATE_ARGS_COUNT): New accessor macros.
1527 * pt.c (coerce_template_parms, type_unification_real,
1528 expand_template_argument_pack, coerce_template_parameter_pack):
1529 Set the non default template args count.
1530 (current_template_args): Always set non defaulted
1531 template args count when compiled with --enable-checking
1532 (tsubst_template_args, type_unification_real): Propagate the non
1533 defaulted template args count.
1534 * error.c (get_non_default_template_args_count): Renamed
1535 count_non_default_template_args into this. Don't calculate the
1536 non default template argument count anymore. Use the new
1537 accessor macros above to get it.
1538 (dump_template_argument_list, dump_type, dump_decl,
1539 dump_template_parms): Adjust.
1540 * parser.c (cp_parser_template_argument_list): Always set defaulted
1541 template args count when compiled with --enable-checking.
1542
9ee5ebeb
SZ
15432010-01-29 Shujing Zhao <pearly.zhao@oracle.com>
1544
1545 * decl.c (redeclaration_error_message): Wrap the return messages into
1546 G_() for easy translation.
1547
cd924144
JM
15482010-01-28 Jason Merrill <jason@redhat.com>
1549
1550 PR c++/42880
1551 * semantics.c (begin_class_definition): Don't use type_as_string.
1552
20c202f3
DS
15532010-01-28 Dodji Seketeli <dodji@redhat.com>
1554
1555 PR c++/42713
1556 PR c++/42820
1557 * typeck.c (get_template_parms_of_dependent_type): Factorized
1558 this out of incompatible_template_type_parms_p
1559 (incompatible_dependent_types_p): Renamed
1560 incompatible_template_type_parms_p into this. Make it detect
1561 two incompatible dependent typedefs too.
1562 (structural_comptypes): Use incompatible_dependent_types_p.
1563 * pt.c (get_template_info):
1564 Handle BOUND_TEMPLATE_TEMPLATE_PARAM.
1565
ebf0bf7f
JJ
15662010-01-20 Janis Johnson <janis187@us.ibm.com>
1567 Jason Merrill <jason@redhat.com>
1568
1569 * mangle.c (write_type): Mangle transparent record as member type.
1570 * semantics.c (begin_class_definition): Recognize decimal classes
1571 and set TYPE_TRANSPARENT_AGGR.
1572
4d43dcde
JM
15732010-01-20 Jason Merrill <jason@redhat.com>
1574
1575 PR c++/42338
1576 * mangle.c (write_expression): Handle tree codes that have extra
1577 arguments in the middle-end.
1578
4227d4a1
PC
15792010-01-20 Paolo Carlini <paolo.carlini@oracle.com>
1580
1581 PR c++/42038
1582 * except.c (expand_start_catch_block): Deal correctly with
1583 do_begin_catch returning error_mark_node.
1584
e4672ccd
JM
15852010-01-20 Jason Merrill <jason@redhat.com>
1586
a402c1b1
JM
1587 PR c++/41788
1588 * class.c (layout_class_type): Set packed_maybe_necessary for packed
1589 non-PODs.
1590
1f4a7a48
JM
1591 PR c++/41920
1592 * semantics.c (build_lambda_object): Call mark_used on captured
1593 variables.
1594
e4672ccd
JM
1595 PR c++/40750
1596 * decl.c (grokdeclarator): Clear type_quals for a member function
1597 declared using a typedef. Don't complain about adding cv-quals
1598 to a function typedef in C++0x mode.
1599
1124098b
JJ
16002010-01-20 Jakub Jelinek <jakub@redhat.com>
1601
1602 * decl.c (create_array_type_for_decl): Remove set but not used
1603 variable error_msg. Remove break stmts after return stmts.
1604
11d7788d
DS
16052010-01-19 Dodji Seketeli <dodji@redhat.com>
1606
1607 * error.c (dump_template_parms, count_non_default_template_args):
1608 Revert fix of PR c++/42634.
1609
ebea03e0
DS
16102010-01-18 Dodji Seketeli <dodji@redhat.com>
1611
1612 PR c++/42634
1613 * error.c (dump_template_parms): Use innermost template
1614 arguments before calling count_non_default_template_args.
1615 (count_non_default_template_args): We are being called with
1616 template innermost arguments now. There is no need to ensure
1617 that again.
1618
a5cf630e
DS
16192010-01-18 Dodji Seketeli <dodji@redhat.com>
1620
1621 PR c++/42766
1622 * cvt.c (build_expr_type_conversion): Look through OVERLOAD.
1623
c4471bb2
DS
16242010-01-17 Dodji Seketeli <dodji@redhat.com>
1625
1626 PR c++/42697
1627 *pt.c (tsubst_decl): Revert commit for PR c++/42697.
1628
4548cb4b
DS
16292010-01-17 Dodji Seketeli <dodji@redhat.com>
1630
1631 PR c++/42697
1632 *pt.c (tsubst_decl): Get the arguments of a specialization from
1633 the specialization template, not from the most general template.
1634
d1c05c88
JM
16352010-01-16 Jason Merrill <jason@redhat.com>
1636
1637 PR c++/42761
1638 * semantics.c (finish_decltype_type): Within a template, treat
1639 unresolved CALL_EXPR as dependent.
1640
58be9ce9
DS
16412010-01-15 Dodji Seketeli <dodji@redhat.com>
1642
1643 * error.c (dump_template_parms,count_non_default_template_args):
1644 Revert changes of PR c++/42634.
1645
ef5d1181
JJ
16462010-01-14 Jakub Jelinek <jakub@redhat.com>
1647
1648 PR middle-end/42674
1649 * decl.c (finish_function): Don't emit -Wreturn-type warnings in
1650 functions with noreturn attribute.
1651
2d1a618e
JM
16522010-01-14 Jason Merrill <jason@redhat.com>
1653
6700a285
JM
1654 PR c++/42701
1655 * call.c (build_new_method_call): Don't free the vec here.
1656
2d1a618e
JM
1657 PR c++/42655
1658 * call.c (convert_like_real): Do full decay_conversion for ck_rvalue.
1659
a5859aaf
DS
16602010-01-13 Dodji Seketeli <dodji@redhat.com>
1661
1662 PR c++/42634
1663 * error.c (dump_template_parms): Use innermost template
1664 arguments before calling count_non_default_template_args.
1665 (count_non_default_template_args): We are being called with
1666 template innermost arguments now. There is no need to ensure
1667 that again.
1668
c8f4e43a
DS
16692010-01-07 Dodji Seketeli <dodji@redhat.com>
1670
1671 c++/40155
1672 * pt.c (unify_pack_expansion): In non-deduced contexts, re-use template
1673 arguments that were previously deduced.
1674
d097567d
JM
16752010-01-05 Jason Merrill <jason@redhat.com>
1676
1677 * pt.c (unify_pack_expansion): Handle deduction from init-list.
1678 * call.c (build_over_call): Don't complain about it.
1679
4b4a42c4
JM
16802010-01-04 Jason Merrill <jason@redhat.com>
1681
282c399b
JM
1682 PR c++/42555
1683 * pt.c (tsubst_decl): Don't apply type attributes in place.
1684
4b4a42c4
JM
1685 PR c++/42567
1686 * semantics.c (describable_type): Remove decltype comment and
1687 semantics.
1688
ad41bd84
JM
1689
1690\f
0bdf1263 1691Copyright (C) 2010 Free Software Foundation, Inc.
ad41bd84
JM
1692
1693Copying and distribution of this file, with or without modification,
1694are permitted in any medium without royalty provided the copyright
1695notice and this notice are preserved.