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