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