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