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