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