re PR c++/60277 (Bogus "inline function virtual ..." used but never defined)
[gcc.git] / gcc / cp / ChangeLog
1 2014-02-21 Jason Merrill <jason@redhat.com>
2
3 PR c++/60277
4 * call.c (build_array_conv): Don't crash on VLA.
5
6 PR c++/60248
7 * mangle.c (mangle_decl): Don't make an alias for a TYPE_DECL.
8
9 PR c++/60252
10 * lambda.c (maybe_resolve_dummy): Don't try to capture this
11 in declaration context.
12
13 DR 1591
14 PR c++/60051
15 * pt.c (unify): Only unify if deducible. Handle 0-length list.
16
17 PR c++/60250
18 * parser.c (cp_parser_direct_declarator): Don't wrap a
19 type-dependent expression in a NOP_EXPR.
20
21 PR c++/60251
22 * lambda.c (is_normal_capture_proxy): Handle VLA capture.
23
24 PR c++/60167
25 PR c++/60222
26 PR c++/58606
27 * parser.c (cp_parser_template_argument): Restore dereference.
28 * pt.c (template_parm_to_arg): Dereference non-pack expansions too.
29 (process_partial_specialization): Handle deref.
30 (unify): Likewise.
31
32 2014-02-21 Adam Butcher <adam@jessamine.co.uk>
33
34 PR c++/60052
35 PR c++/60053
36 * parser.c (cp_parser_parameter_declaration_list): Correctly reset
37 implicit_template_scope upon leaving an out-of-line generic member
38 function definition.
39
40 2014-02-20 Kai Tietz <ktietz@redhat.com>
41
42 PR c++/58873
43 * parser.c (cp_parser_functional_cast): Treat NULL_TREE
44 valued type argument as error_mark_node.
45
46 PR c++/58835
47 * semantics.c (finish_fname): Handle error_mark_node.
48
49 2014-02-19 Jason Merrill <jason@redhat.com>
50
51 PR c++/60046
52 * pt.c (maybe_instantiate_noexcept): Don't instantiate exception
53 spec from template context.
54
55 2014-02-19 Jakub Jelinek <jakub@redhat.com>
56
57 PR debug/56563
58 * cp-objcp-common.c (cp_function_decl_explicit_p): Remove
59 FUNCTION_FIRST_USER_PARMTYPE (decl) != void_list_node check.
60
61 PR c++/60267
62 * pt.c (tsubst_expr): Handle ANNOTATE_EXPR.
63
64 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
65
66 PR c++/60225
67 * semantics.c (ensure_literal_type_for_constexpr_object): Use
68 strip_array_types.
69
70 2014-02-18 Paolo Carlini <paolo.carlini@oracle.com>
71
72 PR c++/60215
73 * semantics.c (cxx_eval_constant_expression, [COMPONENT_REF]):
74 During error recovery allow_non_constant may be false.
75
76 2014-02-18 Adam Butcher <adam@jessamine.co.uk>
77
78 PR c++/60190
79 * parser.c (cp_parser_lambda_declarator_opt): Pop template parameter
80 scope whenever a template parameter list has been started, independent
81 of whether the function call operator was well-formed or not.
82
83 PR c++/60064
84 * parser.c (cp_parser_member_declaration): Pop fully implicit template
85 scope for generic friend declarations as well as for non-friends.
86
87 2014-02-12 Paolo Carlini <paolo.carlini@oracle.com>
88
89 PR c++/60047
90 * method.c (implicitly_declare_fn): A constructor of a class with
91 virtual base classes isn't constexpr (7.1.5p4).
92
93 2014-02-05 Jan Hubicka <hubicka@ucw.cz
94
95 * parser.c (synthesize_implicit_template_parm): Use grow_tree_vec.
96
97 2014-02-05 Jakub Jelinek <jakub@redhat.com>
98
99 PR c++/58703
100 * parser.c (cp_parser_omp_declare_reduction): Save and free
101 declarator_obstack.
102
103 2014-02-03 Marc Glisse <marc.glisse@inria.fr>
104
105 PR c++/53017
106 PR c++/59211
107 * tree.c (handle_init_priority_attribute): Call default_conversion on
108 the attribute argument.
109
110 2014-02-03 Paolo Carlini <paolo.carlini@oracle.com>
111
112 PR c++/58871
113 * method.c (synthesized_method_walk): If vbases is non-null but
114 is_empty is true, likewise don't worry about the virtual bases.
115
116 2014-02-01 Paolo Carlini <paolo.carlini@oracle.com>
117
118 PR c++/51219
119 * typeck2.c (process_init_constructor_record): Just skip unnamed
120 bit-fields.
121
122 2014-01-31 Jason Merrill <jason@redhat.com>
123
124 PR c++/59469
125 * pt.c (mark_decl_instantiated): Call mark_needed.
126
127 PR c++/58672
128 * decl2.c (handle_tls_init): Handle null init fn.
129
130 PR c++/55800
131 * decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
132
133 2014-01-31 Paolo Carlini <paolo.carlini@oracle.com>
134
135 PR c++/59082
136 * class.c (build_vfield_ref): Early return error_mark_node if
137 TYPE_VFIELD (type) is null.
138 (build_base_path): Check return value of build_vfield_ref.
139
140 2014-01-31 Jason Merrill <jason@redhat.com>
141
142 PR c++/59646
143 * call.c (convert_like_real) [ck_aggr]: Set TARGET_EXPR_LIST_INIT_P.
144 [ck_list]: Check for error_mark_node.
145 (build_aggr_conv): Set LOOKUP_NO_NARROWING and check_narrowing.
146
147 PR c++/57043
148 * pt.c (fn_type_unification): Don't do DEDUCE_EXACT check
149 during partial ordering.
150
151 2014-01-31 Marek Polacek <polacek@redhat.com>
152
153 PR c/59963
154 * typeck.c (build_function_call_vec): Add dummy arg_loc parameter.
155
156 2014-01-30 Jason Merrill <jason@redhat.com>
157
158 PR c++/57899
159 * cp-tree.h (struct saved_scope): Add x_local_specializations.
160 (local_specializations): New macro.
161 * pt.c (local_specializations): Remove variable.
162
163 2014-01-30 Richard Sandiford <rdsandiford@googlemail.com>
164
165 PR c++/58708
166 * parser.c (make_string_pack): Use double_int::from_buffer.
167
168 2014-01-30 Marek Polacek <polacek@redhat.com>
169
170 PR c/59940
171 * typeck.c (build_ptrmemfunc1): Call convert_and_check with
172 input_location.
173 * cvt.c (cp_convert_and_check): Call warnings_for_convert_and_check
174 with input_location.
175 * call.c (build_conditional_expr_1): Call unsafe_conversion_p with
176 loc parameter.
177
178 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
179
180 PR c++/58843
181 * typeck.c (lookup_destructor): Check dtor_type for error_mark_node.
182
183 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
184
185 PR c++/58649
186 * pt.c (lookup_template_class_1): Check start_enum return value
187 for error_mark_node.
188
189 2014-01-30 Paolo Carlini <paolo.carlini@oracle.com>
190
191 * decl.c (duplicate_decls, typename_hash, typename_compare):
192 Use TYPE_IDENTIFIER.
193 * error.c (dump_type): Likewise.
194 * mangle.c (dump_substitution_candidates): Likewise.
195
196 2014-01-30 Jason Merrill <jason@redhat.com>
197
198 PR c++/59633
199 * decl2.c (attributes_naming_typedef_ok): New.
200 * cp-tree.h: Declare it.
201 * decl.c (grokdeclarator): Check it.
202 * tree.c (no_linkage_check): Handle VECTOR_TYPE.
203
204 2014-01-29 Jason Merrill <jason@redhat.com>
205
206 PR c++/59707
207 * call.c (add_builtin_candidate): Catch dependent types.
208
209 PR c++/59989
210 * pt.c (expand_template_argument_pack): Correct
211 non_default_args_count calculation.
212
213 PR c++/58466
214 * pt.c (unify_pack_expansion): Call expand_template_argument_pack.
215
216 PR c++/59956
217 * friend.c (do_friend): Pass the TEMPLATE_DECL to add_friend if we
218 have a friend template in a class template.
219 * pt.c (tsubst_friend_function): Look through it.
220 (push_template_decl_real): A friend member template is
221 primary.
222
223 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
224
225 PR c++/58846
226 * decl.c (get_dso_handle_node): Don't crash if dso_handle_node
227 == error_mark_node.
228
229 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
230
231 PR c++/58674
232 * pt.c (instantiate_template_1): Check for error_mark_node the second
233 argument too.
234
235 2014-01-29 Jason Merrill <jason@redhat.com>
236
237 PR c++/59916
238 * optimize.c (maybe_thunk_body): Build a RETURN_EXPR for
239 cdtor_returns_this case.
240
241 PR c++/59315
242 * decl.c (cxx_maybe_build_cleanup): Call mark_used.
243
244 2014-01-29 Paolo Carlini <paolo.carlini@oracle.com>
245
246 PR c++/58702
247 * semantics.c (finish_omp_reduction_clause): Check type for
248 error_mark_node.
249
250 2014-01-28 Jason Merrill <jason@redhat.com>
251
252 PR c++/59791
253 * pt.c (tsubst_decl) [VAR_DECL]: Allow in unevaluated context.
254 (tsubst_copy): Use it if lookup fails.
255
256 PR c++/59818
257 * pt.c (tsubst_function_type): Make sure we keep the same function
258 quals.
259
260 PR c++/58701
261 * semantics.c (build_anon_member_initialization): Stop walking
262 when we run out of COMPONENT_REFs.
263
264 PR c++/58632
265 * decl.c (lookup_and_check_tag): Ignore template parameters if
266 scope == ts_current.
267 * pt.c (check_template_shadow): Don't complain about the injected
268 class name.
269
270 * decl.c (duplicate_decls): Tweak.
271
272 PR c++/53756
273 * mangle.c (write_unqualified_name): Handle operator auto.
274
275 2014-01-27 Jason Merrill <jason@redhat.com>
276
277 PR c++/59823
278 Core DR 1138
279 * call.c (reference_binding): Pass LOOKUP_NO_TEMP_BIND for
280 list-initialization. A conversion to rvalue ref that involves
281 an lvalue-rvalue conversion is bad.
282 (convert_like_real): Give helpful error message.
283
284 PR c++/54652
285 * decl.c (duplicate_decls): Always use oldtype for TYPE_DECL.
286
287 PR c++/58504
288 * pt.c (tsubst_copy_and_build) [TRAIT_EXPR]: Use tsubst for
289 types.
290
291 PR c++/58606
292 * pt.c (template_parm_to_arg): Call convert_from_reference.
293 (tsubst_template_arg): Don't strip reference refs.
294
295 PR c++/58639
296 * call.c (build_aggr_conv): Reject value-initialization of reference.
297
298 PR c++/58812
299 PR c++/58651
300 * call.c (convert_like_real): Give helpful error about excess braces
301 for ck_rvalue of scalar type.
302
303 Core DR 1288
304 * call.c (reference_binding): Only elide braces if the single
305 element is reference-related.
306
307 PR c++/58814
308 * typeck.c (cp_build_modify_expr): Make the RHS an rvalue before
309 stabilizing.
310
311 PR c++/58837
312 * typeck.c (cp_truthvalue_conversion): Use explicit comparison for
313 FUNCTION_DECL.
314
315 PR c++/59097
316 * decl.c (compute_array_index_type): Don't call
317 maybe_constant_value for a non-integral expression.
318
319 2014-01-24 Balaji V. Iyer <balaji.v.iyer@intel.com>
320
321 * call.c (magic_varargs_p): Replaced flag_enable_cilkplus with
322 flag_cilkplus.
323 * cp-gimplify.c (cp_genericize): Likewise.
324 * decl.c (grokfndecl): Likewise.
325 * parser.c (cp_parser_postfix_expression): Likewise.
326 (cp_parser_postfix_open_square_expression): Likewise.
327 (cp_parser_direct_declarator): Likewise.
328 (is_cilkplus_vector_p): Likewise.
329 (cp_parser_omp_clause_name): Likewise.
330 (cp_parser_omp_all_clauses): Likewise.
331 * pt.c (apply_late_template_attributes): Likewise.
332 * typeck.c (cp_build_array_ref): Likewise.
333 (cp_build_compound_expr): Likewise.
334 (check_return_expr): Likewise.
335
336 2014-01-24 Jason Merrill <jason@redhat.com>
337
338 PR c++/58550
339 * decl.c (grokdeclarator): Turn pedwarn about auto return type in
340 c++11 into error.
341
342 PR c++/59886
343 PR c++/59659
344 * typeck2.c (process_init_constructor_array): Don't create
345 RANGE_EXPR yet.
346
347 2014-01-24 Jakub Jelinek <jakub@redhat.com>
348
349 * typeck2.c (split_nonconstant_init_1): Fix num_split_elts
350 handling for RANGE_ARRAY case.
351
352 2014-01-24 Paolo Carlini <paolo.carlini@oracle.com>
353
354 PR c++/57524
355 * name-lookup.c (push_using_directive): Use timevar_cond_start.
356
357 2014-01-23 Marek Polacek <polacek@redhat.com>
358
359 PR c/59846
360 * typeck.c (cp_build_binary_op): Pass location to shorten_compare.
361
362 2014-01-23 Marek Polacek <polacek@redhat.com>
363
364 PR c/58346
365 * typeck.c (pointer_diff): Give an error on arithmetic on pointer to
366 an empty aggregate.
367
368 2014-01-23 Jason Merrill <jason@redhat.com>
369
370 PR c++/55189
371 * cp-tree.h (struct language_function): Add infinite_loop and
372 infinite_loops.
373 (current_function_infinite_loop): New.
374 * semantics.c (begin_maybe_infinite_loop, end_maybe_infinite_loop)
375 (break_maybe_infinite_loop): New.
376 (finish_while_stmt_cond, finish_while_stmt, begin_do_stmt)
377 (finish_do_stmt, finish_for_cond, finish_for_stmt)
378 (begin_range_for_stmt): Use them.
379 * decl.c (finish_function): Don't warn about missing return
380 if current_function_infinite_loop.
381 * pt.c (instantiate_decl): Copy current_function_infinite_loop.
382 * parser.c (cp_parser_jump_statement): Call break_maybe_infinite_loop.
383
384 * call.c (build_op_delete_call): Use make_tree_vector and
385 release_tree_vector.
386
387 2014-01-23 Paolo Carlini <paolo.carlini@oracle.com>
388
389 PR c++/58980
390 * parser.c (cp_parser_enum_specifier): Handle TYPENAME_TYPE as
391 nested_name_specifier.
392
393 2014-01-23 Balaji V. Iyer <balaji.v.iyer@intel.com>
394
395 * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
396 see if there is an attribute after function decl. If so, then
397 parse them now.
398 (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
399 enabled function late parsing.
400 (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
401 attribute for a SIMD-enabled function.
402 (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
403 the function is used by SIMD-enabled function (indicated by NULL
404 pragma token). Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
405 PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
406 (cp_parser_cilk_simd_vectorlength): Modified this function to handle
407 vectorlength clause in SIMD-enabled function and #pragma SIMD's
408 vectorlength clause. Added a new bool parameter to differentiate
409 between the two.
410 (cp_parser_cilk_simd_fn_vector_attrs): New function.
411 (is_cilkplus_vector_p): Likewise.
412 (cp_parser_late_parsing_elem_fn_info): Likewise.
413 (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
414 and "vectorlength" clauses when Cilk Plus is enabled.
415 (cp_parser_omp_clause_linear): Added a new parameter of type bool
416 and emit a sorry message when step size is a parameter.
417 * parser.h (cp_parser::cilk_simd_fn_info): New field.
418 * decl.c (grokfndecl): Added flag_enable_cilkplus along with
419 flag_openmp.
420 * pt.c (apply_late_template_attributes): Likewise.
421
422 2014-01-23 Jakub Jelinek <jakub@redhat.com>
423
424 PR middle-end/58809
425 * semantics.c (finish_omp_reduction_clause): Reject
426 BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR on COMPLEX_TYPEs.
427
428 2014-01-22 Ville Voutilainen <ville.voutilainen@gmail.com>
429
430 PR c++/59482
431 * parser.c (cp_parser_class_head): Push the class before parsing
432 the base-clause, pop after it.
433
434 2014-01-20 Eric Botcazou <ebotcazou@adacore.com>
435
436 * decl2.c (cpp_check): Revert prototype change.
437
438 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
439
440 PR c++/59270
441 PR c++/58811
442 * init.c (build_value_init_noctor): Don't pass error_mark_node to
443 build_value_init.
444
445 2014-01-17 Paolo Carlini <paolo.carlini@oracle.com>
446
447 PR c++/59269
448 * init.c (build_value_init_noctor): Assert !TYPE_HAS_COMPLEX_DFLT
449 only when errorcount == 0.
450
451 2014-01-17 Marek Polacek <polacek@redhat.com>
452
453 PR c++/59838
454 * cvt.c (ocp_convert): Don't segfault on non-existing
455 ENUM_UNDERLYING_TYPE.
456
457 2014-01-16 Jason Merrill <jason@redhat.com>
458
459 PR c++/59821
460 * tree.c (bot_manip): Update the location of builtin_LINE and
461 builtin_FILE calls.
462
463 2014-01-14 Jason Merrill <jason@redhat.com>
464
465 PR c++/59659
466 * typeck2.c (massage_init_elt): New.
467 (process_init_constructor_record)
468 (process_init_constructor_union): Use it.
469 (process_init_constructor_array): Use it. Use RANGE_EXPR.
470 (split_nonconstant_init_1): Handle it.
471 * semantics.c (cxx_eval_vec_init_1): Use force_rvalue.
472
473 2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
474
475 PR c++/59631
476 * parser.c (cp_parser_postfix_expression): Added a new if-statement
477 and replaced an existing if-statement with else-if statement.
478 Changed an existing error message wording to match the one from the C
479 parser.
480
481 2014-01-08 Jason Merrill <jason@redhat.com>
482
483 PR c++/59614
484 * class.c (abi_tag_data): Add tags field.
485 (check_abi_tags): Initialize it.
486 (find_abi_tags_r): Support collecting missing tags.
487 (mark_type_abi_tags): Don't look at template args.
488 (inherit_targ_abi_tags): New.
489 (check_bases_and_members): Use it.
490 * cp-tree.h (ABI_TAG_IMPLICIT): New.
491 * mangle.c (write_abi_tags): Check it.
492
493 2014-01-07 Jason Merrill <jason@redhat.com>
494
495 PR c++/58856
496 * pt.c (num_innermost_template_parms): New.
497 (get_underlying_template): Use it.
498
499 PR c++/58965
500 * mangle.c (write_guarded_var_name): Handle null DECL_NAME.
501
502 2014-01-07 Paolo Carlini <paolo.carlini@oracle.com>
503
504 * semantics.c (trait_expr_value, [CPTK_IS_BASE_OF]): Implement
505 the letter of 20.11.6 about Base and Derived naming the same
506 class type modulo cv-qualifiers.
507
508 2014-01-06 Adam Butcher <adam@jessamine.co.uk>
509
510 PR c++/59635
511 * lambda.c (maybe_add_lambda_conv_op): Handle marking conversion
512 function as unimplemented for generic lambdas with varargs.
513
514 PR c++/59636
515 * parser.c (cp_parser_template_parameter): Early out with
516 error_mark_node if parameter declaration was not parsed.
517
518 PR c++/59629
519 * parser.c (cp_parser_lambda_expression): Save/reset/restore
520 auto_is_implicit_function_template_parm_p around lambda body.
521
522 PR c++/59638
523 * parser.c (cp_parser_init_declarator): Undo fully implicit
524 template parameter list when declarator is not a function.
525
526 2014-01-03 Marc Glisse <marc.glisse@inria.fr>
527
528 PR c++/58950
529 * cvt.c (convert_to_void): Handle VEC_PERM_EXPR and VEC_COND_EXPR.
530
531 2014-01-03 Tobias Burnus <burnus@net-b.de>
532
533 PR c++/58567
534 * pt.c (tsubst_omp_for_iterator): Early return for error_mark_node.
535
536 2014-01-03 Paolo Carlini <paolo.carlini@oracle.com>
537
538 Core DR 1442
539 PR c++/59165
540 * parser.c (cp_parser_perform_range_for_lookup): Don't pass true
541 as include_std to perform_koenig_lookup.
542 (cp_parser_postfix_expression): Adjust.
543 * pt.c (tsubst_copy_and_build): Likewise.
544 * semantics.c (perform_koenig_lookup): Remove bool parameter.
545 (omp_reduction_lookup): Adjust.
546 * name-lookup.c (lookup_arg_dependent_1): Remove bool parameter.
547 (lookup_arg_dependent): Likewise.
548 (lookup_function_nonclass): Adjust.
549 * name-lookup.h: Adjust declaration.
550 * cp-tree.h: Likewise.
551
552 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
553
554 PR c++/59087
555 * parser.c (cp_parser_userdef_numeric_literal): Mention
556 -fext-numeric-literals in the message.
557
558 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
559
560 PR c++/59641
561 * call.c (build_conditional_expr_1): Check the return value of
562 force_rvalue.
563
564 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
565
566 * call.c (convert_like_real): Check complain.
567
568 2014-01-02 Marc Glisse <marc.glisse@inria.fr>
569
570 PR c++/59378
571 * typeck.c (build_x_vec_perm_expr): Handle non-dependent arguments
572 in templates.
573
574 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
575
576 Update copyright years
577
578 2014-01-02 Richard Sandiford <rdsandiford@googlemail.com>
579
580 * cp-array-notation.c, cp-cilkplus.c, vtable-class-hierarchy.c: Use
581 the standard form for the copyright notice.
582 \f
583 Copyright (C) 2014 Free Software Foundation, Inc.
584
585 Copying and distribution of this file, with or without modification,
586 are permitted in any medium without royalty provided the copyright
587 notice and this notice are preserved.