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