re PR c++/50454 (Unexpected problems with -pedantic / -pedantic-errors and __int128...
[gcc.git] / gcc / cp / ChangeLog
1 2011-09-21 Paolo Carlini <paolo.carlini@oracle.com>
2
3 PR c++/50454
4 * decl.c (grokdeclarator): Consistently handle both __int128
5 and unsigned __int128 with -pedantic; suppress diagnostic in
6 system headers.
7
8 2011-09-20 Jason Merrill <jason@redhat.com>
9
10 * cp-tree.h (DECL_TEMPLOID_INSTANTIATION): New.
11 (DECL_GENERATED_P): New.
12 * class.c (finalize_literal_type_property): Use them.
13 * semantics.c (is_instantiation_of_constexpr): Likewise.
14 (register_constexpr_fundef): Likewise.
15
16 * call.c (convert_default_arg): Avoid redundant copy.
17 * tree.c (bot_manip): Copy everything.
18
19 2011-09-20 Roberto Agostino Vitillo <ravitillo@lbl.gov>
20
21 * call.c (build_new_method_call_1): Use non-virtual lookup
22 for final virtual functions.
23
24 2011-09-16 Jason Merrill <jason@redhat.com>
25
26 PR c++/50424
27 * call.c (set_flags_from_callee): Split out from build_call_a.
28 * cp-tree.h: Declare it.
29 * tree.c (bot_manip): Call it.
30
31 2011-09-15 Jason Merrill <jason@redhat.com>
32
33 PR c++/50365
34 * parser.c (cp_parser_late_return_type_opt): Check quals parameter
35 for clearing current_class_ptr, too.
36
37 2011-09-14 Diego Novillo <dnovillo@google.com>
38
39 * name-lookup.c (lookup_arg_dependent): Use conditional
40 timevars.
41 * decl.c (xref_tag): Likewise.
42
43 2011-09-14 Paolo Carlini <paolo.carlini@oracle.com>
44
45 PR c++/50391
46 * pt.c (regenerate_decl_from_template): Don't pass an error_mark_node
47 to build_exception_variant.
48
49 2011-09-13 Dodji Seketeli <dodji@redhat.com>
50
51 PR c++/48320
52 * pt.c (template_parameter_pack_p): Support TEMPLATE_PARM_INDEX
53 nodes. Add a comment.
54 (arg_from_parm_pack_p): New static function, factorized out from
55 tsubst_pack_expansion and extended to support non-type parameter
56 packs represented with TEMPLATE_PARM_INDEX nodes.
57 (tsubst_pack_expansion): Use arg_from_parm_pack_p.
58
59 2011-09-12 Jason Merrill <jason@redhat.com>
60
61 * pt.c (type_unification_real): Fix handling of DEDUCE_CONV
62 with no deducible template parameters.
63 * call.c (rejection_reason_code): Add rr_template_conversion.
64 (print_z_candidate): Handle it.
65 (template_conversion_rejection): New.
66 (build_user_type_conversion_1): Use it.
67
68 * call.c (merge_conversion_sequences): Set bad_p and user_conv_p
69 on all of the second conversion sequence.
70 (build_user_type_conversion_1): Set bad_p on the ck_user conv.
71 (convert_like_real): Handle bad ck_ref_bind with user_conv_p in the
72 first section. Fix loop logic.
73 (initialize_reference): Call convert_like for diagnostics when
74 we have a (bad) conversion.
75
76 * call.c (convert_class_to_reference)
77 (convert_class_to_reference_1): Remove.
78 (reference_binding): Use build_user_type_conversion_1 instead.
79
80 * call.c (initialize_reference): Add flags parm.
81 * decl.c (grok_reference_init): Likewise.
82 (check_initializer): Pass it.
83 * typeck.c (convert_for_initialization): Likewise.
84 * cp-tree.h: Adjust.
85
86 * cp-tree.h (LOOKUP_NO_RVAL_BIND): New.
87 * call.c (conditional_conversion): Use it.
88 (reference_binding): Fix handling of xvalues.
89
90 2011-09-09 Jason Merrill <jason@redhat.com>
91
92 * call.c (implicit_conversion): Check BRACE_ENCLOSED_INITIALIZER_P
93 before forcing instantiation.
94
95 2011-09-08 Paolo Carlini <paolo.carlini@oracle.com>
96
97 PR c++/50324
98 * typeck2.c (digest_init_r): Call complete_type_or_maybe_complain
99 instead of complete_type_or_else.
100
101 2011-09-08 Dodji Seketeli <dodji@redhat.com>
102
103 PR c++/33255 - Support -Wunused-local-typedefs warning
104 * name-lookup.c (pushdecl_maybe_friend_1): Use the new
105 record_locally_defined_typedef.
106 * decl.c (finish_function): Use the new
107 maybe_warn_unused_local_typedefs.
108 (grokfield): Use the new record_locally_defined_typedef.
109 * parser.c (lookup_name): Use the new maybe_record_typedef_use.
110
111 2011-09-07 Paolo Carlini <paolo.carlini@oracle.com>
112
113 PR c++/50309
114 * decl.c (grokdeclarator): Check u.function.exception_specification
115 for error_mark_node.
116
117 2011-09-07 Jason Merrill <jason@redhat.com>
118
119 PR c++/50298
120 * parser.c (cp_parser_member_declaration): Don't require a constant
121 rvalue here in C++0x.
122
123 * pt.c (type_unification_real): Correct complain arg for tsubsting
124 default template args.
125
126 * pt.c (tsubst_aggr_type): Check TYPE_P before tsubsting.
127
128 2011-09-06 Jason Merrill <jason@redhat.com>
129
130 PR c++/50296
131 * semantics.c (register_constexpr_fundef): Call is_valid_constexpr_fn.
132 (cx_check_missing_mem_inits): Handle bases and empty trivial members.
133 (validate_constexpr_fundecl): Remove.
134 * decl.c (start_preparsed_function): Don't call it.
135 * cp-tree.h: Don't declare it.
136
137 2011-09-04 Jason Merrill <jason@redhat.com>
138
139 PR c++/49267
140 * call.c (reference_binding): Don't set is_lvalue for an rvalue
141 reference rfrom.
142
143 PR c++/49267
144 PR c++/49458
145 DR 1328
146 * call.c (reference_binding): Set rvaluedness_matches_p properly
147 for reference to function conversion ops.
148 (compare_ics): Adjust.
149
150 * class.c (trivial_default_constructor_is_constexpr): Rename from
151 synthesized_default_constructor_is_constexpr.
152 (type_has_constexpr_default_constructor): Adjust.
153 (add_implicitly_declared_members): Call it instead.
154 (explain_non_literal_class): Explain about non-constexpr default ctor.
155 * cp-tree.h: Adjust.
156 * method.c (synthesized_method_walk): Adjust.
157 * semantics.c (explain_invalid_constexpr_fn): Handle defaulted
158 functions, too.
159
160 PR c++/50248
161 Core 1358
162 * init.c (perform_member_init): Don't diagnose missing inits here.
163 (emit_mem_initializers): Or here.
164 * method.c (process_subob_fn): Don't instantiate constexpr ctors.
165 * semantics.c (cx_check_missing_mem_inits): New.
166 (explain_invalid_constexpr_fn): Call it.
167 (register_constexpr_fundef): Likewise. Leave
168 DECL_DECLARED_CONSTEXPR_P set when the body is unsuitable.
169 (cxx_eval_call_expression): Adjust diagnostics.
170 (cxx_eval_constant_expression): Catch use of 'this' in a constructor.
171
172 2011-08-30 Jason Merrill <jason@redhat.com>
173
174 PR c++/50084
175 * cp-tree.h (cp_decl_specifier_seq): Rename user_defined_type_p
176 to type_definition_p.
177 * parser.c (cp_parser_set_decl_spec_type): Likewise.
178 * decl.c (grokdeclarator): Check it.
179
180 PR c++/50089
181 * semantics.c (finish_id_expression): Use
182 current_nonlambda_class_type for qualified-ids.
183
184 PR c++/50114
185 * decl.c (poplevel): Disable for scope compatibility hack
186 in C++11 mode.
187
188 PR c++/50220
189 * semantics.c (add_capture): Call complete_type for copy.
190
191 PR c++/50234
192 * semantics.c (cxx_eval_component_reference): Handle
193 value-initialization for omitted initializers.
194
195 2011-08-29 Jason Merrill <jason@redhat.com>
196
197 PR c++/50224
198 * semantics.c (finish_id_expression): Mark captured variables used.
199
200 2011-08-29 Jakub Jelinek <jakub@redhat.com>
201 Jason Merrill <jason@redhat.com>
202
203 PR c++/50207
204 * class.c (finish_struct_1): Complain if the first field is
205 artificial.
206
207 2011-08-29 Jason Merrill <jason@redhat.com>
208
209 PR c++/50209
210 Core DR 994
211 * parser.c (cp_parser_default_argument): Use
212 cp_parser_initializer_clause.
213 (cp_parser_late_parsing_default_args): Likewise.
214
215 2011-08-26 Jason Merrill <jason@redhat.com>
216
217 Core DR 342
218 PR c++/48582
219 * pt.c (check_valid_ptrmem_cst_expr): A null member pointer value
220 is valid in C++11.
221 (convert_nontype_argument): Likewise. Implicitly convert nullptr
222 and do constant folding.
223 * mangle.c (write_template_arg_literal): Mangle null member
224 pointer values as 0.
225 * call.c (null_member_pointer_value_p): New.
226 * cp-tree.h: Declare it.
227
228 2011-08-25 Jason Merrill <jason@redhat.com>
229
230 * call.c (convert_like_real): Remove redundant complain checks.
231
232 PR c++/50157
233 * call.c (convert_like_real): Exit early if bad and !tf_error.
234
235 2011-08-23 Jason Merrill <jason@redhat.com>
236
237 * typeck2.c (build_functional_cast): Don't try to avoid calling
238 build_value_init.
239 * pt.c (instantiate_class_template_1): Don't copy TYPE_HAS_* flags.
240
241 2011-08-23 Jason Merrill <jason@redhat.com>
242
243 PR c++/49045
244 Core 1321
245 * tree.c (dependent_name): New.
246 (cp_tree_equal): Two calls with the same dependent name are
247 equivalent even if the overload sets are different.
248
249 2011-08-23 Jason Merrill <jason@redhat.com>
250
251 * tree.c (build_target_expr): Set TREE_CONSTANT on
252 literal TARGET_EXPR if the value is constant.
253 * typeck2.c (build_functional_cast): Don't set it here.
254
255 2011-08-23 Jason Merrill <jason@redhat.com>
256
257 Core 903 (partial)
258 * call.c (null_ptr_cst_p): Only 0 qualifies in C++11.
259
260 2011-08-23 Jason Merrill <jason@redhat.com>
261
262 Core 975
263 * decl.c (cxx_init_decl_processing): Initialize
264 dependent_lambda_return_type_node.
265 * cp-tree.h (cp_tree_index): Add CPTI_DEPENDENT_LAMBDA_RETURN_TYPE.
266 (dependent_lambda_return_type_node): Define.
267 (DECLTYPE_FOR_LAMBDA_RETURN): Remove.
268 * semantics.c (lambda_return_type): Handle overloaded function.
269 Use dependent_lambda_return_type_node instead of
270 DECLTYPE_FOR_LAMBDA_RETURN.
271 (apply_lambda_return_type): Don't check dependent_type_p.
272 * pt.c (tsubst_copy_and_build): Handle lambda return type deduction.
273 (instantiate_class_template_1): Likewise.
274 (tsubst): Don't use DECLTYPE_FOR_LAMBDA_RETURN.
275 * mangle.c (write_type): Likewise.
276 * typeck.c (structural_comptypes): Likewise.
277 (check_return_expr): Handle dependent_lambda_return_type_node.
278
279 2011-08-23 Jason Merrill <jason@redhat.com>
280
281 PR c++/50024
282 * semantics.c (maybe_constant_value): Don't try to fold { }.
283 * pt.c (build_non_dependent_expr): Don't wrap { }.
284 * init.c (build_value_init): Allow scalar value-init in templates.
285
286 2011-08-23 Jason Merrill <jason@redhat.com>
287
288 * semantics.c (potential_constant_expression_1): Allow 'this'.
289
290 2011-08-23 Jakub Jelinek <jakub@redhat.com>
291
292 PR c++/50158
293 * typeck.c (cp_build_modify_expr): Call mark_rvalue_use on rhs
294 if it has side-effects and needs to be preevaluated.
295
296 2011-08-23 Siddhesh Poyarekar <siddhesh.poyarekar@gmail.com>
297
298 PR c++/50055
299 * except.c (begin_eh_spec_block): Build EH_SPEC block on the
300 same line as the function.
301
302 2011-08-23 Jakub Jelinek <jakub@redhat.com>
303
304 PR c++/46862
305 * class.c (finish_struct_1): If TYPE_TRANSPARENT_AGGR is set on a type
306 which doesn't have any fields, clear it and diagnose.
307
308 2011-08-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
309 Marc Glisse <marc.glisse@normalesup.org>
310
311 PR libstdc++-v3/1773
312 * mangle.c (decl_mangling_context): Call
313 targetm.cxx.decl_mangling_context.
314 (write_unscoped_name): Use decl_mangling_context.
315
316 2011-08-18 Dodji Seketeli <dodji@redhat.com>
317
318 PR c++/45625
319 * pt.c (parameter_of_template_p): Handle comparison with DECLs of
320 template parameters as created by process_template_parm.
321
322 2011-08-16 Jason Merrill <jason@redhat.com>
323
324 PR c++/50086
325 * pt.c (unify_pack_expansion): Correct overloaded unification
326 logic.
327
328 * pt.c (instantiate_class_template_1): If DECL_PRESERVE_P is set
329 on a member function or static data member, call mark_used.
330
331 PR c++/50054
332 * typeck2.c (cxx_incomplete_type_diagnostic): Handle
333 init_list_type_node.
334
335 2011-08-13 Jason Merrill <jason@redhat.com>
336
337 PR c++/50075
338 * name-lookup.c (local_bindings_p): New.
339 * name-lookup.h: Declare it.
340 * lex.c (unqualified_name_lookup_error): Use it.
341
342 PR c++/50059
343 * error.c (dump_expr): Handle MODIFY_EXPR properly.
344
345 * decl.c (grok_reference_init): Handle constexpr here.
346 * call.c (initialize_reference): Not here.
347
348 2011-08-12 David Li <davidxl@google.com>
349
350 * class.c (update_vtable_entry_for_fn): Set
351 LOST_PRIMARY bit properly.
352
353 2011-08-12 Jason Merrill <jason@redhat.com>
354
355 PR c++/50034
356 * call.c (convert_arg_to_ellipsis): force_rvalue only in
357 potentially evaluated context.
358
359 2011-08-12 Richard Guenther <rguenther@suse.de>
360
361 * call.c (build_over_call): Instead of memcpy use an
362 assignment of two MEM_REFs.
363
364 2011-08-11 Romain Geissler <romain.geissler@gmail.com>
365 Brian Hackett <bhackett1024@gmail.com>
366
367 * decl.c (cp_finish_decl): Invoke callbacks on finish_decl event.
368
369 2011-08-10 Richard Guenther <rguenther@suse.de>
370
371 * call.c (build_over_call): Call memcpy unconditionally.
372
373 2011-08-08 Jason Merrill <jason@redhat.com>
374
375 PR c++/50020
376 * semantics.c (finish_call_expr): Don't look at 'this' if we
377 had an explicit object argument.
378
379 PR c++/50011
380 * typeck2.c (check_narrowing): Fix integer logic.
381
382 2011-08-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
383
384 * Make-lang.in (g++$(exeext)): Add $(EXTRA_GCC_LIBS).
385
386 2011-08-05 Jason Merrill <jason@redhat.com>
387
388 PR c++/48993
389 * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Sorry
390 on 'this' in a constructor.
391
392 PR c++/49921
393 * semantics.c (finish_decltype_type): Call invalid_nonstatic_memfn_p.
394
395 PR c++/49669
396 * init.c (perform_member_init): Handle invalid array initializer.
397
398 PR c++/49988
399 * semantics.c (cxx_eval_array_reference): Handle failure to
400 reduce the array operand to something we can work with.
401
402 2011-08-05 Gabriel Charette <gchare@google.com>
403
404 * decl.c (finish_function): Remove unecessary line 0 hack.
405
406 2011-08-05 Jason Merrill <jason@redhat.com>
407
408 PR c++/47453
409 * typeck.c (build_x_compound_expr_from_list): Also complain
410 about ({...}).
411
412 PR c++/49812
413 * typeck.c (cp_build_unary_op) [POSTINCREMENT_EXPR]: Strip cv-quals.
414
415 PR c++/49983
416 * parser.c (cp_parser_range_for): Only do auto deduction in
417 template if the range is non-dependent.
418
419 * init.c (perform_member_init): Always build_aggr_init
420 for a class member with an explicit mem-initializer.
421
422 * pt.c (unify) [TEMPLATE_TYPE_PARM]: Allow VLA for C++0x 'auto'.
423
424 2011-08-04 Jakub Jelinek <jakub@redhat.com>
425
426 PR middle-end/49905
427 * decl.c (cxx_init_decl_processing): Add alloc_size (1) attribute
428 for operator new and operator new []. Call init_attributes.
429
430 2011-08-02 Jason Merrill <jason@redhat.com>
431
432 PR c++/43886
433 * parser.c (cp_parser_lambda_body): Clear local_variables_forbidden_p.
434
435 PR c++/49577
436 * typeck2.c (check_narrowing): Check unsigned mismatch.
437 * semantics.c (finish_compound_literal): check_narrowing.
438
439 PR c++/49593
440 * pt.c (find_parameter_packs_r): Handle CONSTRUCTOR.
441
442 PR c++/49803
443 * init.c (sort_mem_initializers): Initialize uses_unions_p here.
444 (build_field_list): Not here.
445
446 PR c++/49834
447 * parser.c (build_range_temp): Split out from...
448 (cp_convert_range_for): ...here.
449 (do_range_for_auto_deduction): New.
450 (cp_parser_range_for): Use it.
451
452 2011-08-02 Jakub Jelinek <jakub@redhat.com>
453
454 * cp-tree.h (finish_omp_atomic): Adjust prototype.
455 (cxx_omp_const_qual_no_mutable): New prototype.
456 (finish_omp_taskyield): New prototype.
457 * parser.c (cp_parser_omp_atomic): (cp_parser_omp_atomic): Handle
458 parsing OpenMP 3.1 atomics. Adjust finish_omp_atomic caller.
459 (cp_parser_omp_clause_name): Handle final and mergeable clauses.
460 (cp_parser_omp_clause_final, cp_parser_omp_clause_mergeable): New
461 functions.
462 (cp_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
463 and PRAGMA_OMP_CLAUSE_MERGEABLE.
464 (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
465 (cp_parser_omp_taskyield): New function.
466 (cp_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
467 (cp_parser_omp_clause_reduction): Handle min and max.
468 * pt.c (tsubst_expr) <case OMP_ATOMIC>: Handle OpenMP 3.1 atomics.
469 (tsubst_omp_clauses): Handle OMP_CLAUSE_FINAL and
470 OMP_CLAUSE_MERGEABLE.
471 * semantics.c (finish_omp_atomic): Add OPCODE, V, LHS1 and RHS1
472 arguments. Handle OpenMP 3.1 atomics. Adjust c_finish_omp_atomic
473 caller.
474 (finish_omp_clauses): Don't complain about const qualified
475 predetermined vars and static data members in firstprivate clause.
476 Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE. Handle MIN_EXPR
477 and MAX_EXPR.
478 (finish_omp_taskyield): New function.
479 * cp-gimplify.c (cxx_omp_const_qual_no_mutable): New function.
480 (cxx_omp_predetermined_sharing): Use it.
481
482 2011-08-02 Jason Merrill <jason@redhat.com>
483
484 * call.c (build_call_a): Also check at_function_scope_p.
485
486 2011-08-01 Jason Merrill <jason@redhat.com>
487
488 PR c++/49932
489 * mangle.c (write_prefix): Handle decltype.
490
491 PR c++/49924
492 * semantics.c (cxx_eval_vec_init_1): Fix logic.
493
494 PR c++/49813
495 * semantics.c (potential_constant_expression_1): Allow any builtin.
496 (morally_constexpr_builtin_function_p): Remove.
497
498 2011-07-29 Jason Merrill <jason@redhat.com>
499
500 PR c++/49867
501 * parser.c (cp_parser_lambda_expression): Also clear in_statement
502 and in_switch_statement_p.
503 (cp_parser_class_specifier): Likewise.
504
505 2011-07-28 Jason Merrill <jason@redhat.com>
506
507 PR c++/49808
508 * pt.c (tsubst) [TEMPLATE_PARM_INDEX]: Call convert_from_reference.
509 (convert_nontype_argument, tsubst_template_arg): Handle its output.
510
511 2011-07-28 Paolo Carlini <paolo.carlini@oracle.com>
512
513 PR c++/49813
514 * semantics.c (potential_constant_expression_1): Handle FMA_EXPR.
515
516 2011-07-27 Jeffrey Yasskin <jyasskin@google.com>
517
518 * pt.c (build_template_decl): Copy the function_decl's
519 source location to the new template_decl.
520
521 2011-07-26 Paolo Carlini <paolo.carlini@oracle.com>
522
523 PR c++/49776
524 * typeck.c (cp_build_modify_expr): Check digest_init return value
525 for error_mark_node.
526
527 2011-07-25 Paolo Carlini <paolo.carlini@oracle.com>
528
529 PR bootstrap/49845
530 * parser.c (cp_parser_perform_range_for_lookup): Always assign *being
531 and *end before returning.
532
533 2011-07-25 Paolo Carlini <paolo.carlini@oracle.com>
534
535 PR c++/49838
536 * parser.c (cp_parser_perform_range_for_lookup): Early return if
537 error_operand_p (range).
538
539 2011-07-23 Jason Merrill <jason@redhat.com>
540
541 PR c++/49823
542 * parser.c (cp_parser_qualifying_entity): Handle templates.
543
544 2011-07-22 Jason Merrill <jason@redhat.com>
545
546 PR c++/49793
547 * typeck2.c (check_narrowing): Downgrade permerror to pedwarn.
548 Make conditional on -Wnarrowing.
549
550 2011-07-22 Ville Voutilainen <ville.voutilainen@gmail.com>
551
552 Warn about the use of final/override in non-c++0x mode, and
553 add __final for non-c++0x mode.
554 * cp-tree.h (cpp0x_warn_str): Add CPP0X_OVERRIDE_CONTROLS.
555 * error.c (maybe_warn_cpp0x): Adjust.
556 * parser.c (cp_parser_virt_specifier_seq_opt): Use it. Add
557 '__final' as a non-c++0x alternative for 'final'.
558
559 2011-07-22 Jason Merrill <jason@redhat.com>
560 Mark Glisse <marc.glisse@normalesup.org>
561
562 PR c++/30112
563 * decl.c (cp_finish_decl): Apply pragma redefine_extname in
564 other namespaces as well.
565 * name-lookup.c (c_linkage_bindings): Define.
566 (lookup_extern_c_fun_in_all_ns): Rename from
567 lookup_extern_c_fun_binding_in_all_ns. Return tree.
568 (pushdecl_maybe_friend_1): Adjust. Copy DECL_ASSEMBLER_NAME.
569
570 2011-07-20 Jason Merrill <jason@redhat.com>
571
572 * parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]=
573 designated initializer syntax.
574 * decl.c (check_array_designated_initializer): Add index parm.
575 (maybe_deduce_size_from_array_init): Pass it.
576 (reshape_init_array_1): Likewise.
577
578 PR c++/6709 (DR 743)
579 PR c++/42603 (DR 950)
580 * parser.c (token_is_decltype, cp_lexer_next_token_is_decltype): New.
581 (cp_parser_nested_name_specifier_opt): Allow decltype.
582 (cp_parser_qualifying_entity): Likewise.
583 (cp_parser_decltype): Replace source tokens with CPP_DECLTYPE.
584 (cp_parser_simple_type_specifier): Handle decltype as scope.
585 (cp_parser_base_specifier): Allow decltype.
586 (cp_parser_base_clause): Don't crash on null base.
587 * parser.h (CPP_KEYWORD, CPP_TEMPLATE_ID): Move to c-common.h.
588 (CPP_NESTED_NAME_SPECIFIER, N_CP_TTYPES): Likewise.
589
590 2011-07-19 Jason Merrill <jason@redhat.com>
591
592 PR c++/49785
593 * pt.c (coerce_template_parms): Handle non-pack after pack.
594
595 2011-07-19 Richard Guenther <rguenther@suse.de>
596
597 * call.c (build_special_member_call): Use fold_build_pointer_plus.
598 * class.c (build_base_path): Likewise.
599 (convert_to_base_statically): Likewise.
600 (dfs_accumulate_vtbl_inits): Likewise.
601 * cp-gimplify.c (cxx_omp_clause_apply_fn): Likewise.
602 * except.c (expand_start_catch_block): Likewise.
603 * init.c (expand_virtual_init): Likewise.
604 (build_new_1): Likewise.
605 (build_vec_delete_1): Likewise.
606 (build_vec_delete): Likewise.
607 * rtti.c (build_headof): Likewise.
608 (tinfo_base_init): Likewise.
609 * typeck.c (get_member_function_from_ptrfunc): Likewise.
610 (cp_build_addr_expr_1): Likewise.
611 * typeck2.c (build_m_component_ref): Likewise.
612
613 2011-07-18 Martin Jambor <mjambor@suse.cz>
614
615 * parser.c (cp_parser_parameter_declaration_list): Initialize
616 parenthesized_p.
617
618 2011-07-16 Jason Merrill <jason@redhat.com>
619
620 * pt.c (tinst_level_tick, last_template_error_tick): Replace with
621 last_error_tinst_level.
622 (push_tinst_level, pop_tinst_level): Adjust.
623 (problematic_instantiation_changed): Adjust.
624 (record_last_problematic_instantiation): Adjust.
625 * error.c (cp_print_error_function): Don't print
626 current_function_decl if we're in a template instantiation context.
627 (print_instantiation_full_context): Always print first line.
628
629 2011-07-16 Nathan Froyd <froydnj@codesourcery.com>
630 Jason Merrill <jason@redhat.com>
631
632 PR c++/45329
633 PR c++/48934
634 * cp-tree.h (fn_type_unification): Add `bool' parameter.
635 * pt.c (enum template_base_result): Define.
636 (unify_success, unify_unknown): Define.
637 (unify_parameter_deduction_failure): Define.
638 (unify_invalid, unify_cv_qual_mismatch, unify_type_mismatch): Define.
639 (unify_parameter_pack_mismatch): Define.
640 (unify_parameter_pack_inconsistent): Define.
641 (unify_ptrmem_cst_mismatch, unify_vla_arg): Define.
642 (unify_expression_unequal, unify_inconsistency): Define.
643 (unify_method_type_error, unify_arity): Likewise.
644 (unify_too_many_parameters, unify_too_few_parameters): Define.
645 (unify_arg_conversion, unify_no_common_base): Define.
646 (unify_illformed_ptrmem_cst_expr): Define.
647 (unify_substitution_failure): Define.
648 (unify_inconsistent_template_template_parameters): Define.
649 (unify_template_deduction_failure): Define.
650 (unify_template_argument_mismatch): Define.
651 (unify_overload_resolution_failure): Define.
652 (comp_template_args_with_info): New function, split out from...
653 (comp_template_args): ...here. Call it.
654 (deduction_tsubst_fntype): Add `complain' parameter'. Pass it
655 to tsubst.
656 (unify): Add `explain_p' parameter. Pass to all relevant calls.
657 Call above status functions when appropriate.
658 (resolve_overloaded_unification, try_one_overload): Likewise.
659 (type_unification, type_unification_real): Likewise.
660 (unify_pack_expansion): Likewise.
661 (get_template_base, try_class_unification): Likewise.
662 (get_bindings, more_specialized_fn): Pass false to unification
663 calls.
664 (get_class_bindings, do_auto_deduction): Likewise.
665 (convert_nontype_argument): Likewise.
666 (fn_type_unification): Likewise. Pass tf_warning_or_error if
667 explain_p.
668 (get_template_base): Add `explain_p' parameter and pass it to
669 try_class_unification. Return an enum template_base_result.
670 * class.c (resolve_address_of_overloaded_function): Pass false to
671 fn_type_unification.
672 * call.c (enum rejection_reason_code): Add new codes.
673 (struct rejection_reason): Add template_unification field.
674 Add template_instantiation field.
675 (template_unification_rejection): Define.
676 (template_unification_error_rejection): Define.
677 (template_instantiation_rejection): Define.
678 (invalid_copy_with_fn_template_rejection): Define.
679 (add_template_candidate): Pass false to unify.
680 Provide more rejection reasons when possible.
681 (print_template_unification_rejection): Define.
682 (print_arity_rejection): Define, split out from...
683 (print_z_candidate): ...here. Add cases for new rejection
684 reasons.
685
686 2011-07-15 Jason Merrill <jason@redhat.com>
687
688 * Make-lang.in (check-g++-strict-gc): New.
689 (cp/except.o): Depend on gt-cp-except.h
690 * except.c: Include gt-cp-except.h.
691 * config-lang.in (gtfiles): Add cp/except.c.
692 * decl2.c (mark_used): Adjust constexpr condition, set
693 function_depth around template instantiation.
694 * parser.c (cp_parser_lambda_body): Set function_depth.
695 * semantics.c (maybe_add_lambda_conv_op): Likewise.
696
697 PR testsuite/49741
698 * Make-lang.in (check-c++0x): Use --extra_opts instead of--tool_opts.
699
700 2011-07-13 Jason Merrill <jason@redhat.com>
701
702 * Make-lang.in (check-c++0x): New.
703
704 2011-07-13 Richard Sandiford <richard.sandiford@linaro.org>
705
706 * typeck2.c (split_nonconstant_init_1): Pass the initializer directly,
707 rather than a pointer to it. Return true if the whole of the value
708 was initialized by the generated statements. Use
709 complete_ctor_at_level_p instead of count_type_elements.
710
711 2011-07-12 Diego Novillo <dnovillo@google.com>
712
713 * name-lookup.h (cp_binding_level): Rename from cxx_scope.
714 Update all users.
715 (struct cp_binding_level): Fix indentation.
716
717 2011-07-11 Jason Merrill <jason@redhat.com>
718
719 PR c++/49672
720 * pt.c (extract_fnparm_pack): Split out from...
721 (make_fnparm_pack): ...here.
722 (instantiate_decl): Handle non-pack parms after a pack.
723 * semantics.c (maybe_add_lambda_conv_op): Don't in a template.
724
725 * decl2.c (decl_constant_var_p): Use decl_maybe_constant_var_p.
726
727 PR c++/44609
728 * cp-tree.h (struct tinst_level): Add errors field.
729 * pt.c (neglectable_inst_p, limit_bad_template_recurson): New.
730 (push_tinst_level): Don't start another decl in that case.
731 (reopen_tinst_level): Adjust errors field.
732 * decl2.c (cp_write_global_declarations): Don't complain about
733 undefined inline if its template was defined.
734 * mangle.c (mangle_decl_string): Handle failure from push_tinst_level.
735
736 2011-07-10 Jason Merrill <jason@redhat.com>
737
738 PR c++/49691
739 * parser.c (cp_parser_late_return_type_opt): Check quals parameter
740 rather than current_class_type to determine whether to set 'this'.
741 (cp_parser_direct_declarator): Pass -1 to quals if member_p is false.
742 (cp_parser_init_declarator): Pass down member_p.
743
744 2011-07-09 Jason Merrill <jason@redhat.com>
745
746 * tree.c (build_vec_init_elt): Strip TARGET_EXPR.
747
748 2011-07-08 Jason Merrill <jason@redhat.com>
749
750 PR c++/45437
751 * typeck.c (cp_build_modify_expr): Preevaluate RHS.
752
753 * method.c (use_thunk): Use cgraph_add_to_same_comdat_group.
754 * optimize.c (maybe_clone_body): Likewise.
755 * semantics.c (maybe_add_lambda_conv_op): Likewise.
756
757 PR c++/45603
758 * decl.c (expand_static_init): Don't get confused by user
759 declaration of __cxa_guard_acquire.
760
761 * typeck.c (cp_apply_type_quals_to_decl): Don't check
762 COMPLETE_TYPE_P either.
763
764 PR c++/49673
765 * typeck.c (cp_apply_type_quals_to_decl): Don't check
766 TYPE_NEEDS_CONSTRUCTING.
767
768 2011-07-07 Jason Merrill <jason@redhat.com>
769
770 PR c++/49663
771 * pt.c (push_deduction_access_scope): Preserve
772 processing_template_decl across push_to_top_level.
773 And revert:
774 * class.c (pushclass): Accept NULL argument.
775 (popclass): Deal with popping null class.
776 * pt.c (push_access_scope, pop_access_scope): Use them rather than
777 push_to_top_level/pop_from_top_level.
778 * name-lookup.c (lookup_name_real_1): Check current_class_type.
779
780 2011-07-07 Jakub Jelinek <jakub@redhat.com>
781
782 PR c/49644
783 * typeck.c (cp_build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
784 one non-complex and one complex argument, call save_expr on both
785 operands.
786
787 2011-07-06 Jason Merrill <jason@redhat.com>
788
789 PR c++/49353
790 * semantics.c (expand_or_defer_fn_1): Clear DECL_EXTERNAL
791 on kept inlines.
792
793 PR c++/49568
794 * method.c (make_thunk, use_thunk): Copy DECL_COMDAT.
795
796 2011-07-05 Jason Merrill <jason@redhat.com>
797
798 PR c++/48157
799 * pt.c (tsubst_qualified_id): Preserve TEMPLATE_ID_EXPR in
800 partial instantiation.
801
802 PR c++/49598
803 * semantics.c (finish_id_expression): convert_from_reference.
804
805 2011-07-05 Richard Guenther <rguenther@suse.de>
806
807 * decl.c (cxx_init_decl_processing): Defer building common
808 tree nodes to c_common_nodes_and_builtins.
809
810 2011-07-04 Jason Merrill <jason@redhat.com>
811
812 DR 1207
813 PR c++/49589
814 * mangle.c (write_expression): Handle 'this'.
815 * parser.c (cp_parser_postfix_dot_deref_expression): Allow
816 incomplete *this.
817 * semantics.c (potential_constant_expression_1): Check that
818 DECL_CONTEXT is set on 'this'.
819
820 * error.c (dump_template_bindings): Don't print typenames
821 for a partial instantiation.
822 (dump_function_decl): If we aren't printing function arguments,
823 print template arguments as <args> rather than [with ...].
824 (dump_expr): Don't print return type or template header.
825 [BASELINK]: Use BASELINK_FUNCTIONS rather than get_first_fn.
826 * pt.c (dependent_template_arg_p): Handle null arg.
827
828 * error.c (type_to_string): Avoid redundant akas.
829
830 2011-07-01 Jonathan Wakely <jwakely.gcc@gmail.com>
831
832 PR c++/49605
833 * init.c (build_delete): Only warn for sfk_deleting_destructor.
834
835 2011-07-01 Jakub Jelinek <jakub@redhat.com>
836
837 * Make-lang.in (cp/decl.o): Depend on pointer-set.h.
838 (cp/class.o): Likewise.
839 (cp/error.o): Likewise.
840 (cp/name-lookup.o): Likewise.
841 (cp/decl2.o): Likewise. Don't depend on $(POINTER_SET_H).
842
843 2011-07-01 Jason Merrill <jason@redhat.com>
844
845 PR c++/48261
846 * pt.c (lookup_template_function): Handle non-function.
847
848 PR c++/48593
849 * pt.c (tsubst_qualified_id): Check PTRMEM_OK_P.
850 * tree.c (build_qualified_name): Set PTRMEM_OK_P.
851 * semantics.c (finish_parenthesized_expr): Clear PTRMEM_OK_P on
852 SCOPE_REF, too.
853 * cp-tree.h (PTRMEM_OK_P): Apply to SCOPE_REF, too.
854 (QUALIFIED_NAME_IS_TEMPLATE): Switch to lang flag 1.
855
856 PR c++/48883
857 PR c++/49609
858 * pt.c (resolve_nondeduced_context): Call mark_used.
859
860 PR c++/49085
861 * semantics.c (finish_offsetof): Complain about incomplete type.
862
863 2011-06-30 Jason Merrill <jason@redhat.com>
864
865 PR c++/49387
866 * rtti.c (get_tinfo_decl): Call complete_type.
867
868 PR c++/49569
869 * method.c (implicitly_declare_fn): Set DECL_PARM_LEVEL and
870 DECL_PARM_INDEX on rhs parm.
871
872 * pt.c (iterative_hash_template_arg): Use cp_tree_operand_length.
873
874 PR c++/49355
875 * tree.c (stabilize_init): Handle aggregate initialization.
876
877 PR c++/48481
878 * name-lookup.c (struct arg_lookup): Add fn_set.
879 (add_function): Check it.
880 (lookup_arg_dependent_1): Initialize it.
881
882 2011-06-29 Jason Merrill <jason@redhat.com>
883
884 PR c++/49216
885 * init.c (build_new_1): Pass {} down to build_vec_init.
886 (build_vec_init): Handle it.
887
888 DR 1207
889 PR c++/49003
890 * cp-tree.h (struct saved_scope): Add x_current_class_ptr,
891 x_current_class_ref.
892 (current_class_ptr, current_class_ref): Use them.
893 * decl.c (build_this_parm): Handle getting the class type.
894 * parser.c (cp_parser_late_return_type_opt): Set up 'this'
895 for use within the trailing return type.
896
897 * pt.c (tsubst_decl) [VAR_DECL]: In unevaluated operand,
898 don't tsubst DECL_INITIAL unless our type use auto.
899
900 PR c++/49520
901 * semantics.c (constexpr_fn_retval): Handle CLEANUP_POINT_EXPR here.
902 (massage_constexpr_body): Not here.
903
904 PR c++/49554
905 * semantics.c (lambda_proxy_type): New.
906 (build_capture_proxy): Use it.
907 * cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New.
908 * pt.c (tsubst) [DECLTYPE_TYPE]: Use them.
909
910 PR c++/45923
911 * class.c (explain_non_literal_class): New.
912 (finalize_literal_type_property): Call it.
913 * cp-tree.h: Declare it.
914 * semantics.c (ensure_literal_type_for_constexpr_object): Call it.
915 (is_valid_constexpr_fn): Likewise.
916 (massage_constexpr_body): Split out from...
917 (register_constexpr_fundef): ...here.
918 (is_instantiation_of_constexpr): New.
919 (expand_or_defer_fn_1): Leave DECL_SAVED_TREE alone in that case.
920 (explain_invalid_constexpr_fn): New.
921 (cxx_eval_call_expression): Call it.
922 (potential_constant_expression_1): Likewise. Avoid redundant errors.
923 * method.c (process_subob_fn): Diagnose non-constexpr.
924 (walk_field_subobs): Likewise.
925 (synthesized_method_walk): Don't shortcut if we want diagnostics.
926 (explain_implicit_non_constexpr): New.
927 (defaulted_late_check): Use it.
928 * call.c (build_cxx_call): Remember location.
929
930 * method.c (maybe_explain_implicit_delete): Use pointer_set
931 instead of htab.
932
933 * class.c (finalize_literal_type_property): Update conditions.
934 * method.c (defaulted_late_check): Set TYPE_HAS_CONSTEXPR_CTOR.
935
936 * tree.c (build_vec_init_expr): Don't add TARGET_EXPR.
937 * typeck2.c (digest_init_r): Handle VEC_INIT_EXPR.
938 * semantics.c (cxx_eval_vec_init_1): Correct type.
939
940 * init.c (build_value_init): Decide whether or not to zero-initialize
941 based on user-providedness of default ctor, not any ctor.
942 (build_value_init_noctor): Adjust assert.
943
944 DR 990
945 * call.c (convert_like_real) [ck_user]: Handle value-initialization.
946 (build_new_method_call_1): Likewise.
947 * init.c (expand_default_init): Handle direct list-initialization
948 of aggregates.
949
950 2011-06-27 Jakub Jelinek <jakub@redhat.com>
951
952 * cp-tree.h (union lang_tree_node): Use it in chain_next expression.
953
954 2011-06-26 Jason Merrill <jason@redhat.com>
955
956 PR c++/49528
957 * semantics.c (potential_constant_expression_1): Check
958 for non-literality rather than cleanup.
959 (cxx_eval_constant_expression): Likewise.
960
961 PR c++/49528
962 * semantics.c (potential_constant_expression_1): A TARGET_EXPR
963 with a cleanup isn't constant.
964 (cxx_eval_constant_expression): Likewise.
965 * init.c (expand_default_init): Use maybe_constant_init.
966
967 2011-06-24 Jakub Jelinek <jakub@redhat.com>
968
969 PR c++/46400
970 * cp-tree.h (union lang_tree_node): Use TYPE_NEXT_VARIANT
971 instead of TYPE_CHAIN for chain_next for types.
972
973 2011-06-23 Gabriel Charette <gchare@google.com>
974
975 * name-lookup.h (cp_binding_level): Removed unused
976 member names_size. Update all users.
977
978 2011-06-23 Jason Merrill <jason@redhat.com>
979
980 * typeck2.c (build_functional_cast): Strip cv-quals for value init.
981 * init.c (build_zero_init_1): Not here.
982
983 PR c++/35255
984 * pt.c (resolve_overloaded_unification): Fix DR 115 handling.
985
986 2011-06-23 Paolo Carlini <paolo.carlini@oracle.com>
987
988 PR c++/44625
989 * decl2.c (build_anon_union_vars): Early return error_mark_node
990 for a nested anonymous struct.
991
992 2011-06-23 Jason Merrill <jason@redhat.com>
993
994 PR c++/49507
995 * decl2.c (mark_used): Don't call synthesize_method for
996 functions defaulted outside the class.
997
998 * optimize.c (maybe_clone_body): Set linkage flags before
999 cgraph_same_body_alias.
1000
1001 PR c++/49440
1002 * class.c (set_linkage_according_to_type): Hand off to
1003 determine_visibility.
1004
1005 PR c++/49395
1006 * init.c (build_zero_init_1): Strip cv-quals from scalar types.
1007
1008 PR c++/36435
1009 * pt.c (most_specialized_instantiation): Do check return types.
1010
1011 2011-06-22 Jason Merrill <jason@redhat.com>
1012
1013 PR c++/49260
1014 * call.c (build_call_a): Set cp_function_chain->can_throw here.
1015 (build_cxx_call): Not here.
1016
1017 2011-06-21 Jason Merrill <jason@redhat.com>
1018
1019 PR c++/49172
1020 * decl.c (cp_finish_decl): Adjust init_const_expr_p for refs.
1021 (grokdeclarator): constexpr doesn't apply const for refs.
1022 * parser.c (cp_parser_initializer_clause): Don't call
1023 maybe_constant_value here.
1024 * call.c (initialize_reference): Handle constexpr.
1025
1026 PR c++/49482
1027 * semantics.c (maybe_add_lambda_conv_op): Call mark_exp_read for
1028 static fn parameters.
1029
1030 * call.c (add_builtin_candidates): Use cv_unqualified rather than
1031 TYPE_MAIN_VARIANT.
1032 * pt.c (tsubst_arg_types): Likewise.
1033 * except.c (build_throw): Use cv_unqualified.
1034
1035 PR c++/49418
1036 * call.c (cxx_type_promotes_to): Don't strip cv-quals.
1037 * semantics.c (lambda_return_type): Strip them here.
1038
1039 2011-06-21 Andrew MacLeod <amacleod@redhat.com>
1040
1041 * semantics.c: Add sync_ or SYNC__ to builtin names.
1042
1043 2011-06-20 Jason Merrill <jason@redhat.com>
1044
1045 PR c++/49216
1046 * init.c (build_vec_init): Don't try to use a CONSTRUCTOR when
1047 base is a pointer.
1048 * typeck2.c (process_init_constructor_array): Use {} for classes,
1049 too.
1050 * call.c (convert_like_real): Handle substitution failure.
1051
1052 PR c++/48138
1053 * pt.c (canonicalize_type_argument): New.
1054 (convert_template_argument, unify): Use it.
1055
1056 PR c++/47080
1057 * call.c (rejection_reason_code): Add rr_explicit_conversion.
1058 (print_z_candidate): Handle it.
1059 (explicit_conversion_rejection): New.
1060 (build_user_type_conversion_1): Reject an explicit conversion
1061 function that requires more than a qualification conversion.
1062
1063 PR c++/47635
1064 * decl.c (grokdeclarator): Don't set ctype to an ENUMERAL_TYPE.
1065
1066 PR c++/48138
1067 * tree.c (strip_typedefs): Use build_aligned_type.
1068
1069 PR c++/49205
1070 * call.c (sufficient_parms_p): Allow parameter packs too.
1071
1072 PR c++/43321
1073 * semantics.c (describable_type): Remove.
1074 * cp-tree.h: Likewise.
1075 * decl.c (cp_finish_decl): Don't call it.
1076 * init.c (build_new): Likewise.
1077 * parser.c (cp_parser_omp_for_loop): Likewise.
1078 * pt.c (tsubst_decl): Likewise.
1079 (do_auto_deduction): If we fail in a template, try again
1080 at instantiation time.
1081
1082 PR c++/43831
1083 * parser.c (cp_parser_lambda_introducer): Complain about redundant
1084 captures.
1085 * semantics.c (add_capture): Likewise.
1086 (register_capture_members): Clear IDENTIFIER_MARKED.
1087
1088 2011-06-17 Jason Merrill <jason@redhat.com>
1089
1090 PR c++/49458
1091 * call.c (convert_class_to_reference_1): Allow binding function
1092 lvalue to rvalue reference.
1093
1094 PR c++/43912
1095 Generate proxy VAR_DECLs for better lambda debug info.
1096 * cp-tree.h (FUNCTION_NEEDS_BODY_BLOCK): Add lambda operator().
1097 (LAMBDA_EXPR_PENDING_PROXIES): New.
1098 (struct tree_lambda_expr): Add pending_proxies.
1099 * name-lookup.c (pushdecl_maybe_friend_1): Handle capture shadowing.
1100 (qualify_lookup): Use is_lambda_ignored_entity.
1101 * parser.c (cp_parser_lambda_expression): Don't adjust field names.
1102 Call insert_pending_capture_proxies.
1103 (cp_parser_lambda_introducer): Use this_identifier.
1104 (cp_parser_lambda_declarator_opt): Call the object parameter
1105 of the op() "__closure" instead of "this".
1106 (cp_parser_lambda_body): Call build_capture_proxy.
1107 * semantics.c (build_capture_proxy, is_lambda_ignored_entity): New.
1108 (insert_pending_capture_proxies, insert_capture_proxy): New.
1109 (is_normal_capture_proxy, is_capture_proxy): New.
1110 (add_capture): Add __ to field names here, return capture proxy.
1111 (add_default_capture): Use this_identifier, adjust to expect
1112 add_capture to return a capture proxy.
1113 (outer_lambda_capture_p, thisify_lambda_field): Remove.
1114 (finish_id_expression, lambda_expr_this_capture): Adjust.
1115 (build_lambda_expr): Initialize LAMBDA_EXPR_PENDING_PROXIES.
1116 * pt.c (tsubst_copy_and_build): Check that LAMBDA_EXPR_PENDING_PROXIES
1117 is null.
1118
1119 * name-lookup.c (pushdecl_maybe_friend_1): Do check for shadowing
1120 of artificial locals.
1121
1122 * parser.c (cp_parser_lambda_expression): Clear
1123 LAMBDA_EXPR_THIS_CAPTURE after parsing.
1124 * pt.c (tsubst_copy_and_build): Make sure it isn't set.
1125
1126 * cp-tree.h (struct tree_lambda_expr): Change common to typed.
1127 Move non-pointers to end of struct.
1128
1129 * pt.c (tsubst_decl): Handle DECL_VALUE_EXPR on reference.
1130 * decl.c (check_initializer): Handle DECL_VALUE_EXPR_P.
1131
1132 * semantics.c (finish_non_static_data_member): Preserve dereference
1133 in template.
1134
1135 2011-06-16 Jason Merrill <jason@redhat.com>
1136
1137 PR c++/44160
1138 * parser.c (cp_parser_lambda_body): Share code between
1139 simple and complex cases instead of using cp_parser_function_body.
1140
1141 PR c++/45378
1142 * decl.c (check_initializer): Check narrowing.
1143
1144 PR c++/49229
1145 * pt.c (tsubst_decl) [FUNCTION_DECL]: Handle substitution failure.
1146
1147 PR c++/49251
1148 * semantics.c (finish_id_expression): Mark even dependent
1149 variables as used.
1150
1151 PR c++/49420
1152 * error.c (dump_template_argument): Don't try to omit default
1153 template args from an argument pack.
1154
1155 2011-06-15 H.J. Lu <hongjiu.lu@intel.com>
1156
1157 PR c++/49412
1158 * decl.c (get_dso_handle_node): Mark __dso_handle hidden if
1159 assembler supports hidden visibility.
1160
1161 2011-06-14 Jason Merrill <jason@redhat.com>
1162
1163 PR c++/49107
1164 * cp-tree.h (DEFERRED_NOEXCEPT_SPEC_P): Handle overload.
1165 * method.c (defaulted_late_check): Only maybe_instantiate_noexcept
1166 if the declaration had an exception-specifier.
1167 (process_subob_fn): Don't maybe_instantiate_noexcept.
1168 * pt.c (maybe_instantiate_noexcept): Handle overload.
1169 * typeck2.c (nothrow_spec_p_uninst): New.
1170 (merge_exception_specifiers): Add 'fn' parm. Build up overload.
1171 * typeck.c (merge_types): Adjust.
1172
1173 * pt.c (deduction_tsubst_fntype): Don't save input_location.
1174 (maybe_instantiate_noexcept): Likewise.
1175
1176 2011-06-14 Joseph Myers <joseph@codesourcery.com>
1177
1178 * Make-lang.in (cp/method.o): Update dependencies.
1179 * method.c: Include common/common-target.h.
1180 (use_thunk): Use targetm_common.have_named_sections.
1181
1182 2011-06-14 Steve Ellcey <sje@cup.hp.com>
1183
1184 * decl.c (cxx_init_decl_processing): Use ptr_mode instead of Pmode.
1185
1186 2011-06-14 Jason Merrill <jason@redhat.com>
1187
1188 * error.c (type_to_string): Print typedef-stripped version too.
1189
1190 PR c++/49117
1191 * call.c (perform_implicit_conversion_flags): Print source type as
1192 well as expression.
1193
1194 PR c++/49389
1195 * typeck2.c (build_m_component_ref): Preserve rvalueness.
1196
1197 PR c++/49369
1198 * class.c (build_base_path): Fix cv-quals in unevaluated context.
1199
1200 PR c++/49290
1201 * semantics.c (cxx_fold_indirect_ref): Local, more permissive copy
1202 of fold_indirect_ref_1.
1203 (cxx_eval_indirect_ref): Use it.
1204
1205 2011-06-11 Jan Hubicka <jh@suse.cz>
1206
1207 * decl2.c (cp_write_global_declarations): Process aliases; look trhough
1208 same body aliases.
1209
1210 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
1211
1212 PR c++/41769
1213 * decl.c (grokdeclarator): Reject operator names in parameters.
1214
1215 2011-06-10 Jan Hubicka <jh@suse.cz>
1216
1217 * decl2.c (clear_decl_external): New functoin.
1218 (cp_write_global_declarations): Use it.
1219
1220 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
1221
1222 * cp-tree.h (error_operand_p): Remove.
1223
1224 2011-06-09 David Krauss <potswa@mac.com>
1225
1226 PR c++/49118
1227 * typeck2.c (build_x_arrow): Push fake template context
1228 to produce diagnostic on acyclic endless operator-> drill-down.
1229 * call.c (build_new_op): Change Boolean overload status
1230 value to a pointer to the overload function.
1231 * cp-tree.h: Likewise.
1232 * typeck.c: Likewise.
1233 * parser.c: Likewise.
1234 * decl2.c: Likewise.
1235 * pt.c: Likewise.
1236
1237 2011-06-09 Jason Merrill <jason@redhat.com>
1238
1239 * semantics.c (maybe_constant_value): Handle overflowed input.
1240 (non_const_var_error): Handle non-constant DECL_INITIAL.
1241
1242 * pt.c (build_non_dependent_expr): Use fold_non_dependent_expr_sfinae.
1243
1244 * parser.c (cp_parser_constant_expression): Just return the
1245 non-constant expression.
1246
1247 * semantics.c (finish_compound_literal): Set TREE_HAS_CONSTRUCTOR.
1248
1249 2011-06-09 Paolo Carlini <paolo.carlini@oracle.com>
1250
1251 PR c++/29003
1252 * decl.c (grokdeclarator): Reject operator names in typedefs.
1253
1254 2011-06-08 Jason Merrill <jason@redhat.com>
1255
1256 PR c++/49107
1257 * cp-tree.def (DEFERRED_NOEXCEPT): New.
1258 * cp-tree.h (struct tree_deferred_noexcept): New.
1259 (DEFERRED_NOEXCEPT_PATTERN, DEFERRED_NOEXCEPT_ARGS): New.
1260 (DEFERRED_NOEXCEPT_SPEC_P): New.
1261 (enum cp_tree_node_structure_enum): Add TS_CP_DEFERRED_NOEXCEPT.
1262 (union lang_tree_node): Add tree_deferred_noexcept.
1263 (maybe_instantiate_noexcept): Declare.
1264 * cp-objcp-common.c (cp_tree_size): Handle DEFERRED_NOEXCEPT.
1265 * error.c (dump_exception_spec): Likewise.
1266 * cxx-pretty-print.c (pp_cxx_exception_specification): Likewise.
1267 * ptree.c (cxx_print_xnode): Likewise.
1268 * tree.c (cp_tree_equal): Likewise.
1269 * decl.c (cp_tree_node_structure): Likewise.
1270 (duplicate_decls): Call maybe_instantiate_noexcept.
1271 * except.c (build_noexcept_spec): Handle DEFERRED_NOEXCEPT.
1272 (nothrow_spec_p, type_noexcept_p, type_throw_all_p): Check
1273 DEFERRED_NOEXCEPT_SPEC_P.
1274 * typeck2.c (merge_exception_specifiers): Likewise.
1275 * decl2.c (mark_used): Call maybe_instantiate_noexcept.
1276 * method.c (process_subob_fn, defaulted_late_check): Likewise.
1277 * pt.c (tsubst_exception_specification): Add defer_ok parm.
1278 Build DEFERRED_NOEXCEPT.
1279 (maybe_instantiate_noexcept): New.
1280 (tsubst, regenerate_decl_from_template, instantiate_decl): Adjust.
1281 * search.c (check_final_overrider): Call maybe_instantiate_noexcept.
1282
1283 * semantics.c (potential_constant_expression_1): Handle destructor
1284 call.
1285
1286 2011-06-08 Jakub Jelinek <jakub@redhat.com>
1287
1288 * cp-tree.h (struct tinst_level): Add chain_next GTY
1289 markup.
1290
1291 2011-06-08 Jason Merrill <jason@redhat.com>
1292
1293 PR c++/49322
1294 * pt.c (deduction_tsubst_fntype): Don't free the tinst entry
1295 if a pending_template entry is pointing at it.
1296
1297 2011-06-07 Jason Merrill <jason@redhat.com>
1298
1299 PR c++/48969
1300 PR c++/44175
1301 * error.c (subst_to_string): New.
1302 (cp_printer): Use it for 'S'.
1303 (print_instantiation_partial_context_line): Handle subst context.
1304 * pt.c (push_tinst_level): Handle subst context.
1305 (deduction_tsubst_fntype): Don't track specific substitutions.
1306 Use push_tinst_level.
1307
1308 * pt.c (deduction_tsubst_fntype): Use push_deduction_access_scope.
1309 (fn_type_unification): Don't call push_deduction_access_scope here.
1310
1311 2011-06-06 Jason Merrill <jason@redhat.com>
1312
1313 PR c++/48780
1314 * typeck.c (perform_integral_promotions): Don't promote scoped enums.
1315 * call.c (convert_arg_to_ellipsis): Promote them here in old ABI.
1316
1317 2011-06-06 Nicola Pero <nicola.pero@meta-innovation.com>,
1318
1319 PR obj-c++/48275
1320 * parser.c (cp_parser_objc_at_property_declaration): Allow setter
1321 and getter names to use all the allowed method names.
1322
1323 2011-06-06 Jason Merrill <jason@redhat.com>
1324
1325 PR c++/49298
1326 * semantics.c (potential_constant_expression_1): Handle FIELD_DECL.
1327
1328 PR objc++/49221
1329 * decl.c (cp_finish_decl): Check DECL_FUNCTION_SCOPE_P rather than
1330 at_function_scope_p.
1331
1332 PR c++/49134
1333 * tree.c (build_target_expr): Deal with ARM ABI tweaks.
1334
1335 2011-06-04 Jonathan Wakely <jwakely.gcc@gmail.com>
1336
1337 * init.c (build_delete): Warn when deleting type with non-virtual
1338 destructor.
1339
1340 2011-06-03 Jakub Jelinek <jakub@redhat.com>
1341
1342 PR c++/49276
1343 * mangle.c (write_nested_name): Use CP_DECL_CONTEXT instead of
1344 DECL_CONTEXT.
1345
1346 2011-06-01 Jason Merrill <jason@redhat.com>
1347
1348 * pt.c (build_non_dependent_expr): Remove special handling of
1349 REFERENCE_REF_P.
1350
1351 PR c++/44175
1352 * pt.c (template_args_equal): Handle one arg being NULL_TREE.
1353 (deduction_tsubst_fntype): Handle excessive non-infinite recursion.
1354
1355 PR c++/49253
1356 * typeck2.c (build_x_arrow): Don't use build_min_nt.
1357
1358 2010-05-31 Fabien Chêne <fabien@gcc.gnu.org>
1359
1360 PR c++/48010
1361 * name-lookup.c (supplement_binding_1): If the old binding was a
1362 type name, also check that the DECL actually refers to the same
1363 type or is not a type.
1364
1365 2011-05-31 Jason Merrill <jason@redhat.com>
1366
1367 PR c++/44870
1368 * tree.c (lvalue_kind): Recurse on NON_DEPENDENT_EXPR. Handle
1369 ARROW_EXPR, TYPEID_EXPR, and arbitrary class-valued expressions.
1370 (build_min_non_dep): Preserve reference refs.
1371 (build_min_non_dep_call_vec): Likewise
1372
1373 2011-05-30 Jakub Jelinek <jakub@redhat.com>
1374
1375 PR c++/49223
1376 * semantics.c (finish_omp_clauses): Call require_complete_type
1377 even for copyin/copyprivate clauses. Only call
1378 cxx_omp_create_clause_info if inner_type is COMPLETE_TYPE_P.
1379
1380 2011-05-28 Jason Merrill <jason@redhat.com>
1381
1382 PR c++/46124
1383 * parser.c (cp_parser_lambda_expression): Improve error recovery.
1384 (cp_parser_lambda_declarator_opt): Likewise. Return bool.
1385
1386 2011-05-27 Jason Merrill <jason@redhat.com>
1387
1388 PR c++/47277
1389 * parser.c (cp_parser_pseudo_destructor_name): Commit to parse
1390 after we see the ~.
1391
1392 * mangle.c (mangle_decl_string): Make sure we don't try to mangle
1393 templates.
1394
1395 PR c++/47049
1396 * semantics.c (maybe_add_lambda_conv_op): Fix COMDAT sharing.
1397 * decl.c (start_preparsed_function): Don't call comdat_linkage for
1398 a template.
1399
1400 PR c++/47132
1401 * mangle.c (write_expression): Handle MODOP_EXPR.
1402
1403 PR c++/47277
1404 * parser.c (cp_parser_unqualified_id): Don't check
1405 constructor_name_p for enums.
1406
1407 PR c++/47687
1408 * pt.c (dependent_type_p_r): Avoid infinite recursion.
1409
1410 PR c++/48284
1411 * error.c (dump_expr) [COMPONENT_REF]: Use pp_cxx_dot
1412 with INDIRECT_REF of REFERENCE_TYPE.
1413
1414 PR c++/49181
1415 * pt.c (get_mostly_instantiated_function_type): Use push_access_scope.
1416
1417 2011-05-27 Nathan Froyd <froydnj@codesourcery.com>
1418
1419 * cp-tree.h (building_stmt_tree): Delete.
1420 * decl.c (save_function_data): Tweak initializer for x_cur_stmt_list.
1421 (build_aggr_init_full_exprs): Call building_stmt_list_p
1422 instead of building_stmt_tree.
1423 (initialize_local_var): Likewise.
1424 (finish_function): Likewise.
1425 * decl2.c (finish_anon_union): Likewise.
1426 * init.c (begin_init_stmts): Likewise.
1427 (finish_init_stmts): Likewise.
1428 (expand_aggr_init_1): Likewise.
1429 * name-lookup.c (do_local_using_decl): Likewise.
1430 (do_namespace_alias): Likewise.
1431 (do_using_directive): Likewise.
1432 (cp_emit_debug_info_for_using): Likewise.
1433 * semantics.c (add_stmt): Assert that stmt_list_stack is non-empty.
1434
1435 2011-05-27 Paolo Carlini <paolo.carlini@oracle.com>
1436
1437 PR c++/42056
1438 * typeck2.c (build_functional_cast): Complain early for invalid uses
1439 of 'auto' and set type to error_mark_node.
1440
1441 2011-05-26 Jason Merrill <jason@redhat.com>
1442
1443 PR c++/47721
1444 * parser.c (cp_parser_member_declaration): Allow friend T.
1445 * friend.c (make_friend_class): Ignore non-classes.
1446 * pt.c (instantiate_class_template_1): Handle TEMPLATE_TYPE_PARM.
1447
1448 DR 1004
1449 * pt.c (convert_template_argument): Don't complain about using
1450 injected-class-name as template template argument.
1451
1452 PR c++/47956
1453 * decl.c (check_static_variable_definition): Now static.
1454 (cp_finish_decl): Call it here.
1455 (grokdeclarator): Not here.
1456 * pt.c (instantiate_class_template_1): Or here.
1457 * cp-tree.h: Don't declare it.
1458
1459 2011-05-26 Janis Johnson <janis187@us.ibm.com>
1460 Nathan Froyd <froydnj@codesourcery.com>
1461
1462 PR c++/2288
1463 PR c++/18770
1464 * name-lookup.h (enum scope_kind): Add sk_cond.
1465 * name-lookup.c (pushdecl_maybe_friend): Get scope of shadowed local.
1466 Detect and report error for redeclaration from for-init or if
1467 or switch condition.
1468 (begin_scope): Handle sk_cond.
1469 * semantics.c (begin_if_stmt): Use sk_cond.
1470 (begin switch_stmt): Ditto.
1471
1472 2011-05-26 Jason Merrill <jason@redhat.com>
1473
1474 PR c++/48211
1475 * name-lookup.h (cp_class_binding): Make base a pointer.
1476 * name-lookup.c (new_class_binding): Adjust.
1477 (poplevel_class): Adjust.
1478
1479 PR c++/48424
1480 * decl.c (grokparms): Function parameter packs don't need to
1481 go at the end.
1482 * pt.c (type_unification_real): But they aren't deduced otherwise.
1483
1484 2011-05-25 Jason Merrill <jason@redhat.com>
1485
1486 PR c++/48536
1487 * decl.c (build_enumerator): If incremented enumerator won't fit in
1488 previous integral type, find one it will fit in.
1489
1490 PR c++/48599
1491 * decl.c (create_array_type_for_decl): Complain about array of auto.
1492
1493 PR c++/44994
1494 PR c++/49156
1495 * error.c (dump_template_bindings): Set processing_template_decl
1496 for a partial instantiation.
1497
1498 PR c++/45401
1499 * decl.c (grokdeclarator): Don't change type when adding rvalue ref
1500 to another reference type.
1501
1502 PR c++/44311
1503 * decl.c (case_conversion): New.
1504 (finish_case_label): Use it.
1505
1506 * ptree.c (cxx_print_xnode): Handle ARGUMENT_PACK_SELECT.
1507
1508 PR c++/45698
1509 * pt.c (dependent_template_arg_p): See through ARGUMENT_PACK_SELECT.
1510
1511 PR c++/46005
1512 * decl.c (grokdeclarator): Complain about auto typedef.
1513
1514 PR c++/46245
1515 * decl.c (grokdeclarator): Complain later for auto parameter.
1516 * pt.c (splice_late_return_type): Handle use in a template
1517 type-parameter.
1518
1519 PR c++/46696
1520 * typeck.c (cp_build_modify_expr): Check DECL_DEFAULTED_FN.
1521
1522 PR c++/47184
1523 * parser.c (cp_parser_parameter_declaration): Recognize
1524 list-initialization.
1525 (cp_parser_direct_declarator): Check for the closing
1526 paren before parsing definitely.
1527
1528 PR c++/48935
1529 * parser.c (cp_parser_constructor_declarator_p): Don't check
1530 constructor_name_p for enums.
1531 (cp_parser_diagnose_invalid_type_name): Correct error message.
1532
1533 PR c++/45418
1534 * init.c (perform_member_init): Handle list-initialization
1535 of array of non-trivial class type.
1536
1537 PR c++/45080
1538 * pt.c (instantiate_class_template_1): Call maybe_add_lambda_conv_op.
1539 * semantics.c (lambda_function): Check COMPLETE_OR_OPEN_TYPE_P.
1540
1541 PR c++/48292
1542 * pt.c (tsubst_decl) [PARM_DECL]: Handle partial instantiation of
1543 function parameter pack.
1544 (tsubst_pack_expansion): Likewise.
1545
1546 * cp-objcp-common.c (cp_common_init_ts): TYPE_ARGUMENT_PACK has
1547 TS_COMMON.
1548
1549 2011-05-25 Jakub Jelinek <jakub@redhat.com>
1550
1551 * cp-objcp-common.c (cp_common_init_ts): Mark CTOR_INITIALIZER
1552 as TS_TYPED.
1553
1554 PR c++/49136
1555 * semantics.c (cxx_eval_bit_field_ref): Handle the
1556 case when BIT_FIELD_REF doesn't cover only a single field.
1557
1558 2011-05-24 Jason Merrill <jason@redhat.com>
1559
1560 PR c++/49042
1561 * pt.c (get_mostly_instantiated_function_type): Use
1562 push_deferring_access_checks rather than set flag_access_control.
1563
1564 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>,
1565
1566 * parser.c (cp_parser_objc_class_ivars): Deal gracefully with a
1567 syntax error in declaring an ObjC instance variable.
1568
1569 2011-05-24 Jason Merrill <jason@redhat.com>
1570
1571 PR c++/48884
1572 * class.c (pushclass): Accept NULL argument.
1573 (popclass): Deal with popping null class.
1574 * pt.c (push_access_scope, pop_access_scope): Use them rather than
1575 push_to_top_level/pop_from_top_level.
1576 (push_deduction_access_scope, pop_defarg_context): New.
1577 (fn_type_unification): Use them.
1578 * name-lookup.c (lookup_name_real_1): Check current_class_type.
1579
1580 2011-05-24 Paolo Carlini <paolo.carlini@oracle.com>
1581
1582 * decl.c (grokdeclarator): Use current_class_name.
1583
1584 2011-05-24 Joseph Myers <joseph@codesourcery.com>
1585
1586 * Make-lang.in (GXX_OBJS): Remove prefix.o.
1587 (g++$(exeext)): Use libcommon-target.a.
1588 (CXX_C_OBJS): Remove prefix.o.
1589
1590 2011-05-23 Jason Merrill <jason@redhat.com>
1591
1592 * pt.c (tsubst_copy_and_build): Use current_class_name.
1593
1594 PR c++/49102
1595 * call.c (convert_arg_to_ellipsis): Call force_rvalue.
1596
1597 PR c++/49105
1598 * typeck.c (cp_build_c_cast): Don't strip cv-quals when
1599 converting to reference.
1600 (build_static_cast_1): Update for glvalues.
1601
1602 PR c++/49105
1603 * typeck.c (build_const_cast_1): Handle rvalue references.
1604
1605 PR c++/47263
1606 * decl.c (use_eh_spec_block): Do use an EH spec block for a
1607 lambda op().
1608
1609 PR c++/49058
1610 * call.c (splice_viable): Be strict in templates.
1611
1612 PR c++/47336
1613 * error.c (dump_template_bindings): Suppress access control.
1614
1615 PR c++/47544
1616 * pt.c (instantiate_decl): Handle =default.
1617
1618 PR c++/48617
1619 * pt.c (invalid_nontype_parm_type_p): Allow DECLTYPE_TYPE.
1620
1621 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
1622
1623 * call.c (build_over_call): Tweak call to check_function_arguments.
1624 * typeck.c (cp_build_function_call_vec): Likewise.
1625
1626 2011-05-23 Jonathan Wakely <jwakely.gcc@gmail.com>
1627
1628 PR c++/18016
1629 * init.c (perform_member_init): Check for self-initialization.
1630
1631 2011-05-22 Jason Merrill <jason@redhat.com>
1632
1633 PR c++/48647
1634 * typeck.c (composite_pointer_type_r): Return error_mark_node
1635 on error in SFINAE context.
1636
1637 2011-05-20 Jason Merrill <jason@redhat.com>
1638
1639 PR c++/48945
1640 * decl.c (grokdeclarator): Don't add set const function-cv-qual
1641 for constexpr fns to memfn_quals, just add it to the type.
1642 (revert_static_member_fn): Don't complain about quals.
1643 (check_static_quals): New.
1644 (grokfndecl): Call it.
1645 (start_preparsed_function): Don't call revert_static_member_fn.
1646
1647 PR c++/48945
1648 * decl.c (revert_static_member_fn): Ignore const on constexpr fn.
1649
1650 PR c++/48780
1651 * cvt.c (type_promotes_to): Don't promote scoped enums.
1652
1653 PR c++/49066
1654 * decl.c (duplicate_decls): Preserve DECL_DELETED_FN.
1655
1656 PR c++/48873
1657 * tree.c (stabilize_expr): Fix typo.
1658
1659 DR 1073
1660 PR c++/49082
1661 * typeck.c (comp_except_specs): noexcept(false) is not compatible
1662 with throw(type-list).
1663 * typeck2.c (merge_exception_specifiers): noexcept(false)
1664 beats any more limited specification.
1665
1666 PR c++/24163
1667 PR c++/29131
1668 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Avoid repeating
1669 unqualified lookup.
1670 * semantics.c (perform_koenig_lookup): Add complain parm.
1671 * cp-tree.h: Adjust.
1672 * parser.c (cp_parser_postfix_expression): Adjust.
1673 (cp_parser_perform_range_for_lookup): Adjust.
1674
1675 2011-05-20 Jason Merrill <jason@redhat.com>
1676
1677 * semantics.c (finish_call_expr): SET_EXPR_LOCATION.
1678
1679 2011-05-20 Joseph Myers <joseph@codesourcery.com>
1680
1681 * Make-lang.in (GXX_OBJS): Remove intl.o and version.o.
1682
1683 2011-05-19 Jakub Jelinek <jakub@redhat.com>
1684
1685 PR c++/49043
1686 * decl.c (check_omp_return): Stop searching on sk_function_parms.
1687
1688 PR c++/48869
1689 * method.c (get_dtor, get_copy_ctor): Add COMPLAIN argument,
1690 pass it down to locate_fn_flags.
1691 * cp-tree.h (get_dtor, get_copy_ctor): Adjust prototypes.
1692 * semantics.c (cxx_omp_create_clause_info): Adjust callers.
1693 * cp-gimplify.c: Include splay-tree.h.
1694 (splay_tree_compare_decl_uid, omp_var_to_track,
1695 omp_cxx_notice_variable): New functions.
1696 (struct cp_genericize_omp_taskreg): New type.
1697 (struct cp_genericize_data): Add omp_ctx field.
1698 (cp_genericize_r): Attempt to determine implicitly determined
1699 firstprivate class type variables.
1700 (cp_genericize): Clear omp_ctx.
1701 * Make-lang.in (cp/cp-gimplify.o): Depend on $(SPLAY_TREE_H).
1702
1703 2011-05-18 Jason Merrill <jason@redhat.com>
1704
1705 PR c++/48948
1706 PR c++/49015
1707 * class.c (finalize_literal_type_property): Do check
1708 for constexpr member functions of non-literal class.
1709 (finish_struct): Don't call check_deferred_constexpr_decls.
1710 * cp-tree.h: Don't declare it.
1711 (DECL_DEFERRED_CONSTEXPR_CHECK): Remove.
1712 * decl.c (grok_special_member_properties): Don't check it
1713 (grokfnedcl): Don't call validate_constexpr_fundecl.
1714 (start_preparsed_function): Do call it.
1715 * pt.c (tsubst_decl): Don't call it.
1716 (instantiate_class_template_1): Don't call
1717 check_deferred_constexpr_decls.
1718 * semantics.c (literal_type_p): Check for any incompleteness.
1719 (ensure_literal_type_for_constexpr_object): Likewise.
1720 (is_valid_constexpr_fn): Revert deferral changes.
1721 (validate_constexpr_fundecl): Likewise.
1722 (register_constexpr_fundef): Likewise.
1723 (check_deferred_constexpr_decls): Remove.
1724
1725 2011-05-16 Jason Merrill <jason@redhat.com>
1726
1727 PR c++/48969
1728 * pt.c (deduction_tsubst_fntype): Use a VEC initially.
1729
1730 2011-05-15 Paolo Carlini <paolo.carlini@oracle.com>
1731
1732 * cxx-pretty-print.c: Update comment.
1733 * semantics.c (trait_expr_value, finish_trait_expr):
1734 Reorder the cases.
1735 * parser.c (cp_parser_primary_expression): Likewise.
1736
1737 2011-05-15 Jonathan Wakely <jwakely.gcc@gmail.com>
1738
1739 PR c++/48994
1740 * parser.c (cp_parser_perform_range_for_lookup): Call complete_type.
1741
1742 2011-05-13 Ville Voutilainen <ville.voutilainen@gmail.com>
1743
1744 Implement final on class.
1745 * class.c (check_bases): Diagnose derivation from a final class.
1746 * cp-tree.h (lang_type_class): Add is_final and adjust dummy.
1747 (CLASSTYPE_FINAL): New.
1748 * parser.c (cp_parser_class_head): Parse class-virt-specifier, set
1749 CLASSTYPE_FINAL.
1750 * pt.c (instantiate_class_template_1): Copy CLASSTYPE_FINAL.
1751
1752 2011-05-13 Jason Merrill <jason@redhat.com>
1753
1754 PR c++/48969
1755 * pt.c (deduction_tsubst_fntype): New.
1756 (fn_type_unification): Use it.
1757 (init_template_processing): Initialize hash table.
1758 (print_template_statistics): Print hash table stats.
1759
1760 * call.c (build_op_call): Use timevar_cond_start/stop.
1761 (build_user_type_conversion): Likewise.
1762
1763 2011-05-12 Jason Merrill <jason@redhat.com>
1764
1765 * cp-tree.h (DECL_DEFERRED_CONSTEXPR_CHECK): New.
1766 * semantics.c (validate_constexpr_fundecl): Set it.
1767 (check_deferred_constexpr_decls): Clear it.
1768 (register_constexpr_fundef): Make sure it isn't set.
1769 * decl.c (grok_special_member_properties): Check it.
1770
1771 2011-05-11 Jason Merrill <jason@redhat.com>
1772
1773 PR c++/48948
1774 * semantics.c (validate_constexpr_fundecl): Defer checking if
1775 an argument type is being defined.
1776 (is_valid_constexpr_fn): Add defer_ok parm.
1777 (cxx_eval_call_expression): Adjust.
1778 (check_deferred_constexpr_decls): New.
1779 (literal_type_p): Make sure type isn't being defined.
1780 (ensure_literal_type_for_constexpr_object): Handle type being defined.
1781 * cp-tree.h: Declare check_deferred_constexpr_decls.
1782 * decl.c (grokfndecl): Call validate_constexpr_fundecl here.
1783 (start_preparsed_function, cp_finish_decl): Not here.
1784 * class.c (finalize_literal_type_property): Don't call
1785 validate_constexpr_fundecl.
1786 (finish_struct): Call check_deferred_constexpr_decls.
1787 * pt.c (tsubst_decl): Call validate_constexpr_fundecl.
1788 (instantiate_class_template): Call check_deferred_constexpr_decls.
1789
1790 * semantics.c (validate_constexpr_fundecl): Check DECL_TEMPLATE_INFO
1791 rather than DECL_TEMPLATE_INSTANTIATION.
1792 (cxx_eval_call_expression): Likewise.
1793
1794 * semantics.c (register_constexpr_fundef): Add to hash table here.
1795 (validate_constexpr_fundecl): Not here.
1796
1797 * decl.c (grokdeclarator): Only set DECL_DECLARED_CONSTEXPR_P once.
1798
1799 * pt.c (build_non_dependent_expr): Don't check null_ptr_cst_p,
1800 do call maybe_constant_value in C++0x mode.
1801 * semantics.c (cxx_eval_constant_expression): Handle TEMPLATE_DECL.
1802
1803 PR c++/48745
1804 * pt.c (value_dependent_expr_p): Handle CONSTRUCTOR.
1805
1806 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1807
1808 * cp-tree.h (TYPENAME_TYPE_FULLNAME, TYPEOF_TYPE_EXPR): Use
1809 TYPE_VALUES_RAW.
1810 (UNDERLYING_TYPE_TYPE, DECLTYPE_TYPE_EXPR): Likewise.
1811 (DECLTYPE_TYPE_ID_EXPR_OR_MEMBER_ACCESS_P): Likewise.
1812 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
1813
1814 2011-05-10 Jason Merrill <jason@redhat.com>
1815
1816 PR c++/48930
1817 * class.c (type_build_ctor_call): New.
1818 * cp-tree.h: Declare it.
1819 * decl.c (check_initializer): Use it instead of
1820 TYPE_NEEDS_CONSTRUCTING.
1821 * init.c (build_value_init, build_value_init_noctor): Likewise.
1822 (perform_member_init, expand_aggr_init_1, build_new_1): Likewise.
1823 (build_vec_init): Likewise.
1824 * typeck2.c (process_init_constructor_array): Likewise.
1825 (process_init_constructor_record): Likewise.
1826
1827 PR c++/48736
1828 * pt.c (tsubst_copy_and_build): Handle substitution of a pack
1829 expansion producing another expansion.
1830
1831 2011-05-10 Ville Voutilainen <ville.voutilainen@gmail.com>
1832
1833 Fixes for override/final.
1834 * class.c (check_for_override): Diagnose final on a nonvirtual
1835 member function, diagnose override for a virtual with no matching
1836 override. Don't fiddle around with DECL_VINDEX.
1837
1838 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1839
1840 * cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
1841 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
1842 * cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
1843 operand of EXPR_PACK_EXPANSION.
1844 (cp_tree_operand_length): Declare.
1845 * tree.c (cp_tree_operand_length): Define.
1846 (cp_tree_equal): Call it.
1847 * pt.c (value_dependent_expr_P): Likewise.
1848 * mangle.c (write_expression): Likewise.
1849
1850 2011-05-09 Paolo Carlini <paolo.carlini@oracle.com>
1851
1852 PR c++/48737
1853 PR c++/48744
1854 * decl.c (reshape_init): Take a complain parameter and do
1855 not call error if tf_error is not set.
1856 (check_initializer, reshape_init_r, reshape_init_array,
1857 reshape_init_array_1, reshape_init_vector, reshape_init_class):
1858 Adjust.
1859 * typeck2.c (digest_init_r): Take a complain parameter and
1860 pass it to convert_for_initialization.
1861 (digest_init, digest_init_flags, process_init_constructor_array,
1862 process_init_constructor_record, process_init_constructor_union,
1863 process_init_constructor, digest_init_r): Adjust.
1864 * init.c (expand_default_init, build_new_1): Likewise.
1865 * typeck.c (cp_build_modify_expr): Likewise.
1866 * decl2.c (grokfield): Likewise.
1867 * call.c (convert_like_real, convert_default_arg): Likewise.
1868 * semantics.c (finish_compound_literal): Pass complain to
1869 reshape_init and digest_init.
1870 * cp-tree.h: Adjust declarations.
1871
1872 2011-05-07 Fabien Chêne <fabien@gcc.gnu.org>
1873
1874 PR c++/48859
1875 * init.c (diagnose_uninitialized_cst_or_ref_member_1): stop the
1876 recursion if there is user defined constructor.
1877
1878 2011-05-09 Jason Merrill <jason@redhat.com>
1879
1880 PR c++/34772
1881 * decl.c (initialize_local_var): Use DECL_INITIAL for simple
1882 initialization.
1883
1884 2011-05-08 Ville Voutilainen <ville.voutilainen@gmail.com>
1885
1886 Implement final/override for member functions.
1887 * class.c (check_for_override): Check for DECL_OVERRIDE_P.
1888 * cp-tree.h (DECL_OVERRIDE_P, DECL_FINAL_P): New.
1889 (cp_virt_specifiers, enum virt_specifier): New.
1890 * decl.c (set_virt_specifiers): New.
1891 (grokdeclarator): Use them. Diagnose virt-specifiers on non-fields.
1892 * parser.c (make_call_declarator): add virt-specifiers parameter.
1893 (cp_parser_lambda_declarator_opt): Adjust.
1894 (cp_parser_direct_declarator): Likewise.
1895 (cp_parser_virt_specifier_seq_opt): New.
1896 * search.c (check_final_overrider): Diagnose attempts to override
1897 a final member function.
1898
1899 2011-05-09 Dodji Seketeli <dodji@redhat.com>
1900
1901 PR c++/48574
1902 * class.c (fixed_type_or_null): Use type_dependent_p_push to test
1903 if the instance has a dependent initializer.
1904
1905 2011-05-08 Paolo Carlini <paolo.carlini@oracle.com>
1906
1907 PR c++/48816
1908 * cxx-pretty-print.c (pp_cxx_template_declaration): Remove
1909 effectively unused variable.
1910
1911 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1912
1913 * name-lookup.h (global_bindings_p): Adjust prototype.
1914 * name-lookup.c (global_bindings_p): Return bool.
1915
1916 2011-05-06 Jason Merrill <jason@redhat.com>
1917
1918 * decl.c (stabilize_save_expr_r): Set *walk_subtrees as
1919 appropriate.
1920
1921 PR c++/48909
1922 * semantics.c (cxx_eval_conditional_expression): Check
1923 integer_zerop instead.
1924 (potential_constant_expression_1): Likewise.
1925
1926 PR c++/48911
1927 * semantics.c (cxx_eval_array_reference): Handle implicit
1928 initializers.
1929
1930 2011-05-06 Nathan Froyd <froydnj@codesourcery.com>
1931
1932 * cp-tree.h (type_of_this_parm, class_of_this_parm): New functions.
1933 * call.c (standard_conversion): Call class_of_this_parm.
1934 * cxx-pretty-print.c (pp_cxx_implicit_parameter_type): Likewise.
1935 (pp_cxx_direct_abstract_declarator): Likewise.
1936 * decl2.c (change_return_type): Likewise.
1937 (cp_reconstruct_complex_type): Likewise.
1938 * error.c (dump_type_suffix, dump_function_decl): Likewise.
1939 * mangle.c (write_function_type): Likewise.
1940 * pt.c (unify): Likewise.
1941 * typeck.c (merge_types, type_memfn_quals): Likewise.
1942 * decl.c (build_this_parm): Call type_of_this_parm.
1943
1944 2011-05-06 Dodji Seketeli <dodji@redhat.com>
1945
1946 PR c++/48838
1947 * cp-tree.h (non_static_member_function_p): Declare new function.
1948 * tree.c (non_static_member_function_p): Define it.
1949 * semantics.c (finish_call_expr): Use it.
1950
1951 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
1952
1953 * decl.c (finish_case_label): Omit the loc argument to
1954 build_case_label.
1955
1956 2011-05-05 Jason Merrill <jason@redhat.com>
1957
1958 * cp-tree.h (REFERENCE_REF_P): Just check the type.
1959 * cvt.c (convert_from_reference): Adjust.
1960 * pt.c (build_non_dependent_expr): Adjust.
1961 * semantics.c (finish_offsetof): Adjust.
1962 * tree.c (lvalue_kind): Use it.
1963
1964 PR c++/48873
1965 * tree.c (stabilize_expr): Don't make gratuitous copies of classes.
1966
1967 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
1968
1969 * decl.c (start_preparsed_function): Do not set
1970 dont_save_pending_sizes_p.
1971
1972 2011-05-05 Joseph Myers <joseph@codesourcery.com>
1973
1974 * parser.c (cp_parser_objc_method_definition_list): Update call to
1975 objc_start_method_definition.
1976
1977 2011-05-04 Jason Merrill <jason@redhat.com>
1978
1979 PR c++/48749
1980 * class.c (resolves_to_fixed_type_p): Don't look closely
1981 in templates.
1982
1983 2011-05-03 Paolo Carlini <paolo.carlini@oracle.com>
1984
1985 PR c++/28501
1986 * call.c (add_builtin_candidate): Handle REALPART_EXPR and
1987 IMAGPART_EXPR.
1988
1989 2011-05-02 Lawrence Crowl <crowl@google.com>
1990
1991 * decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
1992 (poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
1993 Change TV_NAME_LOOKUP to start/stop.
1994 (define_label): Refactor timevar calls out to a wrapper function.
1995 Change TV_NAME_LOOKUP to start/stop.
1996 (xref_tag): Likewise.
1997 (lookup_label): Refactor timevar calls out to a wrapper function.
1998 Change TV_NAME_LOOKUP to start_cond/stop_cond.
1999
2000 * pt.c: (instantiate_class_template): Add a wrapper to push/pop new
2001 TV_TEMPLATE_INST.
2002 (instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
2003 (lookup_template_class): Refactor timevar calls out to a wrapper
2004 function. Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
2005 (instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.
2006
2007 * name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
2008 (poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
2009 (push_namespace): Likewise.
2010 (pop_nested_namespace): Likewise.
2011 (pushdecl_namespace_level): Likewise.
2012 (store_class_bindings): Likewise.
2013 (push_to_top_level): Likewise.
2014 (identifier_type_value): Refactor timevar calls out to a wrapper
2015 function. Change TV_NAME_LOOKUP to start/stop.
2016 (find_binding): Likewise.
2017 (push_using_decl): Likewise.
2018 (lookup_arg_dependent): Likewise.
2019 (push_using_directive): Likewise.
2020 (qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
2021 to plain code. Change TV_NAME_LOOKUP to start/stop.
2022 (lookup_type_current_level): Likewise. Refactor inner return to
2023 break.
2024 (pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
2025 code. Change TV_NAME_LOOKUP to start_cond/stop_cond.
2026 (pushdecl_top_level_1): Likewise.
2027 (lookup_using_namespace): Likewise.
2028 (pushdecl_with_scope): Refactor timevar calls out to a wrapper
2029 function. Change TV_NAME_LOOKUP to start_cond/stop_cond.
2030 (push_overloaded_decl): Likewise.
2031 (push_class_level_binding): Likewise.
2032 (namespace_binding): Likewise.
2033 (set_namespace_binding): Likewise.
2034 (supplement_binding): Likewise.
2035 (unqualified_namespace_lookup): Likewise.
2036 (lookup_name_real): Likewise.
2037 (lookup_type_scope): Likewise.
2038 (namespace_ancestor): Likewise.
2039 (lookup_name_innermost_nonclass_level): Likewise.
2040 (pushtag): Likewise.
2041 (pop_from_top_level): Likewise.
2042 (pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
2043 function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Wrap long
2044 lines.
2045 (add_using_namespace): Refactor timevar calls out to a wrapper
2046 function. Change TV_NAME_LOOKUP to start_cond/stop_cond. Bypass
2047 wrapper on call to self.
2048
2049 * decl2.c: (cp_write_global_declarations): Add start/stop of
2050 new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
2051 Remove push/pop calls to TV_VARCONST.
2052
2053 * parser.c: Add include of "timevar.h".
2054 (cp_parser_explicit_instantiation): Add push/pop calls to
2055 TV_TEMPLATE_INST.
2056 (cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
2057 (cp_parser_class_specifier): Add wrapper to add push/pop calls to
2058 TV_PARSE_STRUCT.
2059 (cp_parser_function_definition_from_specifiers_and_declarator): Add
2060 push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
2061 (cp_parser_late_parsing_for_member): Add push/pop calls to
2062 new TV_PARSE_INMETH.
2063
2064 * call.c: Add include of "timevar.h".
2065 (convert_class_to_reference): Wrap and add push/pop calls to
2066 TV_OVERLOAD.
2067 (build_op_call): Likewise.
2068 (build_conditional_expr): Likewise.
2069 (build_new_op): Likewise.
2070 (build_new_method_call): Likewise.
2071 (build_user_type_conversion): Reorganize to single return and add
2072 push/pop calls to TV_OVERLOAD.
2073 (perform_overload_resolution): Likewise.
2074
2075 * Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).
2076
2077 2011-05-02 Jason Merrill <jason@redhat.com>
2078
2079 * tree.c (build_vec_init_expr): Take complain parm.
2080 (build_vec_init_elt): Likewise. Free arg vector.
2081 (diagnose_non_constexpr_vec_init, build_array_copy): Adjust.
2082 * cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK.
2083 (VEC_INIT_EXPR_INIT): Likewise.
2084 Adjust build_vec_init_expr declaration.
2085 * init.c (perform_member_init): Adjust.
2086
2087 Revert:
2088 PR c++/40975
2089 * cp-tree.def (VEC_INIT_EXPR): Add third operand.
2090 * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
2091 * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
2092 * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
2093 (build_vec_init_elt): Don't expect an array type.
2094 (build_array_copy): Adjust.
2095 * init.c (perform_member_init): Adjust.
2096 (build_new_1): Use build_vec_init_expr.
2097
2098 PR c++/48834
2099 * tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS.
2100 Protect an explicit target.
2101
2102 PR c++/48446
2103 * decl.c (stabilize_save_expr_r, stabilize_vla_size): New.
2104 (compute_array_index_type): Revert earlier 48446 changes.
2105 (grokdeclarator): Use stabilize_vla_size.
2106
2107 2011-05-02 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
2108 Eric Botcazou <ebotcazou@adacore.com>
2109
2110 * parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE
2111 instead of inappropriate zero values.
2112
2113 2011-05-02 Paolo Carlini <paolo.carlini@oracle.com>
2114
2115 PR c++/47969
2116 * decl.c (compute_array_index_type): Check build_expr_type_conversion
2117 return value for NULL_TREE.
2118
2119 2011-04-29 Paolo Carlini <paolo.carlini@oracle.com>
2120
2121 PR c++/48606
2122 * init.c (perform_member_init): Check build_value_init return
2123 value for error_mark_node.
2124
2125 2011-04-29 Diego Novillo <dnovillo@google.com>
2126 Le-Chun Wu <lcwu@google.com>
2127
2128 * call.c (conversion_null_warnings): Also handle assignments
2129 when warning about NULL conversions.
2130
2131 2011-04-29 Le-Chun Wu <lcwu@google.com>
2132
2133 * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Define.
2134 * call.c (build_new_function_call): Set it for TEMPLATE_ID_EXPRs.
2135 (build_over_call): Use it to determine whether to emit a NULL
2136 warning for template function instantiations.
2137 (build_new_method_call): Set LOOKUP_EXPLICIT_TMPL_ARGS if
2138 EXPLICIT_TARGS is set.
2139
2140 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>,
2141 Mike Stump <mikestump@comcast.net>
2142
2143 * Make-lang.in ($(srcdir)/cp/cfns.h): Enable the dependency only
2144 in maintainer mode. Use the --output-file option of gperf instead
2145 of > to prevent creating an empty cp/cfns.h when gperf is not
2146 available.
2147
2148 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
2149
2150 PR c++/48798
2151 * semantics.c (finish_base_specifier): cv-qualified base class
2152 is fine, per DR 484.
2153
2154 2011-04-28 Dodji Seketeli <dodji@redhat.com>
2155
2156 PR c++/48656
2157 * semantics.c (finish_call_expr): Don't forget BASELINK nodes when
2158 considering call expressions involving a member function.
2159
2160 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
2161
2162 PR c++/48530
2163 * tree.c (build_cplus_new): Check build_target_expr return
2164 value for error_mark_node.
2165
2166 2011-04-28 Paolo Carlini <paolo.carlini@oracle.com>
2167
2168 PR c++/48771
2169 * semantics.c (literal_type_p): Reference types are literal types,
2170 per the FDIS.
2171 (valid_type_in_constexpr_fundecl_p): Remove.
2172 (is_valid_constexpr_fn): Adjust.
2173
2174 2011-04-27 Jason Merrill <jason@redhat.com>
2175
2176 PR libstdc++/48760
2177 Implement list-initialization of _Complex.
2178 * decl.c (reshape_init_r): Allow {real,imag} for _Complex.
2179 (check_initializer): Likewise.
2180 * call.c (build_complex_conv): New.
2181 (implicit_conversion): Call it.
2182 (convert_like_real): Handle it.
2183 * typeck2.c (check_narrowing): Handle it.
2184
2185 * init.c (build_vec_delete_1): Look for sfk_deleting_destructor to
2186 decide whether to delete.
2187 (build_vec_init): Pass sfk_complete_destructor.
2188
2189 PR c++/40975
2190 * cp-tree.def (VEC_INIT_EXPR): Add third operand.
2191 * cp-tree.h (VEC_INIT_EXPR_NELTS): New.
2192 * cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
2193 * tree.c (build_vec_init_expr): Handle getting pointer/nelts.
2194 (build_vec_init_elt): Don't expect an array type.
2195 (build_array_copy): Adjust.
2196 * init.c (perform_member_init): Adjust.
2197 (build_new_1): Use build_vec_init_expr.
2198
2199 * class.c (resolve_address_of_overloaded_function): Don't
2200 change OVERLOAD to TREE_LIST.
2201 * pt.c (print_candidates_1): Remove nonsensical assert.
2202
2203 PR c++/48046
2204 * parser.c (cp_parser_diagnose_invalid_type_name): Commit
2205 to tentative parse sooner.
2206
2207 2011-04-26 Jason Merrill <jason@redhat.com>
2208
2209 PR c++/42687
2210 * parser.c (cp_parser_primary_expression): Set *idk to
2211 CP_ID_KIND_NONE for a parenthesized identifier.
2212
2213 * ptree.c (cxx_print_type) [TYPENAME_TYPE]: Dump fullname.
2214 (cxx_print_identifier): Correct indentation.
2215
2216 PR c++/48530
2217 * decl.c (cxx_maybe_build_cleanup): Add complain parm.
2218 * tree.c (force_target_expr): Add complain parm.
2219 (build_target_expr_with_type): Likewise.
2220 (get_target_expr_sfinae): Split out.
2221 (build_vec_init_expr, bot_manip): Adjust.
2222 * init.c (build_vec_delete, build_vec_delete_1): Add complain parm.
2223 (build_delete, build_dtor_call): Likewise.
2224 (perform_direct_initialization_if_possible): Adjust.
2225 (build_vec_init): Handle error return.
2226 * cvt.c (force_rvalue): Add complain parm.
2227 Call build_special_member_call directly.
2228 * decl2.c (delete_sanity): Add complain parm.
2229 (build_cleanup): Adjust.
2230 * pt.c (tsubst_copy_and_build, tsubst_expr): Adjust.
2231 * semantics.c (finish_stmt_expr_expr): Adjust.
2232 (finish_compound_literal): Adjust.
2233 * parser.c (cp_parser_delete_expression): Adjust.
2234 * typeck2.c (build_functional_cast): Adjust.
2235 * cp-tree.h: Adjust.
2236
2237 2011-04-26 Martin Jambor <mjambor@suse.cz>
2238
2239 * class.c (cp_fold_obj_type_ref): Remove.
2240 * cp-tree.h (cp_fold_obj_type_ref): Remove declaration.
2241
2242 2011-04-25 Paolo Carlini <paolo.carlini@oracle.com>
2243
2244 * cp-tree.def: Add a new UNDERLYING_TYPE tree code.
2245 * cp-tree.h (enum cp_trait_kind): Add CPTK_UNDERLYING_TYPE, tidy.
2246 (UNDERLYING_TYPE_TYPE): Add.
2247 * cp-objcp-common.c (cp_common_init_ts): Mark UNDERLYING_TYPE
2248 as TS_COMMON.
2249 * parser.c (cp_lexer_next_token_is_decl_specifier_keyword,
2250 cp_parser_simple_type_specifier): Handle UNDERLYING_TYPE.
2251 (cp_parser_trait_expr): Deal with RID_UNDERLYING_TYPE; tidy.
2252 * semantics.c (finish_underlying_type): New.
2253 * typeck.c (structural_comptypes): Handle UNDERLYING_TYPE.
2254 * error.c (dump_type, dump_type_prefix, dump_type_suffix): Likewise.
2255 * cxx-pretty-print.c (p_cxx_type_id): Likewise.
2256 * tree.c (cp_walk_subtrees): Likewise.
2257 * pt.c (for_each_template_parm_r, tsubst, unify,
2258 dependent_type_p_r): Likewise.
2259 * mangle.c (write_type): Sorry for __underlying_type.
2260
2261 2011-04-25 Jason Merrill <jason@redhat.com>
2262
2263 PR c++/48707
2264 * decl.c (type_dependent_init_p): New.
2265 (cp_finish_decl): Check it.
2266 * pt.c (any_type_dependent_elements_p): New.
2267 * cp-tree.h: Declare it.
2268
2269 2011-04-20 Jason Merrill <jason@redhat.com>
2270
2271 * semantics.c (finish_compound_literal): Don't put an array
2272 with a dtor in a static variable.
2273
2274 * call.c (build_over_call): Handle trivial dtor.
2275
2276 * search.c (lookup_fnfields_slot): Call complete_type.
2277
2278 PR c++/48594
2279 * decl2.c (build_offset_ref_call_from_tree): Move
2280 non-dependency of object outside condition.
2281
2282 PR c++/48657
2283 * decl.c (cp_finish_decl): Simplify template handling.
2284
2285 2011-04-20 Jim Meyering <meyering@redhat.com>
2286
2287 * tree.c (cxx_printable_name_internal): Remove useless if-before-free.
2288
2289 2011-04-19 Jason Merrill <jason@redhat.com>
2290
2291 PR c++/46304
2292 * typeck.c (cp_build_binary_op): Fold COMPLEX_EXPR.
2293
2294 PR c++/45267
2295 * decl.c (duplicate_decls): Keep always_inline attribute
2296 in sync with DECL_DISREGARD_INLINE_LIMITS.
2297
2298 2011-04-18 Jason Merrill <jason@redhat.com>
2299
2300 PR c++/48569
2301 * typeck2.c (build_functional_cast): Handle VOID_TYPE.
2302
2303 PR c++/48537
2304 * init.c (build_value_init): Handle UNION_TYPE the same.
2305
2306 2011-04-18 Jakub Jelinek <jakub@redhat.com>
2307
2308 PR c++/48632
2309 * parser.c (cp_parser_omp_for_loop): Don't use cp_parser_omp_for_incr
2310 for type dependent pointers.
2311
2312 2011-04-18 Jim Meyering <meyering@redhat.com>
2313
2314 * pt.c (type_unification_real): Fix typo in comment: s/in in/in/.
2315
2316 2011-04-17 Jan Hubicka <jh@suse.cz>
2317
2318 * semantics.c (finish_goto_stmt): Do set UNINLINABLE flag on computed
2319 gotos.
2320
2321 2011-04-17 Jason Merrill <jason@redhat.com>
2322
2323 PR c++/48531
2324 * typeck2.c (build_functional_cast): Disallow array type.
2325
2326 * tree.c (get_target_expr): Handle VEC_INIT_EXPR.
2327
2328 2011-04-17 Jan Hubicka <jh@suse.cz>
2329
2330 * class.c (cp_fold_obj_type_ref): Drop vtable_method.
2331
2332 2011-04-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
2333
2334 Implement N3271
2335 * parser.c (cp_convert_range_for): Split into
2336 cp_parser_perform_range_for_lookup.
2337 (cp_parser_perform_range_for_lookup): New.
2338 (cp_parser_range_for_member_function): New.
2339 (cp_parser_for_init_statement): Correct error message.
2340 * semantics.c (finish_call_expr): Accept COMPONENT_REF.
2341
2342 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2343
2344 * parser.c (cp_parser_objc_protocol_declaration): Updated for
2345 change from objc_declare_protocols() to objc_declare_protocol().
2346
2347 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2348
2349 PR objc++/48479
2350 * typeck.c (cxx_mark_addressable) [CONST_DECL]: Mark addressable
2351 and return immediately.
2352
2353 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2354
2355 * cp-tree.def (SWITCH_STMT): Add an extra operand.
2356 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
2357 * cp-tree.h (SWITCH_STMT_SCOPE): Define.
2358 * semantics.c (begin_switch__stmt): Pass scope to build_stmt.
2359 (finish_switch_stmt): Use SWITCH_STMT_SCOPE instead of TREE_CHAIN.
2360
2361 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2362
2363 * cp-tree.def (IF_STMT): Add an extra operand.
2364 * cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
2365 * cp-tree.h (IF_SCOPE): Define.
2366 * semantics.c (begin_if_stmt): Pass scope to build_stmt.
2367 (finish_if_stmt): Use IF_SCOPE instead of TREE_CHAIN.
2368
2369 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2370
2371 * cp-tree.def (FOR_STMT, RANGE_FOR_STMT): Add an extra operand.
2372 * cp-objcp-common.c (cp_common_init_ts): Mark them as TS_TYPED.
2373 * cp-tree.h (FOR_SCOPE, RANGE_FOR_SCOPE): Define.
2374 * semantics.c (begin_for_stmt): Pass an extra arg to build_stmt.
2375 Use FOR_SCOPE instead of TREE_CHAIN.
2376 (begin_range_for_stmt): Likewise, with RANGE_FOR_SCOPE.
2377 (finish_for_stmt): Likewise.
2378
2379 2011-04-14 Jason Merrill <jason@redhat.com>
2380
2381 * parser.c (cp_parser_postfix_expression): Fix flags passed to
2382 build_new_method_call.
2383 * semantics.c (finish_call_expr): Likewise.
2384
2385 PR c++/48531
2386 * init.c (build_value_init_noctor): Check complain consistently.
2387
2388 PR c++/48557
2389 * typeck.c (cp_build_binary_op): Don't decay void operands.
2390
2391 PR c++/48446
2392 * decl.c (compute_array_index_type): Use get_temp_regvar instead
2393 of variable_size.
2394 * init.c (get_temp_regvar): No longer static.
2395 * cp-tree.h: Declare it.
2396
2397 2011-04-14 Nicola Pero <nicola.pero@meta-innovation.com>
2398
2399 * parser.c (cp_parser_objc_class_declaration): Updated for change
2400 in objc_declare_class().
2401
2402 2011-04-14 Nathan Froyd <froydnj@codesourcery.com>
2403
2404 * decl.c (poplevel): Use block_chainon.
2405
2406 2011-04-13 Jason Merrill <jason@redhat.com>
2407
2408 PR c++/48594
2409 * decl2.c (build_offset_ref_call_from_tree): Fix calling a functor
2410 or pointer to (non-member) function.
2411
2412 2011-04-13 Jakub Jelinek <jakub@redhat.com>
2413
2414 PR c++/48570
2415 * semantics.c (cxx_eval_array_reference): Handle reading from
2416 wchar_t, char16_t and char32_t STRING_CST.
2417
2418 2011-04-13 Dodji Seketeli <dodji@redhat.com>
2419
2420 PR c++/48574
2421 * class.c (fixed_type_or_null): We cannot determine the dynamic
2422 type of a reference variable if its initializer is dependent.
2423
2424 2011-04-13 Jason Merrill <jason@redhat.com>
2425
2426 PR c++/48581
2427 * pt.c (tsubst_copy_and_build) [CALL_EXPR]: Don't complain about
2428 unqualified lookup failing if we're still in a template.
2429
2430 2011-04-12 Nathan Froyd <froydnj@codesourcery.com>
2431
2432 * cp-lang.c (cp_init_ts): Call cp_common_init_ts. Move
2433 tree_contains_struct initialization to...
2434 * cp-objcp-common.c (cp_common_init_ts): ...here. Use MARK_*
2435 macros.
2436 * cp-objcp-common.h (cp_common_init_ts): Declare.
2437 * cp-tree.h (union lang_tree_node): Check for TS_COMMON before
2438 calling TREE_CHAIN.
2439
2440 2011-04-12 Nicola Pero <nicola.pero@meta-innovation.com>
2441
2442 * parser.c (cp_parser_objc_message_expression): Updated call
2443 to objc_build_message_expr.
2444
2445 2011-04-12 Martin Jambor <mjambor@suse.cz>
2446
2447 * class.c (cp_fold_obj_type_ref): Call cgraph_get_node instead of
2448 cgraph_get_create_node.
2449 * decl2.c (cp_write_global_declarations): Call cgraph_get_node
2450 instead of cgraph_get_create_node.
2451 * method.c (make_alias_for_thunk): Call cgraph_get_node
2452 instead of cgraph_get_create_node, assert it returns non-NULL.
2453 (use_thunk): Likewise.
2454 * optimize.c (maybe_clone_body): Call cgraph_same_body_alias only
2455 when flag_syntax_only is not set. Call cgraph_get_node instead of
2456 cgraph_get_create_node.
2457 (maybe_clone_body): Call cgraph_get_node instead of
2458 cgraph_get_create_node.
2459
2460 2011-04-12 Martin Jambor <mjambor@suse.cz>
2461
2462 * class.c (cp_fold_obj_type_ref): Call cgraph_get_create_node
2463 instead of cgraph_node.
2464 * decl2.c (cxx_callgraph_analyze_expr): Likewise.
2465 (cp_write_global_declarations): Likewise.
2466 * optimize.c (maybe_clone_body): Likewise.
2467 * semantics.c (maybe_add_lambda_conv_op): Likewise.
2468 * mangle.c (mangle_decl): Likewise.
2469 * method.c (make_alias_for_thunk): Likewise.
2470 (use_thunk): Likewise.
2471
2472 2011-04-11 Jason Merrill <jason@redhat.com>
2473
2474 PR c++/48535
2475 * decl.c (cp_complete_array_type_or_error): New.
2476 * semantics.c (finish_compound_literal): Use it.
2477 * cp-tree.h: Declare it.
2478
2479 PR c++/48535
2480 * semantics.c (finish_compound_literal): Handle references.
2481
2482 PR c++/48535
2483 * semantics.c (finish_compound_literal): Take complain parm.
2484 (build_lambda_object): Adjust.
2485 * cp-tree.h: Adjust.
2486 * call.c (convert_like_real): Adjust.
2487 * decl.c (check_initializer): Adjust.
2488 * parser.c (cp_parser_postfix_expression): Adjust.
2489 (cp_parser_functional_cast): Adjust.
2490 * pt.c (tsubst_copy_and_build): Adjust.
2491 * typeck2.c (process_init_constructor_record): Adjust.
2492
2493 PR c++/48534
2494 * cvt.c (ocp_convert): Use build_nop to convert to underlying type
2495 of scoped enum.
2496
2497 PR c++/48523
2498 * tree.c (maybe_dummy_object): Use build_x_indirect_ref rather
2499 than cp_build_indirect_ref.
2500
2501 PR c++/48457, Core 1238
2502 * call.c (reference_binding): Allow rvalue reference to bind to
2503 function lvalue.
2504 * tree.c (lvalue_kind): Functions are always lvalues.
2505
2506 2011-04-07 Jason Merrill <jason@redhat.com>
2507
2508 PR c++/48500
2509 * semantics.c (potential_constant_expression_1) [CALL_EXPR]: Check
2510 arguments even if we don't know the function.
2511
2512 PR c++/48481
2513 * tree.c (build_overload): Allow an unwrapped FUNCTION_DECL
2514 at the end of the chain.
2515 * pt.c (dependent_template_p): Use OVL_CURRENT/NEXT.
2516 (iterative_hash_template_arg): Likewise.
2517
2518 PR c++/48481
2519 * cp-tree.h (OVL_ARG_DEPENDENT): New.
2520 * name-lookup.c (add_function): Set it.
2521 * semantics.c (finish_call_expr): Free OVERLOADs if it's set.
2522
2523 PR c++/48481
2524 * call.c (build_user_type_conversion_1): Use lookup_fnfields_slot.
2525 Release unused vector.
2526
2527 PR c++/48451
2528 * pt.c (fn_type_unification): Don't clear incomplete pack flag.
2529 (type_unification_real): Clear it here instead.
2530
2531 PR c++/48468
2532 * except.c (build_noexcept_spec): Propagate error_mark_node.
2533 (finish_noexcept_expr): Likewise.
2534
2535 PR c++/48452
2536 * typeck.c (build_x_compound_expr_from_list): Return error_mark_node
2537 in SFINAE context.
2538
2539 PR c++/48450
2540 * call.c (resolve_args): Take complain.
2541 (build_new_function_call, build_operator_new_call): Pass it.
2542 (build_op_call, build_new_op, build_new_method_call): Pass it.
2543
2544 PR c++/48450
2545 * typeck.c (check_for_casting_away_constness): Take complain.
2546 (build_static_cast_1, build_reinterpret_cast_1): Pass it.
2547 (build_const_cast_1): Pass it. Take full complain parm.
2548 (build_const_cast, cp_build_c_cast): Adjust.
2549
2550 * tree.c (build_aggr_init_expr): Always return error_mark_node
2551 on abstract violation.
2552
2553 PR c++/48450
2554 * tree.c (build_cplus_new, build_aggr_init_expr): Take complain.
2555 (bot_manip): Adjust.
2556 * cp-tree.h: Adjust.
2557 * call.c (convert_like_real, build_cxx_call): Adjust.
2558 (perform_direct_initialization_if_possible): Adjust.
2559 * cvt.c (ocp_convert): Adjust.
2560 * init.c (build_value_init): Adjust.
2561 * semantics.c (maybe_add_lambda_conv_op): Adjust.
2562 * typeck.c (unary_complex_lvalue, cp_build_modify_expr): Adjust.
2563 * typeck2.c (build_functional_cast): Adjust.
2564
2565 * init.c (build_value_init_noctor): Handle REFERENCE_TYPE at top
2566 level.
2567 (perform_member_init): Not here.
2568 * typeck2.c (build_functional_cast): Limit REFERENCE_TYPE special
2569 case to templates.
2570 (abstract_virtuals_error_sfinae): Remove RESULT_DECL special case.
2571
2572 PR c++/48449
2573 * typeck2.c (build_functional_cast): Check complain consistently.
2574 Use build_value_init and abstract_virtuals_error_sfinae.
2575 (abstract_virtuals_error_sfinae): Split out.
2576 * cp-tree.h: Declare it.
2577 * init.c (build_new_1): Use it.
2578 (build_value_init_noctor): Handle FUNCTION_TYPE.
2579
2580 * semantics.c (finish_decltype_type): Simplify handling of unknown
2581 type.
2582
2583 * semantics.c (finish_decltype_type): Add complain parm.
2584 * cp-tree.h: Adjust.
2585 * parser.c (cp_parser_decltype): Adjust.
2586 * pt.c (tsubst): Adjust.
2587
2588 PR c++/48450
2589 * cvt.c (ocp_convert): Handle converting scoped enum to bool.
2590
2591 2011-03-31 Jason Merrill <jason@redhat.com>
2592
2593 PR c++/48277
2594 * semantics.c (finish_call_expr): Remove assert.
2595
2596 PR c++/48280
2597 * method.c (defaultable_fn_check): Templates are not defaultable.
2598
2599 * parser.c (cp_parser_init_declarator): Avoid redundant
2600 cp_finish_decl for member declarations.
2601
2602 2011-03-30 Jason Merrill <jason@redhat.com>
2603
2604 PR c++/48212
2605 * semantics.c (non_const_var_error): Just return if DECL_INITIAL
2606 is error_mark_node.
2607
2608 2011-03-30 Jason Merrill <jason@redhat.com>
2609
2610 PR c++/48369
2611 * semantics.c (potential_constant_expression_1): Handle
2612 UNORDERED_EXPR and ORDERED_EXPR.
2613
2614 PR c++/48281
2615 * semantics.c (finish_compound_literal): Do put static/constant
2616 arrays in static variables.
2617
2618 * call.c (convert_like_real) [ck_list]: Build up the
2619 initializer_list object directly.
2620 * decl.c (build_init_list_var_init): Adjust.
2621
2622 * call.c (convert_like_real): Correct TREE_CONSTANT on CONSTRUCTOR.
2623 * decl.c (reshape_init_array_1): Likewise.
2624
2625 2011-03-29 Jason Merrill <jason@redhat.com>
2626
2627 PR c++/48265
2628 * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
2629 the variable is constant before looking at its initializer.
2630
2631 PR c++/48319
2632 * pt.c (value_dependent_expression_p): Handle TEMPLATE_ID_EXPR.
2633
2634 PR c++/48089
2635 * semantics.c (potential_constant_expression_1): Change error about
2636 use of *this in constructor into sorry.
2637
2638 PR c++/48296
2639 * decl.c (cp_finish_decl): Defer validation of constexpr member
2640 functions.
2641 * class.c (finalize_literal_type_property): Validate them here.
2642 * semantics.c (is_valid_constexpr_fn): Don't check completeness.
2643
2644 * semantics.c (is_valid_constexpr_fn): Specify input location.
2645
2646 2011-03-28 Jason Merrill <jason@redhat.com>
2647
2648 PR c++/48313
2649 * pt.c (maybe_adjust_types_for_deduction): Handle T&& deduction
2650 from overloaded function.
2651
2652 Core 1232
2653 * call.c (build_array_conv): New.
2654 (implicit_conversion): Use it.
2655
2656 * call.c (reference_binding): Allow direct binding to an array
2657 rvalue.
2658
2659 Core 898
2660 * parser.c (cp_parser_compound_statement): Add function_body parm.
2661 Complain about non-body compound-stmt in constexpr fn.
2662 (cp_parser_primary_expression, cp_parser_statement): Adjust.
2663 (cp_parser_implicitly_scoped_statement): Adjust.
2664 (cp_parser_function_body, cp_parser_try_block): Adjust.
2665 (cp_parser_handler, cp_parser_objc_synchronized_statement): Adjust.
2666 (cp_parser_objc_try_catch_finally_statement): Adjust.
2667
2668 Core 898
2669 * semantics.c (constexpr_fn_retval): New. Allow using-declaration
2670 and using-definition.
2671 (register_constexpr_fundef): Call it.
2672
2673 * except.c (build_noexcept_spec): Call cxx_constant_value after
2674 converting to bool.
2675
2676 2011-03-25 Kai Tietz <ktietz@redhat.com>
2677
2678 * lex.c (interface_strcmp): Handle dos-paths.
2679 (handle_pragma_implementation): Use filename_cmp instead of
2680 strcmp.
2681 (in_main_input_context): Likewise.
2682
2683 2011-03-25 Jason Merrill <jason@redhat.com>
2684
2685 Core 1135
2686 * method.c (defaulted_late_check): Check for exception spec mismatch.
2687 (defaultable_fn_check): Allow exception spec and virtual.
2688 * class.c (check_for_override): A virtual dtor is non-trivial.
2689
2690 PR c++/48289
2691 * pt.c (build_non_dependent_expr): Keep dereferences outside the
2692 NON_DEPENDENT_EXPR.
2693
2694 2011-03-25 Kai Tietz <ktietz@redhat.com>
2695
2696 * decl.c (decls_match): Replace target hook
2697 call of comp_type_attributes by version in tree.c file.
2698 * search.c (check_final_overrider): Likewise.
2699 * typeck.c (structural_comptypes): Likewise.
2700
2701 2011-03-21 Kai Tietz <ktietz@redhat.com>
2702
2703 PR target/12171
2704 * cxx-pretty-print.c (pp_cxx_ptr_operator):
2705 Display allowed attributes for function pointer types.
2706 * error.c (dump_type_prefix): Likewise.
2707
2708 * tree.c (cxx_attribute_table): Adjust table.
2709
2710 2011-03-18 Jason Merrill <jason@redhat.com>
2711
2712 PR c++/48162
2713 * semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
2714
2715 PR c++/48118
2716 * call.c (build_over_call): Don't skip ck_rvalue.
2717
2718 2011-03-17 Jason Merrill <jason@redhat.com>
2719
2720 PR c++/47504
2721 * semantics.c (cxx_eval_constant_expression) [NOP_EXPR]: Don't let
2722 the conversion set TREE_OVERFLOW.
2723
2724 Core 1212
2725 * semantics.c (finish_decltype_type): Return T&& for xvalue.
2726 * typeck.c (unlowered_expr_type): Preserve cv-quals.
2727
2728 PR c++/48166
2729 * decl.c (revert_static_member_fn): Strip function-cv-quals.
2730
2731 2011-03-16 Jason Merrill <jason@redhat.com>
2732
2733 PR c++/48089
2734 * semantics.c (potential_constant_expression_1): Don't allow *this
2735 in a constructor.
2736 (register_constexpr_fundef): Use potential_rvalue_constant_expression.
2737
2738 PR c++/47301
2739 * decl.c (compute_array_index_type): Don't bother trying to deal
2740 with literal classes in ABI v1.
2741
2742 PR c++/46336
2743 * decl.c (duplicate_decls): Return NULL_TREE for clashing
2744 C functions.
2745
2746 PR c++/47570
2747 * semantics.c (cxx_eval_constant_expression) [COMPOUND_EXPR]: Don't
2748 use the generic binary expression handling.
2749
2750 2011-03-16 Diego Novillo <dnovillo@google.com>
2751
2752 * Make-lang.in (CXX_PARSER_H): New.
2753 (cp/parser.o): Add dependency on CXX_PARSER_H.
2754 Add dependency on tree-pretty-print.h
2755 (cp/cp-lang.o): Add dependency on CXX_PARSER_H.
2756 * cp-lang.c: Include parser.h.
2757 * parser.c: Include parser.h.
2758 (struct cp_token): Add bitfield purged_p.
2759 Update all users.
2760 Move to parser.h.
2761 (CPP_PURGED): Remove. Update all users.
2762 (struct cp_lexer): Change field buffer to be a VEC of cp_token.
2763 Remove field buffer_length.
2764 Update all users.
2765 Move to parser.h.
2766 (struct tree_check): Move to parser.h.
2767 (cp_token_position): Likewise.
2768 (struct cp_token_cache): Likewise.
2769 (CPP_KEYWORD): Likewise.
2770 (CPP_TEMPLATE_ID): Likewise.
2771 (CPP_NESTED_NAME_SPECIFIER): Likewise.
2772 (N_CP_TTYPES): Likewise.
2773 (enum cp_parser_status_kind): Likewise.
2774 (struct cp_parser_context): Likewise.
2775 (struct cp_default_arg_entry_d): Likewise.
2776 (struct cp_unparsed_functions_entry_d): Likewise.
2777 (struct cp_parser): Likewise.
2778 (cp_lexer_dump_tokens): New.
2779 (cp_lexer_debug_tokens): New.
2780 (cp_lexer_finished_p): New.
2781 (cp_lexer_alloc): Factor out of cp_lexer_new_main.
2782 (cp_lexer_new_main): Re-write main lexing loop to push
2783 tokens into the new VEC buffer.
2784 (cp_lexer_print_token): Improve printing of CPP_NUMBER tokens.
2785 Do not abort if the token type is not recognized, just print
2786 its code.
2787 * parser.h: New file.
2788 * config-lang.in (gtfiles): Add cp/parser.h.
2789
2790 2011-03-16 Jason Merrill <jason@redhat.com>
2791
2792 Core 1148
2793 * typeck.c (check_return_expr): Fix conditions for setting
2794 LOOKUP_PREFER_RVALUE.
2795
2796 * call.c (build_over_call): Remove require_complete_type_sfinae call.
2797
2798 PR c++/48132
2799 * decl.c (check_array_designated_initializer): Allow integer index.
2800 (reshape_init_array_1): Set index on the elements.
2801
2802 2011-03-16 Jason Merrill <jason@redhat.com>
2803
2804 PR c++/48113
2805 * typeck.c (convert_for_initialization): Use
2806 perform_implicit_conversion_flags.
2807 * call.c (standard_conversion): If LOOKUP_PREFER_RVALUE, set
2808 rvaluedness_matches_p on ck_rvalue.
2809 (convert_like_real) [ck_rvalue]: And restore it here.
2810
2811 PR c++/48115
2812 * call.c (convert_arg_to_ellipsis): Handle incomplete type.
2813
2814 2011-03-16 Jason Merrill <jason@redhat.com>
2815
2816 * parser.c (cp_parser_abort_tentative_parse): Make sure we haven't
2817 committed to this tentative parse.
2818
2819 PR c++/47999
2820 * semantics.c (finish_call_expr): Preserve reference semantics
2821 in templates.
2822
2823 * call.c (convert_default_arg): Use LOOKUP_IMPLICIT.
2824
2825 2011-03-16 Jakub Jelinek <jakub@redhat.com>
2826
2827 * cp-objcp-common.c (cp_function_decl_explicit_p): Don't crash if
2828 DECL_LANG_SPECIFIC is NULL.
2829
2830 2011-03-15 Jason Merrill <jason@redhat.com>
2831
2832 Core 1074
2833 * pt.c (value_dependent_expression_p) [NOEXCEPT_EXPR]: Don't
2834 check value_dependent_expression_p on the operand.
2835
2836 * semantics.c (push_cx_call_context): Return bool.
2837 (cxx_eval_call_expression): Handle excess depth.
2838
2839 Core 1191
2840 * method.c (synthesized_method_walk): Cleanups don't affect the
2841 triviality of a constructor, but do affect deletion and exception
2842 specification.
2843
2844 2011-03-15 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
2845
2846 * decl2.c (cp_check_const_attributes): New.
2847 (cplus_decl_attributes): Call cp_check_const_attributes.
2848
2849 2011-03-15 Jason Merrill <jason@redhat.com>
2850
2851 PR c++/34758
2852 * call.c (convert_default_arg): Use DECL_ORIGIN of fn. Check for
2853 recursion first.
2854 (push_defarg_context, pop_defarg_context): New.
2855 * parser.c (cp_parser_late_parsing_default_args): Use them.
2856 * cp-tree.h: Declare them.
2857
2858 2011-03-11 Dodji Seketeli <dodji@redhat.com>
2859
2860 * call.c (add_builtin_candidate)<case INDIRECT_REF>: The type of
2861 the argument of the indirection operator should not be dependent.
2862 Fix the comment.
2863
2864 2011-03-11 Jason Merrill <jason@redhat.com>
2865
2866 PR c++/47125
2867 * pt.c (tsubst) [TYPENAME_TYPE]: Only give errors if tf_error.
2868
2869 PR c++/47144
2870 * parser.c (cp_parser_template_type_arg): Set
2871 type_definition_forbidden_message.
2872
2873 PR c++/47808
2874 * decl.c (compute_array_index_type): Discard folding
2875 if it didn't produce a constant.
2876
2877 2011-03-11 Jakub Jelinek <jakub@redhat.com>
2878
2879 PR c++/48035
2880 * init.c (build_zero_init_1): Extracted from build_zero_init.
2881 Add FIELD_SIZE argument, if non-NULL and field bit_position
2882 as not smaller than that, don't add that field's initializer.
2883 Pass DECL_SIZE as last argument to build_zero_init_1
2884 for DECL_FIELD_IS_BASE fields.
2885 (build_zero_init): Use build_zero_init_1.
2886
2887 2011-03-10 Jason Merrill <jason@redhat.com>
2888
2889 PR c++/48029
2890 * pt.c (iterative_hash_template_arg): Remove special case for
2891 ARRAY_TYPE.
2892
2893 PR c++/47198
2894 * parser.c (cp_parser_single_declaration): Just return if
2895 cp_parser_parse_and_diagnose_invalid_type_name complained.
2896
2897 2011-03-09 Jason Merrill <jason@redhat.com>
2898
2899 PR c++/44629
2900 * pt.c (unify): An unresolved overload is a nondeduced context.
2901
2902 2011-03-09 Martin Jambor <mjambor@suse.cz>
2903
2904 PR tree-optimization/47714
2905 * method.c (use_thunk): Clear addressable flag of thunk arguments.
2906
2907 2011-03-08 Dodji Seketeli <dodji@redhat.com>
2908
2909 PR c++/47705
2910 * pt.c (convert_nontype_argument): Only call decay_conversion on
2911 arrays.
2912
2913 2011-03-08 Jason Merrill <jason@redhat.com>
2914
2915 PR c++/47488
2916 * mangle.c (write_template_arg_literal) [STRING_CST]: Sorry.
2917
2918 PR c++/47705
2919 * pt.c (convert_nontype_argument): Don't crash on non-pointer
2920 argument to pointer parameter.
2921
2922 PR c++/45651
2923 * pt.c (instantiate_decl): Don't clear DECL_INTERFACE_KNOWN on
2924 !TREE_PUBLIC decls.
2925
2926 2011-03-08 Dodji Seketeli <dodji@redhat.com>
2927
2928 PR c++/47957
2929 * name-lookup.c (binding_to_template_parms_of_scope_p): Only
2930 consider scopes of primary template definitions. Adjust comments.
2931
2932 2011-03-07 Jason Merrill <jason@redhat.com>
2933
2934 PR c++/48003
2935 * pt.c (convert_nontype_argument): Fix -fpermissive allowing
2936 integer overflow.
2937 * semantics.c (potential_constant_expression_1): Check TREE_OVERFLOW.
2938
2939 PR c++/48015
2940 * init.c (constant_value_1): Always require init to be TREE_CONSTANT.
2941
2942 PR c++/48008
2943 * mangle.c (write_type): Strip cv-quals from FUNCTION_TYPE here.
2944 (write_CV_qualifiers_for_type): Not here.
2945
2946 2011-03-06 Joseph Myers <joseph@codesourcery.com>
2947
2948 * lang-specs.h: Match -save-temps* instead of -save-temps.
2949
2950 2011-03-05 Jason Merrill <jason@redhat.com>
2951
2952 * mangle.c (write_expression): Change ABI v6 to v5.
2953 (write_type): Likewise.
2954
2955 2011-03-04 Jan Hubicka <jh@suse.cz>
2956
2957 PR lto/47497
2958 * optimize.c (maybe_clone_body): Update call of cgraph_same_body_alias
2959 and cgraph_add_thunk.
2960 * method.c (make_alias_for_thunk, use_thunk): Likewise.
2961 * mangle.c (mangle_decl): Likewise.
2962
2963 2011-03-04 Jason Merrill <jason@redhat.com>
2964
2965 PR c++/47971
2966 * pt.c (tsubst_copy_and_build) [PSEUDO_DTOR_EXPR]: Use tsubst for type.
2967 (tsubst_copy) [default]: Just return t if !ENABLE_CHECKING.
2968
2969 PR c++/46220
2970 * search.c (check_final_overrider): Allow pointer to same incomplete
2971 class type with different cv-quals.
2972
2973 2011-03-03 Paolo Carlini <paolo.carlini@oracle.com>
2974
2975 PR c++/47974
2976 * pt.c (tsubst_template_args): Check argument t for error_mark_node.
2977
2978 2011-03-03 Jason Merrill <jason@redhat.com>
2979
2980 PR c++/47950
2981 * pt.c (tsubst_copy_and_build) [TARGET_EXPR]: Retain TREE_CONSTANT.
2982
2983 2011-03-02 Jason Merrill <jason@redhat.com>
2984
2985 PR c++/47950
2986 * parser.c (cp_parser_condition): Don't fold_non_dependent_expr here.
2987
2988 PR c++/47774
2989 * tree.c (build_vec_init_elt): Split out from...
2990 (build_vec_init_expr): ...here.
2991 (diagnose_non_constexpr_vec_init): New fn.
2992 * semantics.c (potential_constant_expression_1): Use it.
2993 * cp-tree.h: Declare it.
2994
2995 2011-03-01 Jason Merrill <jason@redhat.com>
2996
2997 PR c++/46159
2998 * parser.c (cp_parser_primary_expression): Don't warn about a
2999 failed tentative parse.
3000
3001 PR c++/47200
3002 * semantics.c (cxx_bind_parameters_in_call): Don't call
3003 adjust_temp_type on non-constant args.
3004
3005 PR c++/47851
3006 * call.c (standard_conversion): Provide requested cv-quals on
3007 class rvalue conversion.
3008
3009 PR c++/46282
3010 * decl2.c (grokbitfield): Handle type-dependent width.
3011
3012 2011-02-28 Jason Merrill <jason@redhat.com>
3013
3014 PR c++/47873
3015 * class.c (update_vtable_entry_for_fn): Check BINFO_LOST_PRIMARY_P
3016 after checking for a non-thunk.
3017
3018 2011-02-26 Jason Merrill <jason@redhat.com>
3019
3020 PR c++/47904
3021 * tree.c (cp_tree_equal): Compare DECL_PARM_LEVEL.
3022 * pt.c (iterative_hash_template_arg): And hash it.
3023
3024 PR c++/47897
3025 * semantics.c (non_const_var_error): Split out from...
3026 (cxx_eval_constant_expression): ...here.
3027 (potential_constant_expression_1) [VAR_DECL]: Use it.
3028 Allow dependent variables.
3029
3030 2011-02-24 Jason Merrill <jason@redhat.com>
3031
3032 * parser.c (cp_parser_constant_expression): Set
3033 non_integral_constant_expression correctly for C++0x too.
3034 (cp_parser_static_assert): Allow non-constant expression.
3035 (cp_parser_direct_declarator): Expect non_constant_p to be set
3036 properly for C++0x.
3037 * pt.c (value_dependent_expression_p): Handle TYPEID_EXPR.
3038 * semantics.c (maybe_constant_value): Check type_unknown_p too.
3039 (potential_rvalue_constant_expression): New.
3040 (require_potential_rvalue_constant_expression): New.
3041
3042 2011-02-23 Jason Merrill <jason@redhat.com>
3043
3044 * cp-tree.h (DECL_PARM_LEVEL): New.
3045 (struct lang_decl_parm): Add level field.
3046 * name-lookup.c (function_parm_depth): New fn.
3047 * name-lookup.h: Declare it.
3048 * parser.c (cp_parser_parameter_declaration_list): Use it.
3049 * mangle.c (struct globals): Add parm_depth field.
3050 (write_bare_function_type): Adjust it.
3051 (write_expression): Include the level delta in PARM_DECL mangling
3052 for abi >= 6.
3053
3054 * semantics.c (finish_decltype_type): Remove shortcut for decltype
3055 of id-expression.
3056 * mangle.c (write_type) [DECLTYPE_TYPE]: Strip it here for abi < 6.
3057
3058 2011-02-23 Nathan Froyd <froydnj@codesourcery.com>
3059
3060 PR c++/46868
3061 * parser.c (cp_parser_class_specifier): Require a closing brace
3062 to attempt error recovery.
3063
3064 2011-02-23 Jakub Jelinek <jakub@redhat.com>
3065
3066 PR c++/47833
3067 * pt.c (struct pending_template): Add chain_next GTY option.
3068 * decl.c (struct named_label_use_entry): Likewise.
3069
3070 2011-02-22 Paolo Carlini <paolo.carlini@oracle.com>
3071
3072 PR c++/47242
3073 * semantics.c (build_lambda_object): Bail out if a field is
3074 error_mark_node.
3075
3076 2011-02-22 Dodji Seketeli <dodji@redhat.com>
3077
3078 PR c++/47666
3079 * class.c (dfs_declare_virt_assop_and_dtor)
3080 (declare_virt_assop_and_dtor): New static functions.
3081 (add_implicitly_declared_members): Use
3082 declare_virt_assop_and_dtor.
3083
3084 2011-02-21 Jason Merrill <jason@redhat.com>
3085
3086 PR c++/47207
3087 * decl2.c (decl_constant_var_p): A constexpr var needs an
3088 initializer to be constant.
3089 * semantics.c (cxx_eval_constant_expression): Complain about
3090 constexpr var used in its own initializer.
3091 * call.c (set_up_extended_ref_temp): Set
3092 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P too.
3093
3094 2011-02-20 Jason Merrill <jason@redhat.com>
3095
3096 PR c++/47199
3097 * semantics.c (cxx_eval_call_expression): Call
3098 cxx_eval_constant_expression in trivial shortcut.
3099
3100 PR c++/46831
3101 * call.c (convert_class_to_reference): Don't try to set up a
3102 second conv sequence for non-viable candidates.
3103
3104 PR c++/47703
3105 * error.c (location_of): Handle non-tagged types.
3106
3107 PR c++/46472
3108 * method.c (process_subob_fn): Instantiate constexpr templates.
3109 * optimize.c (maybe_clone_body): Propagate DECL_DECLARED_CONSTEXPR_P.
3110
3111 2011-02-20 Dodji Seketeli <dodji@redhat.com>
3112
3113 PR c++/46394
3114 * pt.c (tsubst_pack_expansion): do not use
3115 cp_tree_equal/same_type_p to detect an expansion of a parameter
3116 pack.
3117
3118 2011-02-19 Jason Merrill <jason@redhat.com>
3119
3120 PR c++/47503
3121 * semantics.c (cxx_eval_call_expression): Shortcut trivial copy.
3122
3123 2011-02-18 Paolo Carlini <paolo.carlini@oracle.com>
3124
3125 PR c++/47795
3126 * semantics.c (finish_non_static_data_member): Early return if
3127 object is error_mark_node.
3128
3129 2011-02-18 Dodji Seketeli <dodji@redhat.com>
3130
3131 PR c++/47208
3132 * pt.c (do_auto_deduction): Do not mention error_mark_node in
3133 diagnostics.
3134 * semantics.c (finish_id_expression): Do not pass erroneous decl
3135 to decl_constant_var_p.
3136
3137 2011-02-17 Jakub Jelinek <jakub@redhat.com>
3138
3139 PR c++/47783
3140 * cvt.c (convert_from_reference): Call mark_exp_read.
3141
3142 2011-02-11 Dodji Seketeli <dodji@redhat.com>
3143
3144 PR c++/47172
3145 * pt.c (finish_call_expr): Consider a call expression that has a
3146 dependent "this" pointer as being dependent. Add comments.
3147 (dependent_type_p, type_dependent_expression_p): Update comments.
3148
3149 2011-02-16 Dodji Seketeli <dodji@redhat.com>
3150
3151 PR c++/47326
3152 * pt.c (tsubst_copy)<case SIZEOF_EXPR>: Ensure that even pack
3153 expansion arguments are not evaluated.
3154
3155 2011-02-16 Jakub Jelinek <jakub@redhat.com>
3156
3157 PR c++/47704
3158 * cp-tree.h (ENUM_FIXED_UNDERLYING_TYPE_P): Use TYPE_LANG_FLAG_5
3159 instead of TYPE_LANG_FLAG_3.
3160 * pt.c (lookup_template_class): Copy over
3161 ENUM_FIXED_UNDERLYING_TYPE_P.
3162
3163 2011-02-15 Jason Merrill <jason@redhat.com>
3164
3165 PR c++/46807
3166 * method.c (synthesized_method_walk): Always exit early for
3167 trivial fn in C++98 mode.
3168
3169 2011-02-14 Jason Merrill <jason@redhat.com>
3170
3171 PR c++/47482
3172 * parser.c (cp_parser_enumerator_definition): Call
3173 fold_non_dependent_expr.
3174
3175 2011-02-09 Jason Merrill <jason@redhat.com>
3176
3177 * decl.c (cp_make_fname_decl): Set DECL_THIS_STATIC at toplevel.
3178 * semantics.c (finish_fname): Only return the name if we're in
3179 a function.
3180
3181 * decl.c (build_enumerator): Don't perform integral promotions on
3182 non-integral constants.
3183
3184 * cvt.c (convert_to_void): Handle null op1.
3185
3186 * class.c (type_has_constexpr_default_constructor): Make sure the
3187 caller stripped an enclosing array.
3188 * init.c (perform_member_init): Strip arrays before calling it.
3189
3190 PR c++/47511
3191 * semantics.c (potential_constant_expression_1): Handle TEMPLATE_DECL.
3192
3193 2011-02-03 Dodji Seketeli <dodji@redhat.com>
3194
3195 PR c++/47398
3196 * tree.c (cp_tree_equal)<TEMPLATE_PARM_INDEX>: Take the number of
3197 template parameters in account.
3198
3199 2011-02-03 Nathan Froyd <froydnj@codesourcery.com>
3200
3201 PR c++/46890
3202 * parser.c (cp_parser_class_specifier): Fix setting of
3203 want_semicolon.
3204
3205 2011-01-31 Jakub Jelinek <jakub@redhat.com>
3206
3207 PR c++/47416
3208 * semantics.c (build_data_member_initialization): Handle
3209 STATEMENT_LIST always instead of just for CLEANUP_BODY.
3210
3211 2011-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3212
3213 * g++spec.c (lang_specific_driver) [HAVE_LD_STATIC_DYNAMIC] Use
3214 LD_STATIC_OPTION, LD_DYNAMIC_OPTION.
3215
3216 2011-01-29 Dodji Seketeli <dodji@redhat.com>
3217
3218 PR c++/47311
3219 * cp-tree.h (fixup_template_parms): Declare.
3220 * pt.c (end_template_parm_list): Do not fixup template parms here.
3221 (fixup_template_parms): Remove static. Fix typo in the
3222 comments. Remove useless code statement.
3223 (fixup_template_parm): For a template template parameter, fixup
3224 its attributes before fixing up its type.
3225 * parser.c
3226 (cp_parser_template_declaration_after_export): After parsing
3227 template parameters fixup their types.
3228
3229 2011-01-26 Jakub Jelinek <jakub@redhat.com>
3230
3231 PR c++/47476
3232 * semantics.c (potential_constant_expression_1): Handle
3233 TRUTH_XOR_EXPR.
3234
3235 2011-01-26 Dave Korn <dave.korn.cygwin@gmail.com>
3236
3237 PR c++/43601
3238 * semantics.c (expand_or_defer_fn_1): Handle it.
3239 * decl2.c (decl_needed_p): Likewise.
3240
3241 2011-01-21 Jason Merrill <jason@redhat.com>
3242
3243 PR c++/47041
3244 * semantics.c (build_constexpr_constructor_member_initializers):
3245 Handle trivial copy.
3246
3247 2011-01-21 Jakub Jelinek <jakub@redhat.com>
3248
3249 PR c++/47388
3250 * semantics.c (begin_for_stmt): If -fno-for-scope, don't
3251 assume init must be NULL if scope is NULL.
3252 (begin_range_for_stmt): Likewise.
3253
3254 2011-01-21 Jason Merrill <jason@redhat.com>
3255
3256 PR c++/46552
3257 * semantics.c (cxx_eval_constant_expression): Handle OFFSET_REF.
3258
3259 PR c++/46977
3260 * semantics.c (potential_constant_expression_1): Split out from
3261 potential_constant_expression. Add want_rval parm. Handle
3262 template expression forms. Don't enforce restriction on address
3263 of automatic variable here. Add a couple of diagnostics that
3264 had been missing.
3265 (require_potential_constant_expression): New entry point.
3266 (build_data_member_initialization, register_constexpr_fundef): Adjust.
3267 (maybe_constant_value): Check potential_constant_expression.
3268 * pt.c (fold_non_dependent_expr_sfinae): Likewise.
3269 * tree.c (build_vec_init_expr): Adjust.
3270
3271 2011-01-19 Jakub Jelinek <jakub@redhat.com>
3272
3273 PR c++/47303
3274 * decl2.c (finish_anon_union): Only call mangle_decl if TREE_STATIC
3275 or DECL_EXTERNAL.
3276
3277 2011-01-17 Jason Merrill <jason@redhat.com>
3278
3279 PR c++/47067
3280 * semantics.c (base_field_constructor_elt): New fn.
3281 (cxx_eval_bare_aggregate): Use it.
3282 (build_data_member_initialization): Leave COMPONENT_REF for
3283 vfield inits.
3284
3285 2011-01-14 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
3286
3287 * parser.c (cp_parser_range_for): Remove the "unused variable" warning
3288 workaround.
3289
3290 2011-01-15 Giovanni Funchal <gafunchal@gmail.com>
3291 Jonathan Wakely <jwakely.gcc@gmail.com>
3292
3293 PR c++/33558
3294 * decl.c (grokdeclarator): Reject mutable reference members.
3295
3296 2011-01-14 Jason Merrill <jason@redhat.com>
3297
3298 PR c++/47289
3299 * pt.c (coerce_template_parms): Fix error recovery.
3300
3301 PR c++/46903
3302 * typeck2.c (check_narrowing): Only check arithmetic types.
3303
3304 PR c++/46688
3305 * tree.c (build_vec_init_expr): Handle flexible array
3306 properly.
3307
3308 2011-01-13 Kai Tietz <kai.tietz@onevision.com>
3309
3310 PR c++/47213
3311 * cp-tree.h (CLASSTYPE_VISIBILITY): Use
3312 TYPE_MAIN_DECL instead of TYPE_NAME.
3313 (CLASSTYPE_VISIBILITY_SPECIFIED): Likewise.
3314 * decl2.c (determine_visibility): Add check
3315 of CLASS_TYPE_P for underlying_type.
3316
3317 2011-01-12 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
3318
3319 * cp-tree.h (begin_for_scope): New prototype.
3320 (begin_for_stmt): Update prototype.
3321 (begin_range_for_stmt): Update prototype.
3322 * init.c (build_vec_init): Update call to begin_for_stmt.
3323 * parser.c (cp_parser_for): New.
3324 (cp_parser_c_for): Add three new parameters.
3325 (cp_parser_range_for): Likewise. Most parsing code removed.
3326 (cp_parser_iteration_statement): Call cp_parser_for instead of
3327 cp_parser_c_for and cp_parser_range_for.
3328 (cp_parser_for_init_statement): Add new parameter and return type.
3329 (cp_parser_block_declaration): Update call to
3330 cp_parser_simple_declaration.
3331 (cp_parser_simple_declaration): Add new parameter.
3332 Update call to cp_parser_init_declarator.
3333 (cp_parser_init_declarator): Add new parameter.
3334 * pt.c (tsubst_expr): Update call to begin_for_stmt.
3335 * semantics.c (begin_for_scope): New.
3336 (begin_for_stmt): Add two new parameters.
3337 (begin_range_for_stmt): Likewise.
3338
3339 2011-01-12 Nicola Pero <nicola.pero@meta-innovation.com>
3340
3341 * parser.c (cp_parser_objc_at_property_declaration): Improved
3342 error message.
3343
3344 2011-01-11 Dodji Seketeli <dodji@redhat.com>
3345
3346 PR debug/46955
3347 * cp-lang.c (get_template_innermost_arguments_folded)
3348 (get_template_argument_pack_elems_folded)
3349 (template_arg_needs_folding, fold_cplus_constants): New static
3350 functions.
3351 (LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS): Set this hook to
3352 get_template_innermost_arguments_folded.
3353 (LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS): Set this hook to
3354 get_template_argument_pack_elems_folded.
3355
3356 2011-01-11 Jason Merrill <jason@redhat.com>
3357
3358 PR c++/46658
3359 * init.c (build_new_1): Handle value-init in templates differently.
3360
3361 PR c++/45520
3362 * tree.c (maybe_dummy_object): Check current_class_ref against
3363 context, not current_class_type.
3364
3365 2011-01-08 Nicola Pero <nicola.pero@meta-innovation.com>
3366
3367 PR objc/47078
3368 * parser.c (cp_parser_objc_typename): If the type is unknown, for
3369 error recovery purposes behave as if it was not specified so that
3370 the default type is used.
3371
3372 2011-01-07 Jakub Jelinek <jakub@redhat.com>
3373
3374 PR c++/47022
3375 * pt.c (tsubst_copy_and_build): Use tsubst instead of tsubst_copy
3376 for the second build_x_va_arg argument.
3377
3378 2011-01-05 Tom Tromey <tromey@redhat.com>
3379
3380 * typeck.c (cp_build_addr_expr_1): Update call to lvalue_error.
3381 (lvalue_or_else): Likewise.
3382
3383 2011-01-01 Kai Tietz <kai.tietz@onevision.com>
3384
3385 PR target/38662
3386 * tree.c (cxx_type_hash_eq):
3387 Allow METHOD_TYPE, too.
3388
3389 \f
3390 Copyright (C) 2011 Free Software Foundation, Inc.
3391
3392 Copying and distribution of this file, with or without modification,
3393 are permitted in any medium without royalty provided the copyright
3394 notice and this notice are preserved.