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