]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
re PR c++/70095 ([C++14] Link error on partially specialized variable template)
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
3f91db69
JM
12016-03-15 Jason Merrill <jason@redhat.com>
2
d1ccf407
JM
3 PR c++/70095
4 * pt.c (instantiate_decl): Fix call to variable_template_p.
5
3f91db69
JM
6 PR c++/70141
7 * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE.
8
598a208c
CC
92016-03-14 Casey Carter <casey@carter.net>
10 Jason Merrill <jason@redhat.com>
11
08a1cadc 12 P0184R0: Generalizing the Range-Based For Loop
598a208c
CC
13 * parser.c (cp_convert_range_for): Set the type of __end separately.
14 (cp_parser_perform_range_for_lookup): Allow different begin/end
15 types if they are comparable.
16
3f1e5d3a
PP
172016-03-12 Patrick Palka <ppalka@gcc.gnu.org>
18
19 PR c++/70106
20 * semantics.c (force_paren_expr): Just build a PAREN_EXPR when
21 processing_template_decl and EXPR is a SCOPE_REF.
22
b87a8d7d
PP
232016-03-10 Patrick Palka <ppalka@gcc.gnu.org>
24 Jakub Jelinek <jakub@redhat.com>
25
26 PR c++/70001
27 * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse
28 return value from cxx_eval_constant_expression from earlier
29 elements if it is valid constant initializer requiring no
30 relocations.
31
d49b0aa0
MP
322016-03-10 Marek Polacek <polacek@redhat.com>
33
34 PR c++/70153
35 * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR.
36
96b3c82d
CP
372016-03-09 Cesar Philippidis <cesar@codesourcery.com>
38
39 * parser.c (cp_parser_oacc_loop): Update cclauses and clauses
40 when calling c_finish_omp_clauses.
41
1e546b68
JM
422016-03-08 Jason Merrill <jason@redhat.com>
43
80aac5c8
JM
44 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
45 diagnostic for use of "concept".
46 (cp_parser_requires_clause_opt): And "requires".
47 (cp_parser_type_parameter, cp_parser_late_return_type_opt)
48 (cp_parser_explicit_template_declaration): Adjust.
49 * Make-lang.in (check-c++-all): Add "concepts" to std list.
50
1e546b68
JM
51 P0036R0: Unary Folds and Empty Parameter Packs
52 * pt.c (expand_empty_fold): Remove special cases for *,+,&,|.
53
56aae4b7
JJ
542016-03-08 Jakub Jelinek <jakub@redhat.com>
55
d259b234
JJ
56 PR c++/70135
57 * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs
58 even after the last iteration of the loop.
59
56aae4b7
JJ
60 * decl.c (duplicate_decls): Fix spelling - becuase -> because.
61
dbb23418
PP
622016-03-07 Patrick Palka <ppalka@gcc.gnu.org>
63
64 PR c++/66786
65 * pt.c (get_template_info): Handle PARM_DECL.
66 (template_class_depth): Check DECL_P instead of
67 VAR_OR_FUNCTION_DECL_P.
68
d96e8407
JM
692016-03-05 Jason Merrill <jason@redhat.com>
70
71 PR c++/67364
72 * constexpr.c (cxx_eval_store_expression): Replace
73 CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
74
7a3a3fad
PP
752016-03-05 Patrick Palka <ppalka@gcc.gnu.org>
76
77 PR c++/66786
78 * pt.c (template_class_depth): Given a lambda type, iterate
79 into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its
80 TYPE_CONTEXT. Given a VAR_DECL, iterate into its
81 CP_DECL_CONTEXT.
82
d5bcd6d4
JM
832016-03-04 Jason Merrill <jason@redhat.com>
84
85 PR c++/69203
86 * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New.
87 * init.c (build_vec_delete_1): Set it.
88 * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it.
89
0c8825de
JJ
902016-03-04 Jakub Jelinek <jakub@redhat.com>
91
411d61c4
JJ
92 * decl.c (start_preparsed_function): Don't emit start clobber at the
93 start of constructor clones.
94
0c8825de
JJ
95 PR c++/70035
96 * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype.
97 * decl.c (start_preparsed_function): Call
98 cp_ubsan_maybe_initialize_vtbl_ptrs if needed.
99 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs,
100 cp_ubsan_maybe_initialize_vtbl_ptrs): New functions.
101
b54eff8b
JM
1022016-03-04 Jason Merrill <jason@redhat.com>
103
188e53bd
JM
104 PR c++/67364
105 * constexpr.c (cxx_eval_component_reference): Further tweak.
106
39dce2b7
JM
107 * constexpr.c (struct constexpr_ctx): Add save_exprs field.
108 (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
109 (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
110 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
111
b54eff8b
JM
112 PR c++/70067
113 * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
114 same type.
115
639475f0
JM
1162016-03-03 Jason Merrill <jason@redhat.com>
117
b47d1d90
JM
118 * method.c (synthesized_method_walk): operator= can also be constexpr.
119
a0a6a8c9
JM
120 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
121 LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
122
264fd142
JM
123 PR c++/67164
124 * pt.c (copy_template_args): New.
125 (tsubst_pack_expansion): Use it.
126
45c3e69b
JM
127 * call.c (build_aggr_conv): Use get_nsdmi.
128
16dc6b17
JM
129 PR c++/51406
130 * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
131
639475f0
JM
132 PR c++/67364
133 * constexpr.c (cxx_eval_component_reference): Just return an empty
134 CONSTRUCTOR for an empty class.
135
7f0e23e9
JM
1362016-03-01 Jason Merrill <jason@redhat.com>
137
5c969cb8
JM
138 PR c++/70036
139 * parser.c (cp_parser_requires_clause): Call
140 check_for_bare_parameter_packs.
141
c8a66fc9
JM
142 PR c++/51489
143 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
144 the operands.
145
7f0e23e9
JM
146 PR c++/69995
147 * constexpr.c (cxx_eval_call_expression): Unshare arg.
148 (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
149 [TARGET_EXPR]: Unshare init.
150
76d881bf
PP
1512016-03-01 Patrick Palka <ppalka@gcc.gnu.org>
152
153 PR c++/68948
154 PR c++/69961
155 * pt.c (tsubst_baselink): Reinstate the check for an invalid
156 constructor call.
157
7574c916
JM
1582016-02-28 Jason Merrill <jason@redhat.com>
159
160 PR c++/69995
161 * constexpr.c (cxx_eval_store_expression): Unshare init.
162
56cde077
JM
1632016-02-26 Jason Merrill <jason@redhat.com>
164
165 PR c++/69958
166 * pt.c (make_argument_pack): New.
167 (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
168 (tsubst_copy_and_build): Likewise.
169
6284a979
JM
1702016-02-25 Jason Merrill <jason@redhat.com>
171
8ba8c375
JM
172 PR c++/69889
173 * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
174 * tree.c (build_aggr_init_expr): Set it.
175 * semantics.c (simplify_aggr_init_expr): Check it.
176 * cp-gimplify.c (cp_genericize_r): Don't walk into
177 a call/aggr_init from a thunk.
178
bd28a34f
JM
179 PR c++/69842
180 * method.c (forward_parm): Handle parameter packs.
181 * lambda.c (maybe_add_lambda_conv_op): Use it for them.
182
6a0cc1cd
JM
183 PR c++/67364
184 * constexpr.c (cxx_eval_component_reference): Don't complain about
185 unevaluated empty classes.
186
6284a979
JM
187 PR c++/68049
188 * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
189
1137001c
PP
1902016-02-25 Patrick Palka <ppalka@gcc.gnu.org>
191
192 PR c++/69736
193 * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
194 (maybe_undo_parenthesized_ref): Declare.
195 * semantics.c (maybe_undo_parenthesized_ref): Split out from
196 check_return_expr.
197 (finish_call_expr): Use it.
198 * typeck.c (check_return_expr): Use it.
199 * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
200 REF_PARENTHESIZED_P flag.
201
03ca8fb3
JJ
2022016-02-24 Jakub Jelinek <jakub@redhat.com>
203
204 PR c++/69922
205 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
206 Avoid folding it.
207 * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
208 tests.
209 * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
210 unless they are folded into INTEGER_CST, error_mark_node or some
211 comparison with NULL, avoid folding them and use either the original
212 comparison or non-folded comparison of folded arguments.
213 * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
214 comparison, don't fold the comparison right away.
215
944e9f5f
JM
2162016-02-24 Jason Merrill <jason@redhat.com>
217
218 PR c++/69323
219 * friend.c (make_friend_class): Likewise.
220 * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
221
b8599b68
JM
2222016-02-24 Jason Merrill <jason@redhat.com>
223
224 PR c++/69323
225 * pt.c (instantiate_class_template_1): Set
226 processing_template_decl before substituting friend_type.
227
3b96b93a
MS
228016-02-24 Martin Sebor <msebor@redhat.com>
229
230 PR c++/69912
231 * tree.c (build_ctor_subob_ref): Compare types' main variants
232 instead of the types as they are.
233
28577b86
JM
2342016-02-24 Jason Merrill <jason@redhat.com>
235
a021961c
JM
236 * decl.c (start_preparsed_function): Condition ctor clobber on
237 flag_lifetime_dse > 1.
238
28577b86
JM
239 * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
240
2207c599
JM
2412016-02-19 Jason Merrill <jason@redhat.com>
242
243 PR c++/69743
244 * call.c (remaining_arguments): No longer static.
245 * cp-tree.h: Declare it.
246 * pt.c (more_specialized_fn): Use it.
247
3a27b4db
JJ
2482016-02-19 Jakub Jelinek <jakub@redhat.com>
249 Bernd Edlinger <bernd.edlinger@hotmail.de>
250
251 * Make-lang.in: Invoke gperf with -L C++.
252 * cfns.gperf: Remove prototypes for hash and libc_name_p
253 inlines.
254 * cfns.h: Regenerated.
255 * except.c (nothrow_libfn_p): Adjust.
256
7a965d51
JJ
2572016-02-19 Jakub Jelinek <jakub@redhat.com>
258
259 PR c++/69850
260 * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
261 NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
262
200e869c
PP
2632016-02-19 Patrick Palka <ppalka@gcc.gnu.org>
264
265 PR c++/68948
266 * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
267 call here.
268 * semantics.c (finish_call_expr): Don't assume a constructor
269 call is dependent if only the "this" pointer is dependent. When
270 building a constructor call, always use a dummy object.
271
19e21586
JJ
2722016-02-19 Jakub Jelinek <jakub@redhat.com>
273
03a616ac
JJ
274 PR c++/69850
275 * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
276 condition.
277 * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
278 operators if folding preserved the binop, just with different
279 arguments.
280
19e21586
JJ
281 PR c++/67767
282 * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
283 attr_spec is always single element chain, chain all the attributes
284 properly together in the right order.
285
747b61fc
JM
2862016-02-18 Jason Merrill <jason@redhat.com>
287
288 * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call
289 mangle_decl.
290 (mangle_decl): Call maybe_check_abi_tags for function scope.
291 (mangle_guard_variable): Call maybe_check_abi_tags here.
292 (write_guarded_var_name): Not here.
293
50ccdf5b
JM
2942016-02-17 Jason Merrill <jason@redhat.com>
295
fa837fb6
JM
296 PR c++/65985
297 * constexpr.c (build_constexpr_constructor_member_initializers):
298 Handle an additional STATEMENT_LIST.
299
bcb5f3c9
JM
300 PR c++/68585
301 * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
302
50ccdf5b
JM
303 PR c++/68679
304 * decl2.c (reset_type_linkage_2): Look through member templates.
305
932c0da4
JJ
3062016-02-17 Jakub Jelinek <jakub@redhat.com>
307
308 PR c++/69850
309 * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
310
0f02dd56
JM
3112016-02-17 Jason Merrill <jason@redhat.com>
312
313 PR c++/69842
314 * method.c (forward_parm): Split out from...
315 (add_one_base_init): ...here.
316 * lambda.c (maybe_add_lambda_conv_op): Use it.
317
6bab4c63
JM
3182016-02-16 Jason Merrill <jason@redhat.com>
319
320 PR c++/10200
321 PR c++/69753
322 * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
323 tree.c, typeck2.c: Revert earlier changes.
324 * parser.c (cp_parser_lookup_name): Ignore namespace-scope
325 non-type templates after -> or .
326
bf14eba2
JJ
3272016-02-16 Jakub Jelinek <jakub@redhat.com>
328
329 PR c/69835
330 * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
331
7128d6ab
JM
3322016-02-16 Jason Merrill <jason@redhat.com>
333
334 PR c++/69657
335 * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
336 (set_decl_namespace): Pass it. Complain about finding a hidden friend.
337 * name-lookup.h: Adjust.
338
ba539195
JN
3392016-02-16 James Norris <jnorris@codesourcery.com>
340
341 * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
342 * semantics.c (finish_omp_clauses): Add deviceptr checking.
343
f0516ca4
JJ
3442016-02-15 Jakub Jelinek <jakub@redhat.com>
345
346 PR c++/69658
347 * init.c (expand_default_init): Only call reshape_init
348 in the direct-initialization from an initializer list case.
349
fe69277d
JM
3502016-02-15 Jason Merrill <jason@redhat.com>
351
2bd0a2d6
JM
352 PR c++/69753
353 * semantics.c (finish_call_expr): Implicit 'this' does not make
354 the call dependent.
355 * search.c (any_dependent_bases_p): Split out...
356 * name-lookup.c (do_class_using_decl): ...from here.
357 * call.c (build_new_method_call_1): Don't complain about missing object
358 if there are dependent bases. Tweak error.
359 * tree.c (non_static_member_function_p): Remove.
360 * pt.c (type_dependent_expression_p): A member template of a
361 dependent type is dependent.
362 * cp-tree.h: Adjust.
363
fe69277d
JM
364 PR c++/68890
365 * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
366
38d795d2
PP
3672016-02-12 Patrick Palka <ppalka@gcc.gnu.org>
368
369 PR c++/69098
370 * pt.c (lookup_and_finish_template_variable): New function,
371 extracted from ...
372 (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it.
373 (tsubst_qualified_id): Consider that EXPR might be a variable
374 template.
375 * typeck.c (check_template_keyword): Don't emit an error
376 if DECL is a variable template.
377
9c582551
JJ
3782016-02-12 Jakub Jelinek <jakub@redhat.com>
379
380 * error.c: Spelling fixes - behaviour -> behavior and
381 neighbour -> neighbor.
382 * decl.c: Likewise.
383 * typeck.c (cp_build_binary_op): Fix up behavior spelling in
384 diagnostics.
385 * init.c (build_delete): Likewise.
386
66756373
JJ
3872016-02-11 Jakub Jelinek <jakub@redhat.com>
388
389 PR c/69768
390 * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
391 arguments for -Waddress warning. Fix up formatting.
392
0d7d9458
PC
3932016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
394
395 PR c++/68726
396 * pt.c (lookup_template_class_1): Check tsubst return value for
397 error_mark_node.
398
3a4219ca
JM
3992016-02-10 Jason Merrill <jason@redhat.com>
400
46f0d909
JM
401 PR c++/68926
402 * pt.c (resolve_nondeduced_context): Add complain parm.
403 (do_auto_deduction): Pass it.
404 * cvt.c (convert_to_void): Likewise.
405 * decl.c (cp_finish_decl): Likewise.
406 * init.c (build_new): Likewise.
407 * rtti.c (get_tinfo_decl_dynamic): Likewise.
408 * semantics.c (finish_decltype_type): Likewise.
409 * typeck.c (decay_conversion): Likewise.
410 * cp-tree.h: Adjust declaration.
411 * call.c (standard_conversion): Add complain parm, pass it along.
412 (implicit_conversion): Pass it.
413
89908c8f
JM
414 PR c++/69657
415 * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
416 (lookup_name_real_1): Likewise.
417 (remove_hidden_names): Handle non-functions too.
418
ff2faafc
JM
419 PR c++/10200
420 * parser.c (cp_parser_lookup_name): When looking for a template
421 after . or ->, only consider class templates.
422 (cp_parser_postfix_dot_deref_expression): Handle the current
423 instantiation. Remember a dependent object expression.
424 * typeck2.c (build_x_arrow): Handle the current instantiation.
425
3a4219ca
JM
426 * ptree.c (debug_tree): Implement for cp_expr.
427
efb45a9f
PP
4282016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
429
430 PR c++/69139
431 * parser.c (cp_parser_simple_type_specifier): Make the check
432 for disambiguating between an 'auto' placeholder and an implicit
433 template parameter more robust.
434
20a0c6f9
PP
4352016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
436
437 PR c++/69283
438 PR c++/67835
439 * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
440 setting its TREE_USED flag.
441
1374a761
JM
4422016-02-08 Jason Merrill <jason@redhat.com>
443
444 PR c++/69657
445 * name-lookup.c (do_nonmember_using_decl): Leave anticipated
446 built-ins alone.
447
f68bc23f
JJ
4482016-02-08 Jakub Jelinek <jakub@redhat.com>
449
450 PR c++/59627
451 * parser.c (cp_parser_omp_declare_reduction): Set assembler name
452 of the DECL_OMP_DECLARE_REDUCTION_P decls.
453
eba9e839
MP
4542016-02-08 Marek Polacek <polacek@redhat.com>
455
456 PR c++/69688
457 * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
458 Call clear_fold_cache.
459 * cp-tree.h: Adjust declaration.
460 * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
461 rather than clear_cv_cache and clear_fold_cache.
462 * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
463
415594bb
JM
4642016-02-08 Jason Merrill <jason@redhat.com>
465
466 * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
467 * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
468 (ocp_convert): Use *_maybe_fold.
469 (cp_convert_to_pointer): Add dofold parameter.
470 * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
471
46cb9332
MS
4722016-02-05 Martin Sebor <msebor@redhat.com>
473
474 PR c++/69662
475 * init.c (find_field_init): New function.
476 (warn_placement_new_too_small): Call it. Handle one-element arrays
477 at ends of structures special.
478
0fd9d492
JM
4792016-02-05 Jason Merrill <jason@redhat.com>
480
481 PR c++/68948
482 * semantics.c (finish_expr_stmt): If expr is error_mark_node,
483 make sure we've seen_error().
484
76c85fbb
PP
4852016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
486
487 PR c++/68948
488 * pt.c (tsubst_baselink): Diagnose an invalid constructor call
489 if lookup_fnfields returns NULL_TREE and the name being looked
490 up has the form A::A.
491
618d6c1c
PP
4922016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
493
494 * constexpr.c (cxx_eval_binary_expression): Fold equality
495 comparisons involving PTRMEM_CSTs.
496
d1243d27
JJ
4972016-02-04 Jakub Jelinek <jakub@redhat.com>
498
499 * class.c (find_flexarrays): Don't declare dom variable.
500 (diagnose_flexarray): Likewise.
501
05dd97db
MS
5022016-02-02 Martain Sebor <msebor@redhat.com>
503
504 PR c++/69251
505 PR c++/69253
506 PR c++/69290
507 PR c++/69277
508 PR c++/69349
509 * class.c (walk_subobject_offsets): Avoid testing the upper bound
510 of a flexible array member for equality to null.
511 (find_flexarrays): Remove spurious whitespace introduced in r231665.
512 (diagnose_flexarrays): Avoid checking the upper bound of arrays.
513 (check_flexarrays): Same.
514 * decl.c (compute_array_index_type): Avoid special case for flexible
515 array members.
516 (grokdeclarator): Avoid calling compute_array_index_type for flexible
517 array members.
518 * error.c (dump_type_suffix): Revert changes introduced in r231665
519 and rendered unnecessary by the changes above.
520 * pt.c (tsubst): Same.
521 * tree.c (build_ctor_subob_ref): Handle flexible array members.
522 * typeck2.c (digest_init_r): Revert changes introduced in r231665.
523 (process_init_constructor_array): Same.
524 (process_init_constructor_record): Same.
525
ab4bae0c
PP
5262016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
527
528 PR c++/69056
529 * pt.c (try_one_overload): Handle comparing argument packs so
530 that there is no conflict if we deduced more arguments of an
531 argument pack than were explicitly specified.
532
75a27d35
JJ
5332016-01-31 Jakub Jelinek <jakub@redhat.com>
534 Jason Merrill <jason@redhat.com>
535
536 PR c++/68763
537 * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
538 function type if nothing is changing.
539
b676a079
JM
5402016-01-31 Jason Merrill <jason@redhat.com>
541
6978c505
JM
542 PR c++/69009
543 * pt.c (partial_specialization_p, impartial_args): New.
544 (instantiate_decl): Call impartial_args.
545
b1568582
JM
546 * mangle.c (maybe_check_abi_tags): New.
547 (write_guarded_var_name): Call it.
548 (mangle_ref_init_variable): Call check_abi_tags.
549
b676a079
JM
550 * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
551 between template and instantiation.
552
16b77b32
JJ
5532016-01-29 Jakub Jelinek <jakub@redhat.com>
554
555 PR debug/66869
556 * decl.c (wrapup_globals_for_namespace): Warn about unused static
557 function declarations.
558
5453bfed
MP
5592016-01-29 Marek Polacek <polacek@redhat.com>
560
561 PR c++/69509
562 PR c++/69516
563 * constexpr.c (cxx_eval_array_reference): Give the "array subscript
564 out of bound" error earlier.
565 * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
566 commentary.
567
e9f69069
PP
5682016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
569
570 * name-lookup.c (begin_scope): After reusing a cp_binding_level
571 structure, update free_binding_level before the structure's
572 level_chain field gets cleared, not after.
573
e448880c
JM
5742016-01-28 Jason Merrill <jason@redhat.com>
575
576 PR c++/67407
577 * search.c (dfs_walk_once, dfs_walk_once_r)
578 (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
579 hash_set instead of BINFO_MARKED.
580 (dfs_unmark_r): Remove.
581
2b4f7b94
PP
5822016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
583
584 PR c++/24208
585 * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
586 (cp_lexer_debugging_p): Use it.
587 (cp_lexer_start_debugging): Likewise.
588 (cp_lexer_stop_debugging): Likewise.
589
fa74a4bc
MP
5902016-01-27 Marek Polacek <polacek@redhat.com>
591
592 PR c/68062
593 * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
594 needed. Add -Wsign-compare warning.
595
5d70666e
RB
5962016-01-27 Ryan Burn <contact@rnburn.com>
597
598 PR cilkplus/69267
599 * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
600 superfluous post_p argument in call to
601 cilk_gimplify_call_params_in_spawned_fn.
602
05bf54c3
MP
6032016-01-27 Marek Polacek <polacek@redhat.com>
604
605 PR c++/69379
606 * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
607 wrapped in NOP_EXPRs.
608
60214d0d
MS
6092016-01-27 Martin Sebor <msebor@redhat.com>
610
611 PR c++/69317
612 * mangle.c (mangle_decl): Reference the correct (saved) version
613 of the ABI in -Wabi diagnostics.
614
95e3030c
MP
6152016-01-27 Marek Polacek <polacek@redhat.com>
616
617 PR c++/69496
618 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
619 elements of the array.
620
ca30abcd
JM
6212016-01-26 Jason Merrill <jason@redhat.com>
622
623 PR c++/68949
624 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
625 (cxx_eval_call_expression): Don't look through clones.
626 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
627 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
628 maybe-in-charge *tor.
629
2d63bc39
JM
6302016-01-26 Jason Merrill <jason@redhat.com>
631
632 PR c++/68782
633 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
634 and TREE_SIDE_EFFECTS.
635 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
636 verify_constructor_flags.
637
476805ae
JJ
6382016-01-26 Jakub Jelinek <jakub@redhat.com>
639
640 PR c++/68357
641 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
642 return error_mark_node instead of building trees with error_mark_node
643 operands.
644
01e1dea3
DM
6452016-01-26 David Malcolm <dmalcolm@redhat.com>
646
647 PR other/69006
648 * error.c (print_instantiation_partial_context_line): Add missing
649 newlines from output for the t == NULL case.
650 (print_instantiation_partial_context): Remove call to pp_newline.
651
a59b92b0
PP
6522016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
653
654 Revert:
655 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
656
657 PR c++/11858
658 PR c++/24663
659 PR c++/24664
660 * decl.c (grokdeclarator): Don't decay array parameter type to
661 a pointer type if it's dependent.
662 (grokparms): Invoke strip_top_quals instead of directly invoking
663 cp_build_qualified_type.
664 * pt.c (decay_dependent_array_parm_type): New static function.
665 (type_unification_real): Call decay_dependent_array_parm_type
666 to decay a dependent array parameter type to its corresponding
667 pointer type before unification.
668 (more_specialized_fn): Likewise.
669 (get_bindings): Likewise.
670 * tree.c (cp_build_qualified_type): Trivial typofix in
671 documentation.
672
69da7802
MS
6732016-01-23 Martin Sebor <msebor@redhat.com>
674
675 PR c++/58109
676 PR c++/69022
677 * decl2.c (is_late_template_attribute): Handle dependent argument
678 to attribute align and attribute vector_size.
679
97ca3d0d
JM
6802016-01-21 Jason Merrill <jason@redhat.com>
681
130ee9a9
JM
682 PR c++/69392
683 * lambda.c (lambda_capture_field_type): Handle 'this' specially
684 for init-capture, too.
685
020491e6
JM
686 PR c++/65687
687 * decl.c (type_is_deprecated): Don't look into a typedef.
688
2f3932b9
JM
689 PR c++/40751
690 PR c++/64987
691 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
692
97ca3d0d
JM
693 PR c++/43407
694 * decl.c (start_enum): Add attributes parameter.
695 * parser.c (cp_parser_enum_specifier): Pass it.
696 * pt.c (lookup_template_class_1): Pass it.
697 * cp-tree.h: Adjust.
698
33f48842
JM
6992016-01-19 Jason Merrill <jason@redhat.com>
700
701 PR c++/59759
702 * pt.c (convert_template_argument): Handle VAR_DECL properly.
703
1e297006
MP
7042016-01-19 Marek Polacek <polacek@redhat.com>
705
706 PR c++/68586
707 * constexpr.c (clear_cv_cache): New.
708 * cp-gimplify.c (clear_fold_cache): New.
709 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
710 * decl.c (finish_enum_value_list): Call them.
711
38a979f2
MP
712 PR c++/68965
713 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
714
17c15cb9
PP
7152016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
716
717 PR c++/11858
718 PR c++/24663
719 PR c++/24664
720 * decl.c (grokdeclarator): Don't decay array parameter type to
721 a pointer type if it's dependent.
722 (grokparms): Invoke strip_top_quals instead of directly invoking
723 cp_build_qualified_type.
724 * pt.c (decay_dependent_array_parm_type): New static function.
725 (type_unification_real): Call decay_dependent_array_parm_type
726 to decay a dependent array parameter type to its corresponding
727 pointer type before unification.
728 (more_specialized_fn): Likewise.
729 (get_bindings): Likewise.
730 * tree.c (cp_build_qualified_type): Trivial typofix in
731 documentation.
732
7f26f7df
JM
7332016-01-18 Jason Merrill <jason@redhat.com>
734
4b0b30ef
JM
735 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
736
8d8f3235
JM
737 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
738
7f26f7df
JM
739 PR c++/68767
740 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
741 (contains_label_1, contains_label_p): Remove.
742
ec7886c1
PP
7432016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
744
745 PR c++/69091
746 * pt.c (type_dependent_expression_p): For a function template
747 specialization, a type is dependent iff any of its template
748 arguments are.
749
203484bb
PP
7502016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
751
752 * cp-array-notation.c (cp_expand_cond_array_notations): Return
753 error_mark_node only if find_rank failed, not if it was
754 successful.
755
aa2500e9
PP
7562016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
757
758 PR c++/68936
759 * tree.c (build_min_non_dep_call_vec): Don't retain the
760 KOENIG_LOOKUP_P flag of the non-dependent expression that's
761 been built.
762 (build_min_non_dep_op_overload): Instead, do it here.
763
e0a575ff
JJ
7642016-01-15 Jakub Jelinek <jakub@redhat.com>
765
766 PR bootstrap/68271
767 * parser.h (cp_token): Remove pragma_kind field. Add comment
768 with number of unused bits.
769 * parser.c (eof_token): Remove pragma_kind field initializer.
770 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
771 field, don't clear CPP_PRAGMA u.value.
772 (cp_parser_pragma_kind): New function.
773 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
774 cp_parser_omp_construct, cp_parser_initial_pragma,
775 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
776 pragma_kind field.
777
56233bd6
JM
7782016-01-15 Jason Merrill <jason@redhat.com>
779
c5e3b6fc
JM
780 PR c++/68847
781 * call.c (build_cxx_call): Use fold_non_dependent_expr.
782
f3255019
JM
783 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
784 value.
785
56233bd6
JM
786 PR c++/69257
787 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
788 array/function-to-pointer conversion. Call
789 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
790 * call.c (convert_like_real): Print call context if
791 decay_conversion errors.
792
e6d6ec9e
TV
7932016-01-14 Tom de Vries <tom@codesourcery.com>
794
795 PR tree-optimization/68773
796 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
797 set force_output.
798
a7ccb9e7
JM
7992016-01-14 Jason Merrill <jason@redhat.com>
800
801 PR c++/69261
802 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
803
5342156c
MP
8042016-01-12 Marek Polacek <polacek@redhat.com>
805
806 PR c++/68979
807 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
808 error_at and adjust the return value.
809
723033a6
JJ
8102016-01-12 Jakub Jelinek <jakub@redhat.com>
811
65364cc5
JJ
812 PR objc++/68511
813 PR c++/69213
814 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
815 GS_ERROR whenever seen_error (), only if *expr_p contains
816 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
817
723033a6
JJ
818 PR c++/66808
819 PR c++/69000
820 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
821
9fc21977
JM
8222016-01-11 Jason Merrill <jason@redhat.com>
823
824 PR c++/69131
825 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
826 (process_subob_fn): Likewise. Don't consider triviality if true.
827 (synthesize_method_walk): Pass it.
828
655441d6
DM
8292016-01-11 David Malcolm <dmalcolm@redhat.com>
830
831 PR c++/68795
832 * parser.c (cp_parser_postfix_expression): Initialize
833 close_paren_loc to UNKNOWN_LOCATION; only use it if
834 it has been written to by
835 cp_parser_parenthesized_expression_list.
836 (cp_parser_parenthesized_expression_list): Document the behavior
837 with respect to the CLOSE_PAREN_LOC param.
838
9cb6bd74
JJ
8392016-01-11 Jakub Jelinek <jakub@redhat.com>
840
841 PR c++/69211
842 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
843 folded operands have side-effects, but folding changed any of them,
844 build a new tree with the folded operands instead of returning the
845 unfolded tree.
846
73f0dae2
MP
8472016-01-09 Marek Polacek <polacek@redhat.com>
848
849 PR c++/69113
850 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
851
c50e614b
JJ
8522016-01-09 Jakub Jelinek <jakub@redhat.com>
853
854 PR c++/69164
855 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
856
fe71aa4e
JM
8572016-01-08 Jason Merrill <jason@redhat.com>
858
859 PR c++/69158
860 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
861 in completion.
862
bd8f5bb2
MP
8632016-01-08 Marek Polacek <polacek@redhat.com>
864
865 PR c++/68449
866 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
867
0795b6f2
JM
8682016-01-08 Jason Merrill <jason@redhat.com>
869
550c5f8a
JM
870 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
871 workaround.
872
45177337
JM
873 PR c++/68983
874 PR c++/67557
875 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
876 TREE_ADDRESSABLE type.
877
0795b6f2
JM
878 PR c++/68983
879 PR c++/67557
880 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
881
ce3e43d7
NS
8822016-01-05 Nathan Sidwell <nathan@acm.org>
883
884 PR c++/58583
885 * pt.c (build_non_dependent_expr): Don't try a checking fold when
886 parsing an nsdmi.
887
818ab71a 8882016-01-04 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
889
890 Update copyright years.
ad41bd84 891\f
818ab71a 892Copyright (C) 2016 Free Software Foundation, Inc.
ad41bd84
JM
893
894Copying and distribution of this file, with or without modification,
895are permitted in any medium without royalty provided the copyright
896notice and this notice are preserved.