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