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