re PR c++/60376 ([c++1y] ICE on invalid with using declaration in template function)
[gcc.git] / gcc / cp / ChangeLog
1 2014-03-04 Paolo Carlini <paolo.carlini@oracle.com>
2
3 PR c++/60376
4 * parser.c (cp_parser_using_declaration): Early return when
5 cp_parser_nested_name_specifier errors out.
6
7 2014-03-01 Adam Butcher <adam@jessamine.co.uk>
8
9 PR c++/60377
10 * parser.c (cp_parser_parameter_declaration_clause): Unwind generic
11 function scope on parse error in function parameter list.
12
13 2014-03-01 Paolo Carlini <paolo.carlini@oracle.com>
14
15 * method.c (implicitly_declare_fn): Remove redundant
16 DECL_TEMPLATE_RESULT and STRIP_TEMPLATE uses.
17 * semantics.c (is_instantiation_of_constexpr): Likewise.
18 * error.c (dump_function_decl): Likewise.
19
20 2014-03-01 Jason Merrill <jason@redhat.com>
21
22 PR c++/60379
23 * semantics.c (begin_maybe_infinite_loop): Use
24 fold_non_dependent_expr_sfinae.
25
26 2014-02-28 Jason Merrill <jason@redhat.com>
27
28 PR c++/58845
29 * typeck.c (cp_build_binary_op): Sorry on vector&&vector.
30
31 2014-02-28 Paolo Carlini <paolo.carlini@oracle.com>
32
33 PR c++/58610
34 * cp-tree.h (DECL_DELETED_FN): Use LANG_DECL_FN_CHECK.
35 * call.c (print_z_candidate): Remove STRIP_TEMPLATE use.
36 * lambda.c (maybe_add_lambda_conv_op): Likewise.
37
38 2014-02-27 Paolo Carlini <paolo.carlini@oracle.com>
39
40 PR c++/60253
41 * call.c (convert_arg_to_ellipsis): Return error_mark_node after
42 error_at.
43
44 2014-02-27 Jason Merrill <jason@redhat.com>
45
46 PR c++/60353
47 PR c++/55877
48 * decl2.c (tentative_decl_linkage): Don't mess with functions that
49 are not yet defined.
50
51 2014-02-26 Jason Merrill <jason@redhat.com>
52
53 PR c++/60347
54 PR lto/53808
55 * class.c (clone_function_decl): Don't note_vague_linkage_fn.
56 * init.c (build_vtbl_address): Do it here.
57
58 PR c++/59231
59 PR c++/11586
60 PR c++/14710
61 PR c++/57132
62 * pt.c (struct warning_sentinel): New.
63 (tsubst_copy_and_build): Use it instead of
64 c_inhibit_evaluation_warnings.
65 * typeck.c (maybe_warn_about_useless_cast): Remove
66 c_inhibit_evaluation_warnings check.
67
68 PR c++/54440
69 * pt.c (get_template_parm_index): New.
70 (fixed_parameter_pack_p_1, fixed_parameter_pack_p): New.
71 (process_template_parm): Allow bare packs in template template
72 parm template parms.
73 (coerce_template_parameter_pack): Handle fixed template template
74 parm packs and fixed packs not at the end of the parm list.
75 (coerce_template_parms): Handle template parm packs not at the end
76 of the parm list.
77 (gen_elem_of_pack_expansion_instantiation): Handle a decl expansion.
78
79 PR c++/60182
80 * pt.c (unify): Ignore alias templates when deducing a template
81 template parameter.
82
83 PR c++/60345
84 Revert:
85 DR 1571
86 * call.c (reference_binding): Recurse on user-defined conversion.
87 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
88
89 2014-02-25 Jason Merrill <jason@redhat.com>
90
91 DR 1571
92 * call.c (reference_binding): Recurse on user-defined conversion.
93 (convert_like_real) [ck_ref_bind]: Explain cv-qual mismatch.
94
95 * call.c (print_conversion_rejection): Handle n_arg of -2.
96 (build_user_type_conversion_1): Pass it.
97
98 PR c++/55877
99 * decl2.c (no_linkage_error): Handle C++98 semantics.
100 (reset_type_linkage): Move from decl.c.
101 (reset_type_linkage_1, reset_type_linkage_2, bt_reset_linkage_1)
102 (bt_reset_linkage_2, reset_decl_linkage): New.
103 (tentative_decl_linkage): Factor out of expand_or_defer_fn_1.
104 (cp_write_global_declarations): Move condition into no_linkage_error.
105 * decl.c (grokfndecl, grokvardecl): Use no_linkage_error.
106 * semantics.c (expand_or_defer_fn_1): Factor out
107 tentative_decl_linkage.
108 * cp-tree.h: Adjust.
109
110 * decl2.c (finish_static_data_member_decl): Diagnose static data
111 member in unnamed class.
112 * class.c (finish_struct_anon_r): Avoid redundant diagnostic.
113
114 PR lto/53808
115 * class.c (clone_function_decl): Call note_vague_linkage_fn for
116 defaulted virtual dtor.
117
118 DR 1286
119 PR c++/60328
120 * pt.c (get_underlying_template): Fix equivalence calculation.
121
122 2014-02-25 Adam Butcher <adam@jessamine.co.uk>
123
124 PR c++/60311
125 * parser.c (function_being_declared_is_template_p): Return false when
126 processing a template parameter list.
127 (cp_parser_parameter_declaration_clause): Don't set
128 auto_is_implicit_function_template_parm_p when processing a
129 template parameter list.
130
131 * parser.c (synthesize_implicit_template_parm): Inject new template
132 argument list appropriately when a generic member function
133 of a class template is declared out-of-line.
134
135 PR c++/60065
136 * parser.c (cp_parser_direct_declarator): Don't save and
137 restore num_template_parameter_lists around call to
138 cp_parser_parameter_declaration_list.
139 (function_being_declared_is_template_p): New predicate.
140 (cp_parser_parameter_declaration_list): Use
141 function_being_declared_is_template_p as predicate for
142 inspecting current function template parameter list length
143 rather than num_template_parameter_lists.
144
145 2014-02-24 Jason Merrill <jason@redhat.com>
146
147 PR c++/60146
148 * pt.c (tsubst_omp_for_iterator): Don't let substitution of the
149 DECL_EXPR initialize a non-class iterator.
150
151 PR c++/60312
152 * parser.c (cp_parser_template_type_arg): Check for invalid 'auto'.
153
154 2014-02-21 Jason Merrill <jason@redhat.com>
155
156 PR c++/58170
157 * parser.c (cp_parser_type_name): Always check dependency.
158 (cp_parser_type_specifier_seq): Call
159 cp_parser_parse_and_diagnose_invalid_type_name.
160
161 PR c++/60108
162 * semantics.c (expand_or_defer_fn_1): Check DECL_DEFAULTED_FN.
163
164 PR c++/60185
165 * parser.c (cp_parser_default_argument): Clear
166 current_class_ptr/current_class_ref like tsubst_default_argument.
167
168 PR c++/60252
169 * lambda.c (maybe_resolve_dummy): Check lambda_function rather
170 than current_binding_level.
171
172 PR c++/60186
173 * typeck2.c (massage_init_elt): Call fold_non_dependent_expr_sfinae.
174
175 PR c++/60187
176 * parser.c (cp_parser_enum_specifier): Call
177 check_for_bare_parameter_packs.
178
179 PR c++/59347
180 * pt.c (tsubst_decl) [TYPE_DECL]: Don't try to instantiate an
181 erroneous typedef.
182
183 PR c++/60241
184 * pt.c (lookup_template_class_1): Update DECL_TEMPLATE_INSTANTIATIONS
185 of the partial instantiation, not the most general template.
186 (maybe_process_partial_specialization): Reassign everything on
187 that list.
188
189 PR c++/60216
190 * pt.c (register_specialization): Copy DECL_DELETED_FN to clones.
191 (check_explicit_specialization): Don't clone.
192
193 PR c++/60219
194 * pt.c (coerce_template_parms): Bail if argument packing fails.
195
196 PR c++/60224
197 * decl.c (cp_complete_array_type, maybe_deduce_size_from_array_init):
198 Don't get confused by a CONSTRUCTOR that already has a type.
199
200 PR c++/60227
201 * call.c (build_array_conv): Don't crash on VLA.
202
203 PR c++/60248
204 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
205
206 PR c++/60252
207 * lambda.c (maybe_resolve_dummy): Don't try to capture this
208 in declaration context.
209
210 DR 1591
211 PR c++/60051
212 * pt.c (unify): Only unify if deducible. Handle 0-length list.
213
214 PR c++/60250
215 * parser.c (cp_parser_direct_declarator): Don't wrap a
216 type-dependent expression in a NOP_EXPR.
217
218 PR c++/60251
219 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
220
221 PR c++/60167
222 PR c++/60222
223 PR c++/58606
224 * parser.c (cp_parser_template_argument): Restore dereference.
225 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
226 (process_partial_specialization): Handle deref.
227 (unify): Likewise.
228
229 2014-02-21 Adam Butcher <adam@jessamine.co.uk>
230
231 PR c++/60052
232 PR c++/60053
233 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
234 implicit_template_scope upon leaving an out-of-line generic member
235 function definition.
236
237 2014-02-20 Kai Tietz <ktietz@redhat.com>
238
239 PR c++/58873
240 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
241 valued type argument as error_mark_node.
242
243 PR c++/58835
244 * semantics.c (finish_fname): Handle error_mark_node.
245
246 2014-02-19 Jason Merrill <jason@redhat.com>
247
248 PR c++/60046
249 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
250 spec from template context.
251
252 2014-02-19 Jakub Jelinek <jakub@redhat.com>
253
254 PR debug/56563
255 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
256 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
257
258 PR c++/60267
259 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
260
261 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
262
263 PR c++/60225
264 * semantics.c (ensure_literal_type_for_constexpr_object): Use
265 strip_array_types.
266
267 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
268
269 PR c++/60215
270 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
271 During error recovery allow_non_constant may be false.
272
273 2014-02-18 Adam Butcher <adam@jessamine.co.uk>
274
275 PR c++/60190
276 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
277 scope whenever a template parameter list has been started, independent
278 of whether the function call operator was well-formed or not.
279
280 PR c++/60064
281 * parser.c (cp_parser_member_declaration): Pop fully implicit template
282 scope for generic friend declarations as well as for non-friends.
283
284 2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
285
286 PR c++/60047
287 * method.c (implicitly_declare_fn): A constructor of a class with
288 virtual base classes isn't constexpr (7.1.5p4).
289
290 2014-02-05 Jan Hubicka <hubicka@ucw.cz
291
292 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
293
294 2014-02-05 Jakub Jelinek <jakub@redhat.com>
295
296 PR c++/58703
297 * parser.c (cp_parser_omp_declare_reduction): Save and free
298 declarator_obstack.
299
300 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
301
302 PR c++/53017
303 PR c++/59211
304 * tree.c (handle_init_priority_attribute): Call default_conversion on
305 the attribute argument.
306
307 2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
308
309 PR c++/58871
310 * method.c (synthesized_method_walk): If vbases is non-null but
311 is_empty is true, likewise don't worry about the virtual bases.
312
313 2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
314
315 PR c++/51219
316 * typeck2.c (process_init_constructor_record): Just skip unnamed
317 bit-fields.
318
319 2014-01-31 Jason Merrill <jason@redhat.com>
320
321 PR c++/59469
322 * pt.c (mark_decl_instantiated): Call mark_needed.
323
324 PR c++/58672
325 * decl2.c (handle_tls_init): Handle null init fn.
326
327 PR c++/55800
328 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
329
330 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
331
332 PR c++/59082
333 * class.c (build_vfield_ref): Early return error_mark_node if
334 TYPE_VFIELD (type) is null.
335 (build_base_path): Check return value of build_vfield_ref.
336
337 2014-01-31 Jason Merrill <jason@redhat.com>
338
339 PR c++/59646
340 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
341 [ck_list]: Check for error_mark_node.
342 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
343
344 PR c++/57043
345 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
346 during partial ordering.
347
348 2014-01-31 Marek Polacek <polacek@redhat.com>
349
350 PR c/59963
351 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
352
353 2014-01-30 Jason Merrill <jason@redhat.com>
354
355 PR c++/57899
356 * cp-tree.h (struct saved_scope): Add x_local_specializations.
357 (local_specializations): New macro.
358 * pt.c (local_specializations): Remove variable.
359
360 2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
361
362 PR c++/58708
363 * parser.c (make_string_pack): Use double_int::from_buffer.
364
365 2014-01-30 Marek Polacek <polacek@redhat.com>
366
367 PR c/59940
368 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
369 input_location.
370 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
371 with input_location.
372 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
373 loc parameter.
374
375 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
376
377 PR c++/58843
378 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
379
380 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
381
382 PR c++/58649
383 * pt.c (lookup_template_class_1): Check start_enum return value
384 for error_mark_node.
385
386 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
387
388 * decl.c (duplicate_decls, typename_hash, typename_compare):
389 Use TYPE_IDENTIFIER.
390 * error.c (dump_type): Likewise.
391 * mangle.c (dump_substitution_candidates): Likewise.
392
393 2014-01-30 Jason Merrill <jason@redhat.com>
394
395 PR c++/59633
396 * decl2.c (attributes_naming_typedef_ok): New.
397 * cp-tree.h: Declare it.
398 * decl.c (grokdeclarator): Check it.
399 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
400
401 2014-01-29 Jason Merrill <jason@redhat.com>
402
403 PR c++/59707
404 * call.c (add_builtin_candidate): Catch dependent types.
405
406 PR c++/59989
407 * pt.c (expand_template_argument_pack): Correct
408 non_default_args_count calculation.
409
410 PR c++/58466
411 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
412
413 PR c++/59956
414 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
415 have a friend template in a class template.
416 * pt.c (tsubst_friend_function): Look through it.
417 (push_template_decl_real): A friend member template is
418 primary.
419
420 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
421
422 PR c++/58846
423 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
424 == error_mark_node.
425
426 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
427
428 PR c++/58674
429 * pt.c (instantiate_template_1): Check for error_mark_node the second
430 argument too.
431
432 2014-01-29 Jason Merrill <jason@redhat.com>
433
434 PR c++/59916
435 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
436 cdtor_returns_this case.
437
438 PR c++/59315
439 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
440
441 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
442
443 PR c++/58702
444 * semantics.c (finish_omp_reduction_clause): Check type for
445 error_mark_node.
446
447 2014-01-28 Jason Merrill <jason@redhat.com>
448
449 PR c++/59791
450 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
451 (tsubst_copy): Use it if lookup fails.
452
453 PR c++/59818
454 * pt.c (tsubst_function_type): Make sure we keep the same function
455 quals.
456
457 PR c++/58701
458 * semantics.c (build_anon_member_initialization): Stop walking
459 when we run out of COMPONENT_REFs.
460
461 PR c++/58632
462 * decl.c (lookup_and_check_tag): Ignore template parameters if
463 scope == ts_current.
464 * pt.c (check_template_shadow): Don't complain about the injected
465 class name.
466
467 * decl.c (duplicate_decls): Tweak.
468
469 PR c++/53756
470 * mangle.c (write_unqualified_name): Handle operator auto.
471
472 2014-01-27 Jason Merrill <jason@redhat.com>
473
474 PR c++/59823
475 Core DR 1138
476 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
477 list-initialization. A conversion to rvalue ref that involves
478 an lvalue-rvalue conversion is bad.
479 (convert_like_real): Give helpful error message.
480
481 PR c++/54652
482 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
483
484 PR c++/58504
485 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
486 types.
487
488 PR c++/58606
489 * pt.c (template_parm_to_arg): Call convert_from_reference.
490 (tsubst_template_arg): Don't strip reference refs.
491
492 PR c++/58639
493 * call.c (build_aggr_conv): Reject value-initialization of reference.
494
495 PR c++/58812
496 PR c++/58651
497 * call.c (convert_like_real): Give helpful error about excess braces
498 for ck_rvalue of scalar type.
499
500 Core DR 1288
501 * call.c (reference_binding): Only elide braces if the single
502 element is reference-related.
503
504 PR c++/58814
505 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
506 stabilizing.
507
508 PR c++/58837
509 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
510 FUNCTION_DECL.
511
512 PR c++/59097
513 * decl.c (compute_array_index_type): Don't call
514 maybe_constant_value for a non-integral expression.
515
516 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
517
518 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
519 flag_cilkplus.
520 * cp-gimplify.c (cp_genericize): Likewise.
521 * decl.c (grokfndecl): Likewise.
522 * parser.c (cp_parser_postfix_expression): Likewise.
523 (cp_parser_postfix_open_square_expression): Likewise.
524 (cp_parser_direct_declarator): Likewise.
525 (is_cilkplus_vector_p): Likewise.
526 (cp_parser_omp_clause_name): Likewise.
527 (cp_parser_omp_all_clauses): Likewise.
528 * pt.c (apply_late_template_attributes): Likewise.
529 * typeck.c (cp_build_array_ref): Likewise.
530 (cp_build_compound_expr): Likewise.
531 (check_return_expr): Likewise.
532
533 2014-01-24 Jason Merrill <jason@redhat.com>
534
535 PR c++/58550
536 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
537 c++11 into error.
538
539 PR c++/59886
540 PR c++/59659
541 * typeck2.c (process_init_constructor_array): Don't create
542 RANGE_EXPR yet.
543
544 2014-01-24 Jakub Jelinek <jakub@redhat.com>
545
546 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
547 handling for RANGE_ARRAY case.
548
549 2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
550
551 PR c++/57524
552 * name-lookup.c (push_using_directive): Use timevar_cond_start.
553
554 2014-01-23 Marek Polacek <polacek@redhat.com>
555
556 PR c/59846
557 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
558
559 2014-01-23 Marek Polacek <polacek@redhat.com>
560
561 PR c/58346
562 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
563 an empty aggregate.
564
565 2014-01-23 Jason Merrill <jason@redhat.com>
566
567 PR c++/55189
568 * cp-tree.h (struct language_function): Add infinite_loop and
569 infinite_loops.
570 (current_function_infinite_loop): New.
571 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
572 (break_maybe_infinite_loop): New.
573 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
574 (finish_do_stmt, finish_for_cond, finish_for_stmt)
575 (begin_range_for_stmt): Use them.
576 * decl.c (finish_function): Don't warn about missing return
577 if current_function_infinite_loop.
578 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
579 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
580
581 * call.c (build_op_delete_call): Use make_tree_vector and
582 release_tree_vector.
583
584 2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
585
586 PR c++/58980
587 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
588 nested_name_specifier.
589
590 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
591
592 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
593 see if there is an attribute after function decl. If so, then
594 parse them now.
595 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
596 enabled function late parsing.
597 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
598 attribute for a SIMD-enabled function.
599 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
600 the function is used by SIMD-enabled function (indicated by NULL
601 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
602 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
603 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
604 vectorlength clause in SIMD-enabled function and #pragma SIMD's
605 vectorlength clause. Added a new bool parameter to differentiate
606 between the two.
607 (cp_parser_cilk_simd_fn_vector_attrs): New function.
608 (is_cilkplus_vector_p): Likewise.
609 (cp_parser_late_parsing_elem_fn_info): Likewise.
610 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
611 and "vectorlength" clauses when Cilk Plus is enabled.
612 (cp_parser_omp_clause_linear): Added a new parameter of type bool
613 and emit a sorry message when step size is a parameter.
614 * parser.h (cp_parser::cilk_simd_fn_info): New field.
615 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
616 flag_openmp.
617 * pt.c (apply_late_template_attributes): Likewise.
618
619 2014-01-23 Jakub Jelinek <jakub@redhat.com>
620
621 PR middle-end/58809
622 * semantics.c (finish_omp_reduction_clause): Reject
623 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
624
625 2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
626
627 PR c++/59482
628 * parser.c (cp_parser_class_head): Push the class before parsing
629 the base-clause, pop after it.
630
631 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
632
633 * decl2.c (cpp_check): Revert prototype change.
634
635 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
636
637 PR c++/59270
638 PR c++/58811
639 * init.c (build_value_init_noctor): Don't pass error_mark_node to
640 build_value_init.
641
642 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
643
644 PR c++/59269
645 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
646 only when errorcount == 0.
647
648 2014-01-17 Marek Polacek <polacek@redhat.com>
649
650 PR c++/59838
651 * cvt.c (ocp_convert): Don't segfault on non-existing
652 ENUM_UNDERLYING_TYPE.
653
654 2014-01-16 Jason Merrill <jason@redhat.com>
655
656 PR c++/59821
657 * tree.c (bot_manip): Update the location of builtin_LINE and
658 builtin_FILE calls.
659
660 2014-01-14 Jason Merrill <jason@redhat.com>
661
662 PR c++/59659
663 * typeck2.c (massage_init_elt): New.
664 (process_init_constructor_record)
665 (process_init_constructor_union): Use it.
666 (process_init_constructor_array): Use it. Use RANGE_EXPR.
667 (split_nonconstant_init_1): Handle it.
668 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
669
670 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
671
672 PR c++/59631
673 * parser.c (cp_parser_postfix_expression): Added a new if-statement
674 and replaced an existing if-statement with else-if statement.
675 Changed an existing error message wording to match the one from the C
676 parser.
677
678 2014-01-08 Jason Merrill <jason@redhat.com>
679
680 PR c++/59614
681 * class.c (abi_tag_data): Add tags field.
682 (check_abi_tags): Initialize it.
683 (find_abi_tags_r): Support collecting missing tags.
684 (mark_type_abi_tags): Don't look at template args.
685 (inherit_targ_abi_tags): New.
686 (check_bases_and_members): Use it.
687 * cp-tree.h (ABI_TAG_IMPLICIT): New.
688 * mangle.c (write_abi_tags): Check it.
689
690 2014-01-07 Jason Merrill <jason@redhat.com>
691
692 PR c++/58856
693 * pt.c (num_innermost_template_parms): New.
694 (get_underlying_template): Use it.
695
696 PR c++/58965
697 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
698
699 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
700
701 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
702 the letter of 20.11.6 about Base and Derived naming the same
703 class type modulo cv-qualifiers.
704
705 2014-01-06 Adam Butcher <adam@jessamine.co.uk>
706
707 PR c++/59635
708 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
709 function as unimplemented for generic lambdas with varargs.
710
711 PR c++/59636
712 * parser.c (cp_parser_template_parameter): Early out with
713 error_mark_node if parameter declaration was not parsed.
714
715 PR c++/59629
716 * parser.c (cp_parser_lambda_expression): Save/reset/restore
717 auto_is_implicit_function_template_parm_p around lambda body.
718
719 PR c++/59638
720 * parser.c (cp_parser_init_declarator): Undo fully implicit
721 template parameter list when declarator is not a function.
722
723 2014-01-03 Marc Glisse <marc.glisse@inria.fr>
724
725 PR c++/58950
726 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
727
728 2014-01-03 Tobias Burnus <burnus@net-b.de>
729
730 PR c++/58567
731 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
732
733 2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
734
735 Core DR 1442
736 PR c++/59165
737 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
738 as include_std to perform_koenig_lookup.
739 (cp_parser_postfix_expression): Adjust.
740 * pt.c (tsubst_copy_and_build): Likewise.
741 * semantics.c (perform_koenig_lookup): Remove bool parameter.
742 (omp_reduction_lookup): Adjust.
743 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
744 (lookup_arg_dependent): Likewise.
745 (lookup_function_nonclass): Adjust.
746 * name-lookup.h: Adjust declaration.
747 * cp-tree.h: Likewise.
748
749 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
750
751 PR c++/59087
752 * parser.c (cp_parser_userdef_numeric_literal): Mention
753 -fext-numeric-literals in the message.
754
755 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
756
757 PR c++/59641
758 * call.c (build_conditional_expr_1): Check the return value of
759 force_rvalue.
760
761 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
762
763 * call.c (convert_like_real): Check complain.
764
765 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
766
767 PR c++/59378
768 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
769 in templates.
770
771 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
772
773 Update copyright years
774
775 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
776
777 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
778 the standard form for the copyright notice.
779 \f
780 Copyright (C) 2014 Free Software Foundation, Inc.
781
782 Copying and distribution of this file, with or without modification,
783 are permitted in any medium without royalty provided the copyright
784 notice and this notice are preserved.