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