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