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