]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
lang.opt (fdump-core): Re-add as ignored option for backward compatibility.
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
4877e471
JM
12011-05-13 Jason Merrill <jason@redhat.com>
2
b8f2ad7c
JM
3 PR c++/48969
4 * pt.c (deduction_tsubst_fntype): New.
5 (fn_type_unification): Use it.
6 (init_template_processing): Initialize hash table.
7 (print_template_statistics): Print hash table stats.
8
4877e471
JM
9 * call.c (build_op_call): Use timevar_cond_start/stop.
10 (build_user_type_conversion): Likewise.
11
16c20b0a
JM
122011-05-12 Jason Merrill <jason@redhat.com>
13
14 * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
15 * semantics.c (validate_constexpr_fundecl): Set it.
16 (check_deferred_constexpr_decls): Clear it.
17 (register_constexpr_fundef): Make sure it isn't set.
18 * decl.c (grok_special_member_properties): Check it.
19
3e475d30
JM
202011-05-11 Jason Merrill <jason@redhat.com>
21
6eb47b98
JM
22 PR c++/48948
23 * semantics.c (validate_constexpr_fundecl): Defer checking if
24 an argument type is being defined.
25 (is_valid_constexpr_fn): Add defer_ok parm.
26 (cxx_eval_call_expression): Adjust.
27 (check_deferred_constexpr_decls): New.
28 (literal_type_p): Make sure type isn't being defined.
29 (ensure_literal_type_for_constexpr_object): Handle type being defined.
30 * cp-tree.h: Declare check_deferred_constexpr_decls.
31 * decl.c (grokfndecl): Call validate_constexpr_fundecl here.
32 (start_preparsed_function, cp_finish_decl): Not here.
33 * class.c (finalize_literal_type_property): Don't call
34 validate_constexpr_fundecl.
35 (finish_struct): Call check_deferred_constexpr_decls.
36 * pt.c (tsubst_decl): Call validate_constexpr_fundecl.
37 (instantiate_class_template): Call check_deferred_constexpr_decls.
38
3c5283a7
JM
39 * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO
40 rather than DECL_TEMPLATE_INSTANTIATION.
41 (cxx_eval_call_expression): Likewise.
42
9b41f0d3
JM
43 * semantics.c (register_constexpr_fundef): Add to hash table here.
44 (validate_constexpr_fundecl): Not here.
45
efd115c1
JM
46 * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once.
47
f5ad54d7
JM
48 * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
49 do call maybe_constant_value in C++0x mode.
50 * semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.
51
3e475d30
JM
52 PR c++/48745
53 * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR.
54
51545682
NF
552011-05-11 Nathan Froyd <froydnj@codesourcery.com>
56
57 * cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use
58 TYPE_VALUES_RAW.
59 (UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise.
60 (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise.
61 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
62
b4359e45
JM
632011-05-10 Jason Merrill <jason@redhat.com>
64
95552437
JM
65 PR c++/48930
66 * class.c (type_build_ctor_call): New.
67 * cp-tree.h: Declare it.
68 * decl.c (check_initializer): Use it instead of
69 TYPE_NEEDS_CONSTRUCTING.
70 * init.c (build_value_init, build_value_init_noctor): Likewise.
71 (perform_member_init, expand_aggr_init_1, build_new_1): Likewise.
72 (build_vec_init): Likewise.
73 * typeck2.c (process_init_constructor_array): Likewise.
74 (process_init_constructor_record): Likewise.
75
b4359e45
JM
76 PR c++/48736
77 * pt.c (tsubst_copy_and_build): Handle substitution of a pack
78 expansion producing another expansion.
79
7506ab1d
VV
802011-05-10 Ville Voutilainen <ville.voutilainen@gmail.com>
81
82 Fixes for override/final.
83 * class.c (check_for_override): Diagnose final on a nonvirtual
84 member function, diagnose override for a virtual with no matching
85 override. Don't fiddle around with DECL_VINDEX.
86
d26e5986
NF
872011-05-10 Nathan Froyd <froydnj@codesourcery.com>
88
89 * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
90 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
91 * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
92 operand of EXPR_PACK_EXPANSION.
93 (cp_tree_operand_length): Declare.
94 * tree.c (cp_tree_operand_length): Define.
95 (cp_tree_equal): Call it.
96 * pt.c (value_dependent_expr_P): Likewise.
97 * mangle.c (write_expression): Likewise.
98
754af126
PC
992011-05-09 Paolo Carlini <paolo.carlini@oracle.com>
100
101 PR c++/48737
102 PR c++/48744
103 * decl.c (reshape_init): Take a complain parameter and do
104 not call error if tf_error is not set.
105 (check_initializer, reshape_init_r, reshape_init_array,
106 reshape_init_array_1, reshape_init_vector, reshape_init_class):
107 Adjust.
108 * typeck2.c (digest_init_r): Take a complain parameter and
109 pass it to convert_for_initialization.
110 (digest_init, digest_init_flags, process_init_constructor_array,
111 process_init_constructor_record, process_init_constructor_union,
112 process_init_constructor, digest_init_r): Adjust.
113 * init.c (expand_default_init, build_new_1): Likewise.
114 * typeck.c (cp_build_modify_expr): Likewise.
115 * decl2.c (grokfield): Likewise.
116 * call.c (convert_like_real, convert_default_arg): Likewise.
117 * semantics.c (finish_compound_literal): Pass complain to
118 reshape_init and digest_init.
119 * cp-tree.h: Adjust declarations.
120
1c682d06 1212011-05-07 Fabien Chêne <fabien@gcc.gnu.org>
754af126 122
1c682d06
FC
123 PR c++/48859
124 * init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the
125 recursion if there is user defined constructor.
126
03808d17
JM
1272011-05-09 Jason Merrill <jason@redhat.com>
128
129 PR c++/34772
130 * decl.c (initialize_local_var): Use DECL_INITIAL for simple
131 initialization.
132
b5da71d4
VV
1332011-05-08 Ville Voutilainen <ville.voutilainen@gmail.com>
134
135 Implement final/override for member functions.
136 * class.c (check_for_override): Check for DECL_OVERRIDE_P.
137 * cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
138 (cp_virt_specifiers, enum virt_specifier): New.
139 * decl.c (set_virt_specifiers): New.
140 (grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
141 * parser.c (make_call_declarator): add virt-specifiers parameter.
142 (cp_parser_lambda_declarator_opt): Adjust.
143 (cp_parser_direct_declarator): Likewise.
144 (cp_parser_virt_specifier_seq_opt): New.
145 * search.c (check_final_overrider): Diagnose attempts to override
146 a final member function.
147
bae14a37
DS
1482011-05-09 Dodji Seketeli <dodji@redhat.com>
149
150 PR c++/48574
151 * class.c (fixed_type_or_null): Use type_dependent_p_push to test
152 if the instance has a dependent initializer.
153
03a7c1de
PC
1542011-05-08 Paolo Carlini <paolo.carlini@oracle.com>
155
156 PR c++/48816
157 * cxx-pretty-print.c (pp_cxx_template_declaration): Remove
158 effectively unused variable.
159
c99c0026
EB
1602011-05-07 Eric Botcazou <ebotcazou@adacore.com>
161
162 * name-lookup.h (global_bindings_p): Adjust prototype.
163 * name-lookup.c (global_bindings_p): Return bool.
164
c80e3e02
JM
1652011-05-06 Jason Merrill <jason@redhat.com>
166
e68dde1f
JM
167 * decl.c (stabilize_save_expr_r): Set *walk_subtrees as
168 appropriate.
169
9e33e321
JM
170 PR c++/48909
171 * semantics.c (cxx_eval_conditional_expression): Check
172 integer_zerop instead.
173 (potential_constant_expression_1): Likewise.
174
c80e3e02
JM
175 PR c++/48911
176 * semantics.c (cxx_eval_array_reference): Handle implicit
177 initializers.
178
7e1352fe
NF
1792011-05-06 Nathan Froyd <froydnj@codesourcery.com>
180
181 * cp-tree.h (type_of_this_parm, class_of_this_parm): New functions.
182 * call.c (standard_conversion): Call class_of_this_parm.
183 * cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise.
184 (pp_cxx_direct_abstract_declarator): Likewise.
185 * decl2.c (change_return_type): Likewise.
186 (cp_reconstruct_complex_type): Likewise.
187 * error.c (dump_type_suffix, dump_function_decl): Likewise.
188 * mangle.c (write_function_type): Likewise.
189 * pt.c (unify): Likewise.
190 * typeck.c (merge_types, type_memfn_quals): Likewise.
191 * decl.c (build_this_parm): Call type_of_this_parm.
192
73452ce7
DS
1932011-05-06 Dodji Seketeli <dodji@redhat.com>
194
195 PR c++/48838
196 * cp-tree.h (non_static_member_function_p): Declare new function.
197 * tree.c (non_static_member_function_p): Define it.
198 * semantics.c (finish_call_expr): Use it.
199
3d528853
NF
2002011-05-05 Nathan Froyd <froydnj@codesourcery.com>
201
202 * decl.c (finish_case_label): Omit the loc argument to
203 build_case_label.
204
e3edeff4
JM
2052011-05-05 Jason Merrill <jason@redhat.com>
206
31e292c7
JM
207 * cp-tree.h (REFERENCE_REF_P): Just check the type.
208 * cvt.c (convert_from_reference): Adjust.
209 * pt.c (build_non_dependent_expr): Adjust.
210 * semantics.c (finish_offsetof): Adjust.
211 * tree.c (lvalue_kind): Use it.
212
e3edeff4
JM
213 PR c++/48873
214 * tree.c (stabilize_expr): Don't make gratuitous copies of classes.
215
907a08d9
EB
2162011-05-05 Eric Botcazou <ebotcazou@adacore.com>
217
218 * decl.c (start_preparsed_function): Do not set
219 dont_save_pending_sizes_p.
220
a04a722b
JM
2212011-05-05 Joseph Myers <joseph@codesourcery.com>
222
223 * parser.c (cp_parser_objc_method_definition_list): Update call to
224 objc_start_method_definition.
225
4d3baecc
JM
2262011-05-04 Jason Merrill <jason@redhat.com>
227
228 PR c++/48749
229 * class.c (resolves_to_fixed_type_p): Don't look closely
230 in templates.
231
6add7e94
PC
2322011-05-03 Paolo Carlini <paolo.carlini@oracle.com>
233
234 PR c++/28501
235 * call.c (add_builtin_candidate): Handle REALPART_EXPR and
236 IMAGPART_EXPR.
237
575bfb00
LC
2382011-05-02 Lawrence Crowl <crowl@google.com>
239
240 * decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
241 (poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
242 Change TV_NAME_LOOKUP to start/stop.
243 (define_label): Refactor timevar calls out to a wrapper function.
244 Change TV_NAME_LOOKUP to start/stop.
245 (xref_tag): Likewise.
246 (lookup_label): Refactor timevar calls out to a wrapper function.
247 Change TV_NAME_LOOKUP to start_cond/stop_cond.
248
249 * pt.c: (instantiate_class_template): Add a wrapper to push/pop new
250 TV_TEMPLATE_INST.
251 (instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
252 (lookup_template_class): Refactor timevar calls out to a wrapper
253 function. Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
254 (instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.
255
256 * name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
257 (poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
258 (push_namespace): Likewise.
259 (pop_nested_namespace): Likewise.
260 (pushdecl_namespace_level): Likewise.
261 (store_class_bindings): Likewise.
262 (push_to_top_level): Likewise.
263 (identifier_type_value): Refactor timevar calls out to a wrapper
264 function. Change TV_NAME_LOOKUP to start/stop.
265 (find_binding): Likewise.
266 (push_using_decl): Likewise.
267 (lookup_arg_dependent): Likewise.
268 (push_using_directive): Likewise.
269 (qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
270 to plain code. Change TV_NAME_LOOKUP to start/stop.
271 (lookup_type_current_level): Likewise. Refactor inner return to
272 break.
273 (pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
274 code. Change TV_NAME_LOOKUP to start_cond/stop_cond.
275 (pushdecl_top_level_1): Likewise.
276 (lookup_using_namespace): Likewise.
277 (pushdecl_with_scope): Refactor timevar calls out to a wrapper
278 function. Change TV_NAME_LOOKUP to start_cond/stop_cond.
279 (push_overloaded_decl): Likewise.
280 (push_class_level_binding): Likewise.
281 (namespace_binding): Likewise.
282 (set_namespace_binding): Likewise.
283 (supplement_binding): Likewise.
284 (unqualified_namespace_lookup): Likewise.
285 (lookup_name_real): Likewise.
286 (lookup_type_scope): Likewise.
287 (namespace_ancestor): Likewise.
288 (lookup_name_innermost_nonclass_level): Likewise.
289 (pushtag): Likewise.
290 (pop_from_top_level): Likewise.
291 (pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
292 function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Wrap long
293 lines.
294 (add_using_namespace): Refactor timevar calls out to a wrapper
295 function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Bypass
296 wrapper on call to self.
297
298 * decl2.c: (cp_write_global_declarations): Add start/stop of
299 new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
300 Remove push/pop calls to TV_VARCONST.
301
302 * parser.c: Add include of "timevar.h".
303 (cp_parser_explicit_instantiation): Add push/pop calls to
304 TV_TEMPLATE_INST.
305 (cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
306 (cp_parser_class_specifier): Add wrapper to add push/pop calls to
307 TV_PARSE_STRUCT.
308 (cp_parser_function_definition_from_specifiers_and_declarator): Add
309 push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
310 (cp_parser_late_parsing_for_member): Add push/pop calls to
311 new TV_PARSE_INMETH.
312
313 * call.c: Add include of "timevar.h".
314 (convert_class_to_reference): Wrap and add push/pop calls to
315 TV_OVERLOAD.
316 (build_op_call): Likewise.
317 (build_conditional_expr): Likewise.
318 (build_new_op): Likewise.
319 (build_new_method_call): Likewise.
320 (build_user_type_conversion): Reorganize to single return and add
321 push/pop calls to TV_OVERLOAD.
322 (perform_overload_resolution): Likewise.
323
324 * Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).
325
9257f35f
JM
3262011-05-02 Jason Merrill <jason@redhat.com>
327
9c69dcea
JM
328 * tree.c (build_vec_init_expr): Take complain parm.
329 (build_vec_init_elt): Likewise. Free arg vector.
330 (diagnose_non_constexpr_vec_init, build_array_copy): Adjust.
331 * cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK.
332 (VEC_INIT_EXPR_INIT): Likewise.
333 Adjust build_vec_init_expr declaration.
334 * init.c (perform_member_init): Adjust.
335
b73a4704
JM
336 Revert:
337 PR c++/40975
338 * cp-tree.def (VEC_INIT_EXPR): Add third operand.
339 * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
340 * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
341 * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
342 (build_vec_init_elt): Don't expect an array type.
343 (build_array_copy): Adjust.
344 * init.c (perform_member_init): Adjust.
345 (build_new_1): Use build_vec_init_expr.
346
0a2cdfe6
JM
347 PR c++/48834
348 * tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS.
349 Protect an explicit target.
350
9257f35f
JM
351 PR c++/48446
352 * decl.c (stabilize_save_expr_r, stabilize_vla_size): New.
353 (compute_array_index_type): Revert earlier 48446 changes.
354 (grokdeclarator): Use stabilize_vla_size.
355
6fb380f7
DG
3562011-05-02 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
357 Eric Botcazou <ebotcazou@adacore.com>
358
359 * parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE
360 instead of inappropriate zero values.
361
9fd15228
PC
3622011-05-02 Paolo Carlini <paolo.carlini@oracle.com>
363
364 PR c++/47969
365 * decl.c (compute_array_index_type): Check build_expr_type_conversion
366 return value for NULL_TREE.
367
48e5d119
PC
3682011-04-29 Paolo Carlini <paolo.carlini@oracle.com>
369
370 PR c++/48606
371 * init.c (perform_member_init): Check build_value_init return
372 value for error_mark_node.
373
2e1df0f0
DN
3742011-04-29 Diego Novillo <dnovillo@google.com>
375 Le-Chun Wu <lcwu@google.com>
376
377 * call.c (conversion_null_warnings): Also handle assignments
378 when warning about NULL conversions.
379
3802011-04-29 Le-Chun Wu <lcwu@google.com>
381
382 * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
383 * call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs.
384 (build_over_call): Use it to determine whether to emit a NULL
385 warning for template function instantiations.
386 (build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if
387 EXPLICIT_TARGS is set.
388
a88fdc2a
NP
3892011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>,
390 Mike Stump <mikestump@comcast.net>
391
392 * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only
393 in maintainer mode. Use the --output-file option of gperf instead
394 of > to prevent creating an empty cp/cfns.h when gperf is not
395 available.
396
546a4197
PC
3972011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
398
399 PR c++/48798
400 * semantics.c (finish_base_specifier): cv-qualified base class
401 is fine, per DR 484.
402
f62cd409
DS
4032011-04-28 Dodji Seketeli <dodji@redhat.com>
404
405 PR c++/48656
406 * semantics.c (finish_call_expr): Don't forget BASELINK nodes when
407 considering call expressions involving a member function.
408
a6343f61
PC
4092011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
410
411 PR c++/48530
412 * tree.c (build_cplus_new): Check build_target_expr return
413 value for error_mark_node.
414
83b6b866
PC
4152011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
416
417 PR c++/48771
418 * semantics.c (literal_type_p): Reference types are literal types,
419 per the FDIS.
420 (valid_type_in_constexpr_fundecl_p): Remove.
421 (is_valid_constexpr_fn): Adjust.
422
9e0541d9
JM
4232011-04-27 Jason Merrill <jason@redhat.com>
424
77a30e9a
JM
425 PR libstdc++/48760
426 Implement list-initialization of _Complex.
427 * decl.c (reshape_init_r): Allow {real,imag} for _Complex.
428 (check_initializer): Likewise.
429 * call.c (build_complex_conv): New.
430 (implicit_conversion): Call it.
431 (convert_like_real): Handle it.
432 * typeck2.c (check_narrowing): Handle it.
433
e79a6b40
JM
434 * init.c (build_vec_delete_1): Look for sfk_deleting_destructor to
435 decide whether to delete.
436 (build_vec_init): Pass sfk_complete_destructor.
437
c12ff9d8
JM
438 PR c++/40975
439 * cp-tree.def (VEC_INIT_EXPR): Add third operand.
440 * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
441 * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
442 * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
443 (build_vec_init_elt): Don't expect an array type.
444 (build_array_copy): Adjust.
445 * init.c (perform_member_init): Adjust.
446 (build_new_1): Use build_vec_init_expr.
447
c224bdc1
JM
448 * class.c (resolve_address_of_overloaded_function): Don't
449 change OVERLOAD to TREE_LIST.
450 * pt.c (print_candidates_1): Remove nonsensical assert.
451
9e0541d9
JM
452 PR c++/48046
453 * parser.c (cp_parser_diagnose_invalid_type_name): Commit
454 to tentative parse sooner.
455
574cfaa4
JM
4562011-04-26 Jason Merrill <jason@redhat.com>
457
a4bd198c
JM
458 PR c++/42687
459 * parser.c (cp_parser_primary_expression): Set *idk to
460 CP_ID_KIND_NONE for a parenthesized identifier.
461
a0dc5e4a
JM
462 * ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname.
463 (cxx_print_identifier): Correct indentation.
464
574cfaa4
JM
465 PR c++/48530
466 * decl.c (cxx_maybe_build_cleanup): Add complain parm.
467 * tree.c (force_target_expr): Add complain parm.
468 (build_target_expr_with_type): Likewise.
469 (get_target_expr_sfinae): Split out.
470 (build_vec_init_expr, bot_manip): Adjust.
471 * init.c (build_vec_delete, build_vec_delete_1): Add complain parm.
472 (build_delete, build_dtor_call): Likewise.
473 (perform_direct_initialization_if_possible): Adjust.
474 (build_vec_init): Handle error return.
475 * cvt.c (force_rvalue): Add complain parm.
476 Call build_special_member_call directly.
477 * decl2.c (delete_sanity): Add complain parm.
478 (build_cleanup): Adjust.
479 * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust.
480 * semantics.c (finish_stmt_expr_expr): Adjust.
481 (finish_compound_literal): Adjust.
482 * parser.c (cp_parser_delete_expression): Adjust.
483 * typeck2.c (build_functional_cast): Adjust.
484 * cp-tree.h: Adjust.
485
86262bb1
MJ
4862011-04-26 Martin Jambor <mjambor@suse.cz>
487
488 * class.c (cp_fold_obj_type_ref): Remove.
489 * cp-tree.h (cp_fold_obj_type_ref): Remove declaration.
490
a0d260fc
PC
4912011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
492
493 * cp-tree.def: Add a new UNDERLYING_TYPE tree code.
494 * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
495 (UNDERLYING_TYPE_TYPE): Add.
496 * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
497 as TS_COMMON.
498 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
499 cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
500 (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
501 * semantics.c (finish_underlying_type): New.
502 * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
503 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
504 * cxx-pretty-print.c (p_cxx_type_id): Likewise.
505 * tree.c (cp_walk_subtrees): Likewise.
506 * pt.c (for_each_template_parm_r, tsubst, unify,
507 dependent_type_p_r): Likewise.
508 * mangle.c (write_type): Sorry for __underlying_type.
a0d260fc 509
d95f258e
JM
5102011-04-25 Jason Merrill <jason@redhat.com>
511
512 PR c++/48707
513 * decl.c (type_dependent_init_p): New.
514 (cp_finish_decl): Check it.
515 * pt.c (any_type_dependent_elements_p): New.
516 * cp-tree.h: Declare it.
517
8efcbeca
JM
5182011-04-20 Jason Merrill <jason@redhat.com>
519
fa9ef321
JM
520 * semantics.c (finish_compound_literal): Don't put an array
521 with a dtor in a static variable.
522
f7029277
JM
523 * call.c (build_over_call): Handle trivial dtor.
524
31603723
JM
525 * search.c (lookup_fnfields_slot): Call complete_type.
526
8adaafcf
JM
527 PR c++/48594
528 * decl2.c (build_offset_ref_call_from_tree): Move
529 non-dependency of object outside condition.
530
8efcbeca
JM
531 PR c++/48657
532 * decl.c (cp_finish_decl): Simplify template handling.
533
04695783
JM
5342011-04-20 Jim Meyering <meyering@redhat.com>
535
536 * tree.c (cxx_printable_name_internal): Remove useless if-before-free.
537
c45413fe
JM
5382011-04-19 Jason Merrill <jason@redhat.com>
539
68a29e1c
JM
540 PR c++/46304
541 * typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.
542
c45413fe
JM
543 PR c++/45267
544 * decl.c (duplicate_decls): Keep always_inline attribute
545 in sync with DECL_DISREGARD_INLINE_LIMITS.
546
09262fff
JM
5472011-04-18 Jason Merrill <jason@redhat.com>
548
e5dda971
JM
549 PR c++/48569
550 * typeck2.c (build_functional_cast): Handle VOID_TYPE.
551
09262fff
JM
552 PR c++/48537
553 * init.c (build_value_init): Handle UNION_TYPE the same.
554
37a8ccfc
JJ
5552011-04-18 Jakub Jelinek <jakub@redhat.com>
556
557 PR c++/48632
558 * parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr
559 for type dependent pointers.
560
cff41484
JM
5612011-04-18 Jim Meyering <meyering@redhat.com>
562
563 * pt.c (type_unification_real): Fix typo in comment: s/in in/in/.
564
d77c2e5b
JH
5652011-04-17 Jan Hubicka <jh@suse.cz>
566
567 * semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed
568 gotos.
569
991e0156
JM
5702011-04-17 Jason Merrill <jason@redhat.com>
571
4ddd8a74
JM
572 PR c++/48531
573 * typeck2.c (build_functional_cast): Disallow array type.
574
991e0156
JM
575 * tree.c (get_target_expr): Handle VEC_INIT_EXPR.
576
2e9bb6ba
JH
5772011-04-17 Jan Hubicka <jh@suse.cz>
578
579 * class.c (cp_fold_obj_type_ref): Drop vtable_method.
580
deb9642d
JM
5812011-04-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
582
583 Implement N3271
584 * parser.c (cp_convert_range_for): Split into
585 cp_parser_perform_range_for_lookup.
586 (cp_parser_perform_range_for_lookup): New.
587 (cp_parser_range_for_member_function): New.
588 (cp_parser_for_init_statement): Correct error message.
589 * semantics.c (finish_call_expr): Accept COMPONENT_REF.
590
c59633d9
NP
5912011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
592
593 * parser.c (cp_parser_objc_protocol_declaration): Updated for
594 change from objc_declare_protocols() to objc_declare_protocol().
595
81c1113a
NF
5962011-04-14 Nathan Froyd <froydnj@codesourcery.com>
597
598 PR objc++/48479
599 * typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
600 and return immediately.
601
1f18dbc6
NF
6022011-04-14 Nathan Froyd <froydnj@codesourcery.com>
603
604 * cp-tree.def (SWITCH_STMT): Add an extra operand.
605 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
606 * cp-tree.h (SWITCH_STMT_SCOPE): Define.
607 * semantics.c (begin_switch__stmt): Pass scope to build_stmt.
608 (finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN.
609
545f261b
NF
6102011-04-14 Nathan Froyd <froydnj@codesourcery.com>
611
612 * cp-tree.def (IF_STMT): Add an extra operand.
613 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
614 * cp-tree.h (IF_SCOPE): Define.
615 * semantics.c (begin_if_stmt): Pass scope to build_stmt.
616 (finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN.
617
40e71fc7
NF
6182011-04-14 Nathan Froyd <froydnj@codesourcery.com>
619
620 * cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand.
621 * cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED.
622 * cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define.
623 * semantics.c (begin_for_stmt): Pass an extra arg to build_stmt.
624 Use FOR_SCOPE instead of TREE_CHAIN.
625 (begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE.
626 (finish_for_stmt): Likewise.
627
fe5b5c36
JM
6282011-04-14 Jason Merrill <jason@redhat.com>
629
c2aa8dc9
JM
630 * parser.c (cp_parser_postfix_expression): Fix flags passed to
631 build_new_method_call.
632 * semantics.c (finish_call_expr): Likewise.
633
e2a009c7
JM
634 PR c++/48531
635 * init.c (build_value_init_noctor): Check complain consistently.
636
a66e8081
JM
637 PR c++/48557
638 * typeck.c (cp_build_binary_op): Don't decay void operands.
639
fe5b5c36
JM
640 PR c++/48446
641 * decl.c (compute_array_index_type): Use get_temp_regvar instead
642 of variable_size.
643 * init.c (get_temp_regvar): No longer static.
644 * cp-tree.h: Declare it.
645
32dabdaf
NP
6462011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
647
648 * parser.c (cp_parser_objc_class_declaration): Updated for change
649 in objc_declare_class().
650
61e46a7d
NF
6512011-04-14 Nathan Froyd <froydnj@codesourcery.com>
652
653 * decl.c (poplevel): Use block_chainon.
654
516d9427
JM
6552011-04-13 Jason Merrill <jason@redhat.com>
656
657 PR c++/48594
658 * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
659 or pointer to (non-member) function.
660
9c76a19e
JJ
6612011-04-13 Jakub Jelinek <jakub@redhat.com>
662
663 PR c++/48570
664 * semantics.c (cxx_eval_array_reference): Handle reading from
665 wchar_t, char16_t and char32_t STRING_CST.
666
91d8b4bd
DS
6672011-04-13 Dodji Seketeli <dodji@redhat.com>
668
669 PR c++/48574
670 * class.c (fixed_type_or_null): We cannot determine the dynamic
671 type of a reference variable if its initializer is dependent.
672
ba9c349e
JM
6732011-04-13 Jason Merrill <jason@redhat.com>
674
675 PR c++/48581
676 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
677 unqualified lookup failing if we're still in a template.
678
81f653d6
NF
6792011-04-12 Nathan Froyd <froydnj@codesourcery.com>
680
681 * cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move
682 tree_contains_struct initialization to...
683 * cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_*
684 macros.
685 * cp-objcp-common.h (cp_common_init_ts): Declare.
686 * cp-tree.h (union lang_tree_node): Check for TS_COMMON before
687 calling TREE_CHAIN.
688
eb345401
NP
6892011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
690
691 * parser.c (cp_parser_objc_message_expression): Updated call
692 to objc_build_message_expr.
693
0fa1f9b7
MJ
6942011-04-12 Martin Jambor <mjambor@suse.cz>
695
696 * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
697 cgraph_get_create_node.
698 * decl2.c (cp_write_global_declarations): Call cgraph_get_node
699 instead of cgraph_get_create_node.
700 * method.c (make_alias_for_thunk): Call cgraph_get_node
701 instead of cgraph_get_create_node, assert it returns non-NULL.
702 (use_thunk): Likewise.
703 * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
704 when flag_syntax_only is not set. Call cgraph_get_node instead of
705 cgraph_get_create_node.
706 (maybe_clone_body): Call cgraph_get_node instead of
707 cgraph_get_create_node.
708
a358e188
MJ
7092011-04-12 Martin Jambor <mjambor@suse.cz>
710
711 * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
712 instead of cgraph_node.
713 * decl2.c (cxx_callgraph_analyze_expr): Likewise.
714 (cp_write_global_declarations): Likewise.
715 * optimize.c (maybe_clone_body): Likewise.
716 * semantics.c (maybe_add_lambda_conv_op): Likewise.
717 * mangle.c (mangle_decl): Likewise.
718 * method.c (make_alias_for_thunk): Likewise.
719 (use_thunk): Likewise.
720
b24290fb
JM
7212011-04-11 Jason Merrill <jason@redhat.com>
722
80c6dcf5
JM
723 PR c++/48535
724 * decl.c (cp_complete_array_type_or_error): New.
725 * semantics.c (finish_compound_literal): Use it.
726 * cp-tree.h: Declare it.
727
76186d20
JM
728 PR c++/48535
729 * semantics.c (finish_compound_literal): Handle references.
730
834aa426
JM
731 PR c++/48535
732 * semantics.c (finish_compound_literal): Take complain parm.
733 (build_lambda_object): Adjust.
734 * cp-tree.h: Adjust.
735 * call.c (convert_like_real): Adjust.
736 * decl.c (check_initializer): Adjust.
737 * parser.c (cp_parser_postfix_expression): Adjust.
738 (cp_parser_functional_cast): Adjust.
739 * pt.c (tsubst_copy_and_build): Adjust.
740 * typeck2.c (process_init_constructor_record): Adjust.
741
55b13820
JM
742 PR c++/48534
743 * cvt.c (ocp_convert): Use build_nop to convert to underlying type
744 of scoped enum.
745
ac4b1cc0
JM
746 PR c++/48523
747 * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
748 than cp_build_indirect_ref.
749
b24290fb
JM
750 PR c++/48457, Core 1238
751 * call.c (reference_binding): Allow rvalue reference to bind to
752 function lvalue.
753 * tree.c (lvalue_kind): Functions are always lvalues.
754
1ee44b26
JM
7552011-04-07 Jason Merrill <jason@redhat.com>
756
f5a28e87
JM
757 PR c++/48500
758 * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
759 arguments even if we don't know the function.
760
b06a1f50
JM
761 PR c++/48481
762 * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
763 at the end of the chain.
764 * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
765 (iterative_hash_template_arg): Likewise.
766
3a2cb4d0
JM
767 PR c++/48481
768 * cp-tree.h (OVL_ARG_DEPENDENT): New.
769 * name-lookup.c (add_function): Set it.
770 * semantics.c (finish_call_expr): Free OVERLOADs if it's set.
771
c9b55889
JM
772 PR c++/48481
773 * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
774 Release unused vector.
775
6ae81785
JM
776 PR c++/48451
777 * pt.c (fn_type_unification): Don't clear incomplete pack flag.
778 (type_unification_real): Clear it here instead.
779
d0bb79ac
JM
780 PR c++/48468
781 * except.c (build_noexcept_spec): Propagate error_mark_node.
782 (finish_noexcept_expr): Likewise.
783
6dab6cf1
JM
784 PR c++/48452
785 * typeck.c (build_x_compound_expr_from_list): Return error_mark_node
786 in SFINAE context.
787
b46c79a1
JM
788 PR c++/48450
789 * call.c (resolve_args): Take complain.
790 (build_new_function_call, build_operator_new_call): Pass it.
791 (build_op_call, build_new_op, build_new_method_call): Pass it.
792
3f89235e
JM
793 PR c++/48450
794 * typeck.c (check_for_casting_away_constness): Take complain.
795 (build_static_cast_1, build_reinterpret_cast_1): Pass it.
796 (build_const_cast_1): Pass it. Take full complain parm.
797 (build_const_cast, cp_build_c_cast): Adjust.
798
3cf0ca23
JM
799 * tree.c (build_aggr_init_expr): Always return error_mark_node
800 on abstract violation.
801
362115a9
JM
802 PR c++/48450
803 * tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
804 (bot_manip): Adjust.
805 * cp-tree.h: Adjust.
806 * call.c (convert_like_real, build_cxx_call): Adjust.
807 (perform_direct_initialization_if_possible): Adjust.
808 * cvt.c (ocp_convert): Adjust.
809 * init.c (build_value_init): Adjust.
810 * semantics.c (maybe_add_lambda_conv_op): Adjust.
811 * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
812 * typeck2.c (build_functional_cast): Adjust.
813
351ccf20
JM
814 * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
815 level.
816 (perform_member_init): Not here.
817 * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
818 case to templates.
819 (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
820
2b8497cd
JM
821 PR c++/48449
822 * typeck2.c (build_functional_cast): Check complain consistently.
823 Use build_value_init and abstract_virtuals_error_sfinae.
824 (abstract_virtuals_error_sfinae): Split out.
825 * cp-tree.h: Declare it.
826 * init.c (build_new_1): Use it.
827 (build_value_init_noctor): Handle FUNCTION_TYPE.
828
6cdb1428
JM
829 * semantics.c (finish_decltype_type): Simplify handling of unknown
830 type.
831
5b97c77f
JM
832 * semantics.c (finish_decltype_type): Add complain parm.
833 * cp-tree.h: Adjust.
834 * parser.c (cp_parser_decltype): Adjust.
835 * pt.c (tsubst): Adjust.
836
1ee44b26
JM
837 PR c++/48450
838 * cvt.c (ocp_convert): Handle converting scoped enum to bool.
839
4e36c213
JM
8402011-03-31 Jason Merrill <jason@redhat.com>
841
c689d49e
JM
842 PR c++/48277
843 * semantics.c (finish_call_expr): Remove assert.
844
c454d74a
JM
845 PR c++/48280
846 * method.c (defaultable_fn_check): Templates are not defaultable.
847
4e36c213
JM
848 * parser.c (cp_parser_init_declarator): Avoid redundant
849 cp_finish_decl for member declarations.
850
ef5daa25
JM
8512011-03-30 Jason Merrill <jason@redhat.com>
852
853 PR c++/48212
854 * semantics.c (non_const_var_error): Just return if DECL_INITIAL
855 is error_mark_node.
856
c06ce6e4
JM
8572011-03-30 Jason Merrill <jason@redhat.com>
858
e0f89433
JM
859 PR c++/48369
860 * semantics.c (potential_constant_expression_1): Handle
861 UNORDERED_EXPR and ORDERED_EXPR.
862
a63940ba
JM
863 PR c++/48281
864 * semantics.c (finish_compound_literal): Do put static/constant
865 arrays in static variables.
866
88d37ae6
JM
867 * call.c (convert_like_real) [ck_list]: Build up the
868 initializer_list object directly.
869 * decl.c (build_init_list_var_init): Adjust.
870
c06ce6e4
JM
871 * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
872 * decl.c (reshape_init_array_1): Likewise.
873
915829cc
JM
8742011-03-29 Jason Merrill <jason@redhat.com>
875
5453bbef
JM
876 PR c++/48265
877 * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
878 the variable is constant before looking at its initializer.
879
5b9e705e
JM
880 PR c++/48319
881 * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
882
00a0d6f3
JM
883 PR c++/48089
884 * semantics.c (potential_constant_expression_1): Change error about
885 use of *this in constructor into sorry.
886
a90caaa2
JM
887 PR c++/48296
888 * decl.c (cp_finish_decl): Defer validation of constexpr member
889 functions.
890 * class.c (finalize_literal_type_property): Validate them here.
891 * semantics.c (is_valid_constexpr_fn): Don't check completeness.
892
915829cc
JM
893 * semantics.c (is_valid_constexpr_fn): Specify input location.
894
0309d288
JM
8952011-03-28 Jason Merrill <jason@redhat.com>
896
c2c6f744
JM
897 PR c++/48313
898 * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
899 from overloaded function.
900
dd35aac7
JM
901 Core 1232
902 * call.c (build_array_conv): New.
903 (implicit_conversion): Use it.
904
159177a1
JM
905 * call.c (reference_binding): Allow direct binding to an array
906 rvalue.
907
c1120b0c
JM
908 Core 898
909 * parser.c (cp_parser_compound_statement): Add function_body parm.
910 Complain about non-body compound-stmt in constexpr fn.
911 (cp_parser_primary_expression, cp_parser_statement): Adjust.
912 (cp_parser_implicitly_scoped_statement): Adjust.
913 (cp_parser_function_body, cp_parser_try_block): Adjust.
914 (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
915 (cp_parser_objc_try_catch_finally_statement): Adjust.
916
62add5e1
JM
917 Core 898
918 * semantics.c (constexpr_fn_retval): New. Allow using-declaration
919 and using-definition.
920 (register_constexpr_fundef): Call it.
921
0309d288
JM
922 * except.c (build_noexcept_spec): Call cxx_constant_value after
923 converting to bool.
924
ba78087b
KT
9252011-03-25 Kai Tietz <ktietz@redhat.com>
926
927 * lex.c (interface_strcmp): Handle dos-paths.
928 (handle_pragma_implementation): Use filename_cmp instead of
929 strcmp.
930 (in_main_input_context): Likewise.
931
7eda3368
JM
9322011-03-25 Jason Merrill <jason@redhat.com>
933
5ade176d
JM
934 Core 1135
935 * method.c (defaulted_late_check): Check for exception spec mismatch.
936 (defaultable_fn_check): Allow exception spec and virtual.
937 * class.c (check_for_override): A virtual dtor is non-trivial.
938
7eda3368
JM
939 PR c++/48289
940 * pt.c (build_non_dependent_expr): Keep dereferences outside the
941 NON_DEPENDENT_EXPR.
942
ac9a30ae
KT
9432011-03-25 Kai Tietz <ktietz@redhat.com>
944
945 * decl.c (decls_match): Replace target hook
946 call of comp_type_attributes by version in tree.c file.
947 * search.c (check_final_overrider): Likewise.
948 * typeck.c (structural_comptypes): Likewise.
949
62d784f7
KT
9502011-03-21 Kai Tietz <ktietz@redhat.com>
951
952 PR target/12171
5050afdf
KT
953 * cxx-pretty-print.c (pp_cxx_ptr_operator):
954 Display allowed attributes for function pointer types.
955 * error.c (dump_type_prefix): Likewise.
956
62d784f7
KT
957 * tree.c (cxx_attribute_table): Adjust table.
958
e6baef83
JM
9592011-03-18 Jason Merrill <jason@redhat.com>
960
b3f1cee4
JM
961 PR c++/48162
962 * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
963
e6baef83
JM
964 PR c++/48118
965 * call.c (build_over_call): Don't skip ck_rvalue.
966
547206a4
JM
9672011-03-17 Jason Merrill <jason@redhat.com>
968
c598e5fa
JM
969 PR c++/47504
970 * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
971 the conversion set TREE_OVERFLOW.
972
c1e41527
JM
973 Core 1212
974 * semantics.c (finish_decltype_type): Return T&& for xvalue.
975 * typeck.c (unlowered_expr_type): Preserve cv-quals.
976
547206a4
JM
977 PR c++/48166
978 * decl.c (revert_static_member_fn): Strip function-cv-quals.
979
3f7c7453
JM
9802011-03-16 Jason Merrill <jason@redhat.com>
981
cb21e9cd
JM
982 PR c++/48089
983 * semantics.c (potential_constant_expression_1): Don't allow *this
984 in a constructor.
985 (register_constexpr_fundef): Use potential_rvalue_constant_expression.
986
89ae3825
JM
987 PR c++/47301
988 * decl.c (compute_array_index_type): Don't bother trying to deal
989 with literal classes in ABI v1.
990
9f2a22d0
JM
991 PR c++/46336
992 * decl.c (duplicate_decls): Return NULL_TREE for clashing
993 C functions.
994
3f7c7453
JM
995 PR c++/47570
996 * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
997 use the generic binary expression handling.
998
f617201f
DN
9992011-03-16 Diego Novillo <dnovillo@google.com>
1000
1001 * Make-lang.in (CXX_PARSER_H): New.
1002 (cp/parser.o): Add dependency on CXX_PARSER_H.
1003 Add dependency on tree-pretty-print.h
1004 (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
1005 * cp-lang.c: Include parser.h.
1006 * parser.c: Include parser.h.
1007 (struct cp_token): Add bitfield purged_p.
1008 Update all users.
1009 Move to parser.h.
1010 (CPP_PURGED): Remove. Update all users.
1011 (struct cp_lexer): Change field buffer to be a VEC of cp_token.
1012 Remove field buffer_length.
1013 Update all users.
1014 Move to parser.h.
1015 (struct tree_check): Move to parser.h.
1016 (cp_token_position): Likewise.
1017 (struct cp_token_cache): Likewise.
1018 (CPP_KEYWORD): Likewise.
1019 (CPP_TEMPLATE_ID): Likewise.
1020 (CPP_NESTED_NAME_SPECIFIER): Likewise.
1021 (N_CP_TTYPES): Likewise.
1022 (enum cp_parser_status_kind): Likewise.
1023 (struct cp_parser_context): Likewise.
1024 (struct cp_default_arg_entry_d): Likewise.
1025 (struct cp_unparsed_functions_entry_d): Likewise.
1026 (struct cp_parser): Likewise.
1027 (cp_lexer_dump_tokens): New.
1028 (cp_lexer_debug_tokens): New.
1029 (cp_lexer_finished_p): New.
1030 (cp_lexer_alloc): Factor out of cp_lexer_new_main.
1031 (cp_lexer_new_main): Re-write main lexing loop to push
1032 tokens into the new VEC buffer.
1033 (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
1034 Do not abort if the token type is not recognized, just print
1035 its code.
1036 * parser.h: New file.
1037 * config-lang.in (gtfiles): Add cp/parser.h.
1038
0136dc74
JM
10392011-03-16 Jason Merrill <jason@redhat.com>
1040
532c679e
JM
1041 Core 1148
1042 * typeck.c (check_return_expr): Fix conditions for setting
1043 LOOKUP_PREFER_RVALUE.
1044
e676810e
JM
1045 * call.c (build_over_call): Remove require_complete_type_sfinae call.
1046
0136dc74
JM
1047 PR c++/48132
1048 * decl.c (check_array_designated_initializer): Allow integer index.
1049 (reshape_init_array_1): Set index on the elements.
1050
85a273ba
JM
10512011-03-16 Jason Merrill <jason@redhat.com>
1052
f8f12278
JM
1053 PR c++/48113
1054 * typeck.c (convert_for_initialization): Use
1055 perform_implicit_conversion_flags.
1056 * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
1057 rvaluedness_matches_p on ck_rvalue.
1058 (convert_like_real) [ck_rvalue]: And restore it here.
1059
85a273ba
JM
1060 PR c++/48115
1061 * call.c (convert_arg_to_ellipsis): Handle incomplete type.
1062
a8d7041a
JM
10632011-03-16 Jason Merrill <jason@redhat.com>
1064
23d956f9
JM
1065 * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
1066 committed to this tentative parse.
1067
bb4586d3
JM
1068 PR c++/47999
1069 * semantics.c (finish_call_expr): Preserve reference semantics
1070 in templates.
1071
a8d7041a
JM
1072 * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
1073
2b1c5433
JJ
10742011-03-16 Jakub Jelinek <jakub@redhat.com>
1075
1076 * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
1077 DECL_LANG_SPECIFIC is NULL.
1078
92d0652c
JM
10792011-03-15 Jason Merrill <jason@redhat.com>
1080
6871351b
JM
1081 Core 1074
1082 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
1083 check value_dependent_expression_p on the operand.
1084
17bc631c
JM
1085 * semantics.c (push_cx_call_context): Return bool.
1086 (cxx_eval_call_expression): Handle excess depth.
1087
92d0652c
JM
1088 Core 1191
1089 * method.c (synthesized_method_walk): Cleanups don't affect the
1090 triviality of a constructor, but do affect deletion and exception
1091 specification.
1092
437697b8
RRC
10932011-03-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1094
1095 * decl2.c (cp_check_const_attributes): New.
1096 (cplus_decl_attributes): Call cp_check_const_attributes.
1097
4c66d85a
JM
10982011-03-15 Jason Merrill <jason@redhat.com>
1099
1100 PR c++/34758
1101 * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for
1102 recursion first.
1103 (push_defarg_context, pop_defarg_context): New.
1104 * parser.c (cp_parser_late_parsing_default_args): Use them.
1105 * cp-tree.h: Declare them.
1106
b057bff4
DS
11072011-03-11 Dodji Seketeli <dodji@redhat.com>
1108
1109 * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
1110 the argument of the indirection operator should not be dependent.
1111 Fix the comment.
1112
e8d6ec55
JM
11132011-03-11 Jason Merrill <jason@redhat.com>
1114
ba7d31f6
JM
1115 PR c++/47125
1116 * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
1117
8318b14c
JM
1118 PR c++/47144
1119 * parser.c (cp_parser_template_type_arg): Set
1120 type_definition_forbidden_message.
1121
e8d6ec55
JM
1122 PR c++/47808
1123 * decl.c (compute_array_index_type): Discard folding
1124 if it didn't produce a constant.
1125
e33eba75
JJ
11262011-03-11 Jakub Jelinek <jakub@redhat.com>
1127
1128 PR c++/48035
1129 * init.c (build_zero_init_1): Extracted from build_zero_init.
1130 Add FIELD_SIZE argument, if non-NULL and field bit_position
1131 as not smaller than that, don't add that field's initializer.
1132 Pass DECL_SIZE as last argument to build_zero_init_1
1133 for DECL_FIELD_IS_BASE fields.
1134 (build_zero_init): Use build_zero_init_1.
1135
4999d9b0
JM
11362011-03-10 Jason Merrill <jason@redhat.com>
1137
18d92053
JM
1138 PR c++/48029
1139 * pt.c (iterative_hash_template_arg): Remove special case for
1140 ARRAY_TYPE.
1141
4999d9b0
JM
1142 PR c++/47198
1143 * parser.c (cp_parser_single_declaration): Just return if
1144 cp_parser_parse_and_diagnose_invalid_type_name complained.
1145
3a8face4
JM
11462011-03-09 Jason Merrill <jason@redhat.com>
1147
1148 PR c++/44629
1149 * pt.c (unify): An unresolved overload is a nondeduced context.
1150
bf6817f2
MJ
11512011-03-09 Martin Jambor <mjambor@suse.cz>
1152
1153 PR tree-optimization/47714
1154 * method.c (use_thunk): Clear addressable flag of thunk arguments.
1155
918f238e
DS
11562011-03-08 Dodji Seketeli <dodji@redhat.com>
1157
1158 PR c++/47705
1159 * pt.c (convert_nontype_argument): Only call decay_conversion on
1160 arrays.
1161
2c86a82a
JM
11622011-03-08 Jason Merrill <jason@redhat.com>
1163
db68a2cb
JM
1164 PR c++/47488
1165 * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
1166
8c0672ff
JM
1167 PR c++/47705
1168 * pt.c (convert_nontype_argument): Don't crash on non-pointer
1169 argument to pointer parameter.
1170
2c86a82a
JM
1171 PR c++/45651
1172 * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
1173 !TREE_PUBLIC decls.
1174
9ca6556e
DS
11752011-03-08 Dodji Seketeli <dodji@redhat.com>
1176
530a4800 1177 PR c++/47957
9ca6556e
DS
1178 * name-lookup.c (binding_to_template_parms_of_scope_p): Only
1179 consider scopes of primary template definitions. Adjust comments.
1180
27062604
JM
11812011-03-07 Jason Merrill <jason@redhat.com>
1182
93dd46fb
JM
1183 PR c++/48003
1184 * pt.c (convert_nontype_argument): Fix -fpermissive allowing
1185 integer overflow.
1186 * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
1187
8152661b
JM
1188 PR c++/48015
1189 * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
1190
27062604
JM
1191 PR c++/48008
1192 * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
1193 (write_CV_qualifiers_for_type): Not here.
1194
787a8c0f
JM
11952011-03-06 Joseph Myers <joseph@codesourcery.com>
1196
1197 * lang-specs.h: Match -save-temps* instead of -save-temps.
1198
55af847f
JM
11992011-03-05 Jason Merrill <jason@redhat.com>
1200
1201 * mangle.c (write_expression): Change ABI v6 to v5.
1202 (write_type): Likewise.
1203
87e7b310
JH
12042011-03-04 Jan Hubicka <jh@suse.cz>
1205
1206 PR lto/47497
1207 * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
1208 and cgraph_add_thunk.
1209 * method.c (make_alias_for_thunk, use_thunk): Likewise.
1210 * mangle.c (mangle_decl): Likewise.
1211
38ffa828
JM
12122011-03-04 Jason Merrill <jason@redhat.com>
1213
ad00b8db
JM
1214 PR c++/47971
1215 * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
1216 (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
1217
38ffa828
JM
1218 PR c++/46220
1219 * search.c (check_final_overrider): Allow pointer to same incomplete
1220 class type with different cv-quals.
1221
5c62e661
PC
12222011-03-03 Paolo Carlini <paolo.carlini@oracle.com>
1223
1224 PR c++/47974
1225 * pt.c (tsubst_template_args): Check argument t for error_mark_node.
1226
ff4bfb10
JM
12272011-03-03 Jason Merrill <jason@redhat.com>
1228
1229 PR c++/47950
1230 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
1231
262a7d6b
JM
12322011-03-02 Jason Merrill <jason@redhat.com>
1233
79d3d3f4
JM
1234 PR c++/47950
1235 * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
1236
262a7d6b
JM
1237 PR c++/47774
1238 * tree.c (build_vec_init_elt): Split out from...
1239 (build_vec_init_expr): ...here.
1240 (diagnose_non_constexpr_vec_init): New fn.
1241 * semantics.c (potential_constant_expression_1): Use it.
1242 * cp-tree.h: Declare it.
1243
faa9e9bf
JM
12442011-03-01 Jason Merrill <jason@redhat.com>
1245
f8221c67
JM
1246 PR c++/46159
1247 * parser.c (cp_parser_primary_expression): Don't warn about a
1248 failed tentative parse.
1249
c6f54c7a
JM
1250 PR c++/47200
1251 * semantics.c (cxx_bind_parameters_in_call): Don't call
1252 adjust_temp_type on non-constant args.
1253
8d4bcc35
JM
1254 PR c++/47851
1255 * call.c (standard_conversion): Provide requested cv-quals on
1256 class rvalue conversion.
1257
faa9e9bf
JM
1258 PR c++/46282
1259 * decl2.c (grokbitfield): Handle type-dependent width.
1260
2c1fb3ee
JM
12612011-02-28 Jason Merrill <jason@redhat.com>
1262
1263 PR c++/47873
1264 * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
1265 after checking for a non-thunk.
1266
acfd3fff
JM
12672011-02-26 Jason Merrill <jason@redhat.com>
1268
e7dc5734
JM
1269 PR c++/47904
1270 * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
1271 * pt.c (iterative_hash_template_arg): And hash it.
1272
acfd3fff
JM
1273 PR c++/47897
1274 * semantics.c (non_const_var_error): Split out from...
1275 (cxx_eval_constant_expression): ...here.
1276 (potential_constant_expression_1) [VAR_DECL]: Use it.
1277 Allow dependent variables.
1278
4be5e5b1
JM
12792011-02-24 Jason Merrill <jason@redhat.com>
1280
1281 * parser.c (cp_parser_constant_expression): Set
1282 non_integral_constant_expression correctly for C++0x too.
1283 (cp_parser_static_assert): Allow non-constant expression.
1284 (cp_parser_direct_declarator): Expect non_constant_p to be set
1285 properly for C++0x.
1286 * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
1287 * semantics.c (maybe_constant_value): Check type_unknown_p too.
1288 (potential_rvalue_constant_expression): New.
1289 (require_potential_rvalue_constant_expression): New.
1290
67e18edb
JM
12912011-02-23 Jason Merrill <jason@redhat.com>
1292
1293 * cp-tree.h (DECL_PARM_LEVEL): New.
1294 (struct lang_decl_parm): Add level field.
1295 * name-lookup.c (function_parm_depth): New fn.
1296 * name-lookup.h: Declare it.
1297 * parser.c (cp_parser_parameter_declaration_list): Use it.
1298 * mangle.c (struct globals): Add parm_depth field.
1299 (write_bare_function_type): Adjust it.
1300 (write_expression): Include the level delta in PARM_DECL mangling
1301 for abi >= 6.
1302
1303 * semantics.c (finish_decltype_type): Remove shortcut for decltype
1304 of id-expression.
1305 * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
1306
9113b9fb
NF
13072011-02-23 Nathan Froyd <froydnj@codesourcery.com>
1308
1309 PR c++/46868
1310 * parser.c (cp_parser_class_specifier): Require a closing brace
1311 to attempt error recovery.
1312
8d422e63
JJ
13132011-02-23 Jakub Jelinek <jakub@redhat.com>
1314
1315 PR c++/47833
1316 * pt.c (struct pending_template): Add chain_next GTY option.
1317 * decl.c (struct named_label_use_entry): Likewise.
1318
a26e0b81
PC
13192011-02-22 Paolo Carlini <paolo.carlini@oracle.com>
1320
1321 PR c++/47242
1322 * semantics.c (build_lambda_object): Bail out if a field is
1323 error_mark_node.
1324
ca2409f9
DS
13252011-02-22 Dodji Seketeli <dodji@redhat.com>
1326
1327 PR c++/47666
1328 * class.c (dfs_declare_virt_assop_and_dtor)
1329 (declare_virt_assop_and_dtor): New static functions.
1330 (add_implicitly_declared_members): Use
1331 declare_virt_assop_and_dtor.
1332
9931a2bf
JM
13332011-02-21 Jason Merrill <jason@redhat.com>
1334
1335 PR c++/47207
1336 * decl2.c (decl_constant_var_p): A constexpr var needs an
1337 initializer to be constant.
1338 * semantics.c (cxx_eval_constant_expression): Complain about
1339 constexpr var used in its own initializer.
1340 * call.c (set_up_extended_ref_temp): Set
1341 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
1342
525c617d
JM
13432011-02-20 Jason Merrill <jason@redhat.com>
1344
c62f4cd9
JM
1345 PR c++/47199
1346 * semantics.c (cxx_eval_call_expression): Call
1347 cxx_eval_constant_expression in trivial shortcut.
1348
086bb4b9
JM
1349 PR c++/46831
1350 * call.c (convert_class_to_reference): Don't try to set up a
1351 second conv sequence for non-viable candidates.
1352
06be4922
JM
1353 PR c++/47703
1354 * error.c (location_of): Handle non-tagged types.
1355
525c617d
JM
1356 PR c++/46472
1357 * method.c (process_subob_fn): Instantiate constexpr templates.
1358 * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
1359
869b0af5
DS
13602011-02-20 Dodji Seketeli <dodji@redhat.com>
1361
1362 PR c++/46394
1363 * pt.c (tsubst_pack_expansion): do not use
1364 cp_tree_equal/same_type_p to detect an expansion of a parameter
1365 pack.
1366
06a85dd3
JM
13672011-02-19 Jason Merrill <jason@redhat.com>
1368
1369 PR c++/47503
1370 * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
1371
1496e7d6
PC
13722011-02-18 Paolo Carlini <paolo.carlini@oracle.com>
1373
1374 PR c++/47795
1375 * semantics.c (finish_non_static_data_member): Early return if
1376 object is error_mark_node.
1377
7f7d4b12
DS
13782011-02-18 Dodji Seketeli <dodji@redhat.com>
1379
1380 PR c++/47208
1381 * pt.c (do_auto_deduction): Do not mention error_mark_node in
1382 diagnostics.
1383 * semantics.c (finish_id_expression): Do not pass erroneous decl
1384 to decl_constant_var_p.
1385
e3ae330d
JJ
13862011-02-17 Jakub Jelinek <jakub@redhat.com>
1387
1388 PR c++/47783
1389 * cvt.c (convert_from_reference): Call mark_exp_read.
1390
1770aeed
DS
13912011-02-11 Dodji Seketeli <dodji@redhat.com>
1392
1393 PR c++/47172
1394 * pt.c (finish_call_expr): Consider a call expression that has a
1395 dependent "this" pointer as being dependent. Add comments.
1396 (dependent_type_p, type_dependent_expression_p): Update comments.
1397
ebcb4bc3
DS
13982011-02-16 Dodji Seketeli <dodji@redhat.com>
1399
1400 PR c++/47326
1401 * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
1402 expansion arguments are not evaluated.
1403
4e3c0a15
JJ
14042011-02-16 Jakub Jelinek <jakub@redhat.com>
1405
1406 PR c++/47704
1407 * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
1408 instead of TYPE_LANG_FLAG_3.
1409 * pt.c (lookup_template_class): Copy over
1410 ENUM_FIXED_UNDERLYING_TYPE_P.
1411
503c8e86
JM
14122011-02-15 Jason Merrill <jason@redhat.com>
1413
1414 PR c++/46807
1415 * method.c (synthesized_method_walk): Always exit early for
1416 trivial fn in C++98 mode.
1417
c9e71b36
JM
14182011-02-14 Jason Merrill <jason@redhat.com>
1419
1420 PR c++/47482
1421 * parser.c (cp_parser_enumerator_definition): Call
1422 fold_non_dependent_expr.
1423
5b883ca6
JM
14242011-02-09 Jason Merrill <jason@redhat.com>
1425
be771f25
JM
1426 * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
1427 * semantics.c (finish_fname): Only return the name if we're in
1428 a function.
1429
c51dc544
JM
1430 * decl.c (build_enumerator): Don't perform integral promotions on
1431 non-integral constants.
1432
cb8384a3
JM
1433 * cvt.c (convert_to_void): Handle null op1.
1434
69f36ba6
JM
1435 * class.c (type_has_constexpr_default_constructor): Make sure the
1436 caller stripped an enclosing array.
1437 * init.c (perform_member_init): Strip arrays before calling it.
1438
5b883ca6
JM
1439 PR c++/47511
1440 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
1441
25aea4e9
DS
14422011-02-03 Dodji Seketeli <dodji@redhat.com>
1443
1444 PR c++/47398
1445 * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
1446 template parameters in account.
1447
ba9e6dd5
NF
14482011-02-03 Nathan Froyd <froydnj@codesourcery.com>
1449
1450 PR c++/46890
1451 * parser.c (cp_parser_class_specifier): Fix setting of
1452 want_semicolon.
1453
60d237af
JJ
14542011-01-31 Jakub Jelinek <jakub@redhat.com>
1455
1456 PR c++/47416
1457 * semantics.c (build_data_member_initialization): Handle
1458 STATEMENT_LIST always instead of just for CLEANUP_BODY.
1459
c6092243
RO
14602011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1461
1462 * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
1463 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
1464
bc44baad
DS
14652011-01-29 Dodji Seketeli <dodji@redhat.com>
1466
1467 PR c++/47311
1468 * cp-tree.h (fixup_template_parms): Declare.
1469 * pt.c (end_template_parm_list): Do not fixup template parms here.
1470 (fixup_template_parms): Remove static. Fix typo in the
1471 comments. Remove useless code statement.
1472 (fixup_template_parm): For a template template parameter, fixup
1473 its attributes before fixing up its type.
1474 * parser.c
1475 (cp_parser_template_declaration_after_export): After parsing
1476 template parameters fixup their types.
1477
81cce6f6
JJ
14782011-01-26 Jakub Jelinek <jakub@redhat.com>
1479
1480 PR c++/47476
1481 * semantics.c (potential_constant_expression_1): Handle
1482 TRUTH_XOR_EXPR.
1483
47ea1edf
DK
14842011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
1485
d4dba752 1486 PR c++/43601
47ea1edf
DK
1487 * semantics.c (expand_or_defer_fn_1): Handle it.
1488 * decl2.c (decl_needed_p): Likewise.
1489
62f9aedc
JM
14902011-01-21 Jason Merrill <jason@redhat.com>
1491
1492 PR c++/47041
1493 * semantics.c (build_constexpr_constructor_member_initializers):
1494 Handle trivial copy.
1495
95cc031f
JJ
14962011-01-21 Jakub Jelinek <jakub@redhat.com>
1497
1498 PR c++/47388
1499 * semantics.c (begin_for_stmt): If -fno-for-scope, don't
1500 assume init must be NULL if scope is NULL.
1501 (begin_range_for_stmt): Likewise.
1502
d6ed1c89
JM
15032011-01-21 Jason Merrill <jason@redhat.com>
1504
0eb35d46
JM
1505 PR c++/46552
1506 * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
1507
d6ed1c89
JM
1508 PR c++/46977
1509 * semantics.c (potential_constant_expression_1): Split out from
1510 potential_constant_expression. Add want_rval parm. Handle
1511 template expression forms. Don't enforce restriction on address
1512 of automatic variable here. Add a couple of diagnostics that
1513 had been missing.
1514 (require_potential_constant_expression): New entry point.
1515 (build_data_member_initialization, register_constexpr_fundef): Adjust.
1516 (maybe_constant_value): Check potential_constant_expression.
1517 * pt.c (fold_non_dependent_expr_sfinae): Likewise.
1518 * tree.c (build_vec_init_expr): Adjust.
1519
cfea9968
JJ
15202011-01-19 Jakub Jelinek <jakub@redhat.com>
1521
1522 PR c++/47303
1523 * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
1524 or DECL_EXTERNAL.
1525
d79b88a1
JM
15262011-01-17 Jason Merrill <jason@redhat.com>
1527
1528 PR c++/47067
1529 * semantics.c (base_field_constructor_elt): New fn.
1530 (cxx_eval_bare_aggregate): Use it.
1531 (build_data_member_initialization): Leave COMPONENT_REF for
1532 vfield inits.
1533
86070dcc
RRC
15342011-01-14 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1535
1536 * parser.c (cp_parser_range_for): Remove the "unused variable" warning
1537 workaround.
1538
620437f2
GF
15392011-01-15 Giovanni Funchal <gafunchal@gmail.com>
1540 Jonathan Wakely <jwakely.gcc@gmail.com>
1541
1542 PR c++/33558
1543 * decl.c (grokdeclarator): Reject mutable reference members.
1544
70f961a5
JM
15452011-01-14 Jason Merrill <jason@redhat.com>
1546
aeb459fb
JM
1547 PR c++/47289
1548 * pt.c (coerce_template_parms): Fix error recovery.
1549
35385f99
JM
1550 PR c++/46903
1551 * typeck2.c (check_narrowing): Only check arithmetic types.
1552
70f961a5
JM
1553 PR c++/46688
1554 * tree.c (build_vec_init_expr): Handle flexible array
1555 properly.
1556
a2b63a20
KT
15572011-01-13 Kai Tietz <kai.tietz@onevision.com>
1558
1559 PR c++/47213
1560 * cp-tree.h (CLASSTYPE_VISIBILITY): Use
1561 TYPE_MAIN_DECL instead of TYPE_NAME.
1562 (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
1563 * decl2.c (determine_visibility): Add check
1564 of CLASS_TYPE_P for underlying_type.
1565
3f43ac31
RRC
15662011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1567
1568 * cp-tree.h (begin_for_scope): New prototype.
1569 (begin_for_stmt): Update prototype.
1570 (begin_range_for_stmt): Update prototype.
1571 * init.c (build_vec_init): Update call to begin_for_stmt.
1572 * parser.c (cp_parser_for): New.
1573 (cp_parser_c_for): Add three new parameters.
1574 (cp_parser_range_for): Likewise. Most parsing code removed.
1575 (cp_parser_iteration_statement): Call cp_parser_for instead of
1576 cp_parser_c_for and cp_parser_range_for.
1577 (cp_parser_for_init_statement): Add new parameter and return type.
1578 (cp_parser_block_declaration): Update call to
1579 cp_parser_simple_declaration.
1580 (cp_parser_simple_declaration): Add new parameter.
1581 Update call to cp_parser_init_declarator.
1582 (cp_parser_init_declarator): Add new parameter.
1583 * pt.c (tsubst_expr): Update call to begin_for_stmt.
1584 * semantics.c (begin_for_scope): New.
1585 (begin_for_stmt): Add two new parameters.
1586 (begin_range_for_stmt): Likewise.
1587
d853ee42
NP
15882011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
1589
1590 * parser.c (cp_parser_objc_at_property_declaration): Improved
1591 error message.
1592
f8fb7295
DS
15932011-01-11 Dodji Seketeli <dodji@redhat.com>
1594
1595 PR debug/46955
1596 * cp-lang.c (get_template_innermost_arguments_folded)
1597 (get_template_argument_pack_elems_folded)
1598 (template_arg_needs_folding, fold_cplus_constants): New static
1599 functions.
1600 (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
1601 get_template_innermost_arguments_folded.
1602 (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
1603 get_template_argument_pack_elems_folded.
1604
41d04a8d
JM
16052011-01-11 Jason Merrill <jason@redhat.com>
1606
a67e7daa
JM
1607 PR c++/46658
1608 * init.c (build_new_1): Handle value-init in templates differently.
1609
41d04a8d
JM
1610 PR c++/45520
1611 * tree.c (maybe_dummy_object): Check current_class_ref against
1612 context, not current_class_type.
1613
046608a3
NP
16142011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
1615
1616 PR objc/47078
1617 * parser.c (cp_parser_objc_typename): If the type is unknown, for
1618 error recovery purposes behave as if it was not specified so that
1619 the default type is used.
1620
a14e5163
JJ
16212011-01-07 Jakub Jelinek <jakub@redhat.com>
1622
1623 PR c++/47022
1624 * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
1625 for the second build_x_va_arg argument.
1626
7bd11157
TT
16272011-01-05 Tom Tromey <tromey@redhat.com>
1628
1629 * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
1630 (lvalue_or_else): Likewise.
1631
220e83ca
KT
16322011-01-01 Kai Tietz <kai.tietz@onevision.com>
1633
1634 PR target/38662
1635 * tree.c (cxx_type_hash_eq):
1636 Allow METHOD_TYPE, too.
1637
ad41bd84 1638\f
797103eb 1639Copyright (C) 2011 Free Software Foundation, Inc.
ad41bd84
JM
1640
1641Copying and distribution of this file, with or without modification,
1642are permitted in any medium without royalty provided the copyright
1643notice and this notice are preserved.