]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
re PR c++/70344 (ICE on invalid code at -O1 and above on x86_64-linux-gnu in record_r...
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
96a4ef9d
JM
12016-03-23 Jason Merrill <jason@redhat.com>
2
3 PR c++/70344
4 * constexpr.c (cxx_eval_call_expression): Catch invalid recursion.
5
fbdb6baf
MP
62016-03-23 Marek Polacek <polacek@redhat.com>
7
8 PR c++/69884
9 * pt.c (canonicalize_type_argument): Use OPT_Wignored_attributes.
10
6cedf922
IE
112016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
12
13 * call.c (build_conditional_expr_1): Always use original
14 condition type for vector type checks and build.
15
16f6d7dc
PP
162016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
17
18 PR c++/70096
19 * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.
20
a3e2b438
PP
212016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
22
23 PR c++/70204
24 * constexpr.c (non_const_var_error): Check
25 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
26
ad779205
RH
272016-03-21 Richard Henderson <rth@redhat.com>
28
29 PR c++/70273
30 * decl.c (notice_forced_label_r): New.
31 (cp_finish_decl): Use it.
32
683b8101
JM
332016-03-21 Jason Merrill <jason@redhat.com>
34
35 PR c++/70285
36 * cp-gimplify.c (cp_fold) [COND_EXPR]: Handle bit-fields.
37
eb0dbdc7
JM
382016-03-18 Jason Merrill <jason@redhat.com>
39
86461cad
JM
40 PR c++/70139
41 * constexpr.c (cxx_eval_call_expression): Fix trivial copy.
42
b5a28d80
JM
43 PR c++/70147
44 * class.c (vptr_via_virtual_p): New.
45 (most_primary_binfo): Factor out of build_rtti_vtbl_entries.
46 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Don't clear
47 a vptr from any virtual base in a not-in-charge 'structor.
48
bf08acda
JM
49 * decl.c (build_clobber_this): Factor out of
50 start_preparsed_function and begin_destructor_body. Handle
51 virtual bases better.
52
eb0dbdc7
JM
53 * class.c (build_if_in_charge): Split out from build_base_path.
54 * init.c (expand_virtual_init, expand_default_init): Use it.
55 * call.c (build_special_member_call): Use it.
56
dd125026
JJ
572016-03-18 Jakub Jelinek <jakub@redhat.com>
58
59 PR c++/70267
60 * init.c (build_new_1): Complain and return error_mark_node
61 if alloc_fn is not _Jv_AllocObject function returning pointer.
62
91914f0a
PP
632016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
64
65 PR c++/70205
66 * search.c (adjust_result_of_qualified_name_lookup): Don't
67 update the BASELINK_BINFO of DECL if the second call
68 to lookup_base fails.
69
753a8910
PP
702016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
71
72 PR c++/70218
73 * parser.c (cp_parser_lambda_expression): Move call to
74 pop_deferring_access_checks ahead of the call to
75 cp_parser_end_tentative_firewall.
76
a3aad0e6
JJ
772016-03-17 Jakub Jelinek <jakub@redhat.com>
78
17366700
JJ
79 PR c++/70144
80 * cp-tree.h (magic_varargs_p): Return int instead of bool.
81 * call.c (magic_varargs_p): Return int instead of bool, return 2 for
82 Cilk+ reductions, otherwise 1 for magic varargs and 0 for normal
83 varargs.
84 (build_over_call): If magic_varargs_p == 2, call reject_gcc_builtin,
85 if magic_varargs_p == 1, call decay_conversion
86 instead of mark_type_use. Don't store error_mark_node arguments to
87 argarray, instead return error_mark_node.
88
a3aad0e6
JJ
89 PR c++/70272
90 * decl.c (begin_destructor_body): Don't insert clobber if
91 is_empty_class (current_class_type).
92
b1970801
MP
932016-03-17 Marek Polacek <polacek@redhat.com>
94
95 PR c++/70194
96 * typeck.c (warn_for_null_address): New function.
97 (cp_build_binary_op): Call it.
98
c5e003cf
JM
992016-03-16 Jason Merrill <jason@redhat.com>
100
101 PR c++/70259
102 * decl.c (start_preparsed_function): Don't clobber an empty base.
103
1935f250
JJ
1042016-03-16 Jakub Jelinek <jakub@redhat.com>
105
6651c93e
JJ
106 PR c++/70147
107 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Conditionalize
108 BINFO_VIRTUAL_P vtable clearing on current_in_charge_parm.
109
1935f250
JJ
110 PR c++/70147
111 * cp-ubsan.c (cp_ubsan_maybe_initialize_vtbl_ptrs): Temporarily
112 set in_base_initializer.
113
42c729c5
MP
1142016-03-15 Marek Polacek <polacek@redhat.com>
115
116 PR c++/70209
117 * tree.c (strip_typedefs): Call strip_typedefs again on the
118 DECL_ORIGINAL_TYPE result.
119
3f91db69
JM
1202016-03-15 Jason Merrill <jason@redhat.com>
121
d1ccf407
JM
122 PR c++/70095
123 * pt.c (instantiate_decl): Fix call to variable_template_p.
124
3f91db69
JM
125 PR c++/70141
126 * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE.
127
598a208c
CC
1282016-03-14 Casey Carter <casey@carter.net>
129 Jason Merrill <jason@redhat.com>
130
08a1cadc 131 P0184R0: Generalizing the Range-Based For Loop
598a208c
CC
132 * parser.c (cp_convert_range_for): Set the type of __end separately.
133 (cp_parser_perform_range_for_lookup): Allow different begin/end
134 types if they are comparable.
135
3f1e5d3a
PP
1362016-03-12 Patrick Palka <ppalka@gcc.gnu.org>
137
138 PR c++/70106
139 * semantics.c (force_paren_expr): Just build a PAREN_EXPR when
140 processing_template_decl and EXPR is a SCOPE_REF.
141
b87a8d7d
PP
1422016-03-10 Patrick Palka <ppalka@gcc.gnu.org>
143 Jakub Jelinek <jakub@redhat.com>
144
145 PR c++/70001
146 * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse
147 return value from cxx_eval_constant_expression from earlier
148 elements if it is valid constant initializer requiring no
149 relocations.
150
d49b0aa0
MP
1512016-03-10 Marek Polacek <polacek@redhat.com>
152
153 PR c++/70153
154 * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR.
155
96b3c82d
CP
1562016-03-09 Cesar Philippidis <cesar@codesourcery.com>
157
158 * parser.c (cp_parser_oacc_loop): Update cclauses and clauses
159 when calling c_finish_omp_clauses.
160
1e546b68
JM
1612016-03-08 Jason Merrill <jason@redhat.com>
162
80aac5c8
JM
163 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
164 diagnostic for use of "concept".
165 (cp_parser_requires_clause_opt): And "requires".
166 (cp_parser_type_parameter, cp_parser_late_return_type_opt)
167 (cp_parser_explicit_template_declaration): Adjust.
168 * Make-lang.in (check-c++-all): Add "concepts" to std list.
169
1e546b68
JM
170 P0036R0: Unary Folds and Empty Parameter Packs
171 * pt.c (expand_empty_fold): Remove special cases for *,+,&,|.
172
56aae4b7
JJ
1732016-03-08 Jakub Jelinek <jakub@redhat.com>
174
d259b234
JJ
175 PR c++/70135
176 * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs
177 even after the last iteration of the loop.
178
56aae4b7
JJ
179 * decl.c (duplicate_decls): Fix spelling - becuase -> because.
180
dbb23418
PP
1812016-03-07 Patrick Palka <ppalka@gcc.gnu.org>
182
183 PR c++/66786
184 * pt.c (get_template_info): Handle PARM_DECL.
185 (template_class_depth): Check DECL_P instead of
186 VAR_OR_FUNCTION_DECL_P.
187
d96e8407
JM
1882016-03-05 Jason Merrill <jason@redhat.com>
189
190 PR c++/67364
191 * constexpr.c (cxx_eval_store_expression): Replace
192 CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
193
7a3a3fad
PP
1942016-03-05 Patrick Palka <ppalka@gcc.gnu.org>
195
196 PR c++/66786
197 * pt.c (template_class_depth): Given a lambda type, iterate
198 into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its
199 TYPE_CONTEXT. Given a VAR_DECL, iterate into its
200 CP_DECL_CONTEXT.
201
d5bcd6d4
JM
2022016-03-04 Jason Merrill <jason@redhat.com>
203
204 PR c++/69203
205 * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New.
206 * init.c (build_vec_delete_1): Set it.
207 * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it.
208
0c8825de
JJ
2092016-03-04 Jakub Jelinek <jakub@redhat.com>
210
411d61c4
JJ
211 * decl.c (start_preparsed_function): Don't emit start clobber at the
212 start of constructor clones.
213
0c8825de
JJ
214 PR c++/70035
215 * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype.
216 * decl.c (start_preparsed_function): Call
217 cp_ubsan_maybe_initialize_vtbl_ptrs if needed.
218 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs,
219 cp_ubsan_maybe_initialize_vtbl_ptrs): New functions.
220
b54eff8b
JM
2212016-03-04 Jason Merrill <jason@redhat.com>
222
188e53bd
JM
223 PR c++/67364
224 * constexpr.c (cxx_eval_component_reference): Further tweak.
225
39dce2b7
JM
226 * constexpr.c (struct constexpr_ctx): Add save_exprs field.
227 (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
228 (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
229 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
230
b54eff8b
JM
231 PR c++/70067
232 * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
233 same type.
234
639475f0
JM
2352016-03-03 Jason Merrill <jason@redhat.com>
236
b47d1d90
JM
237 * method.c (synthesized_method_walk): operator= can also be constexpr.
238
a0a6a8c9
JM
239 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
240 LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
241
264fd142
JM
242 PR c++/67164
243 * pt.c (copy_template_args): New.
244 (tsubst_pack_expansion): Use it.
245
45c3e69b
JM
246 * call.c (build_aggr_conv): Use get_nsdmi.
247
16dc6b17
JM
248 PR c++/51406
249 * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
250
639475f0
JM
251 PR c++/67364
252 * constexpr.c (cxx_eval_component_reference): Just return an empty
253 CONSTRUCTOR for an empty class.
254
7f0e23e9
JM
2552016-03-01 Jason Merrill <jason@redhat.com>
256
5c969cb8
JM
257 PR c++/70036
258 * parser.c (cp_parser_requires_clause): Call
259 check_for_bare_parameter_packs.
260
c8a66fc9
JM
261 PR c++/51489
262 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
263 the operands.
264
7f0e23e9
JM
265 PR c++/69995
266 * constexpr.c (cxx_eval_call_expression): Unshare arg.
267 (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
268 [TARGET_EXPR]: Unshare init.
269
76d881bf
PP
2702016-03-01 Patrick Palka <ppalka@gcc.gnu.org>
271
272 PR c++/68948
273 PR c++/69961
274 * pt.c (tsubst_baselink): Reinstate the check for an invalid
275 constructor call.
276
7574c916
JM
2772016-02-28 Jason Merrill <jason@redhat.com>
278
279 PR c++/69995
280 * constexpr.c (cxx_eval_store_expression): Unshare init.
281
56cde077
JM
2822016-02-26 Jason Merrill <jason@redhat.com>
283
284 PR c++/69958
285 * pt.c (make_argument_pack): New.
286 (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
287 (tsubst_copy_and_build): Likewise.
288
6284a979
JM
2892016-02-25 Jason Merrill <jason@redhat.com>
290
8ba8c375
JM
291 PR c++/69889
292 * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
293 * tree.c (build_aggr_init_expr): Set it.
294 * semantics.c (simplify_aggr_init_expr): Check it.
295 * cp-gimplify.c (cp_genericize_r): Don't walk into
296 a call/aggr_init from a thunk.
297
bd28a34f
JM
298 PR c++/69842
299 * method.c (forward_parm): Handle parameter packs.
300 * lambda.c (maybe_add_lambda_conv_op): Use it for them.
301
6a0cc1cd
JM
302 PR c++/67364
303 * constexpr.c (cxx_eval_component_reference): Don't complain about
304 unevaluated empty classes.
305
6284a979
JM
306 PR c++/68049
307 * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
308
1137001c
PP
3092016-02-25 Patrick Palka <ppalka@gcc.gnu.org>
310
311 PR c++/69736
312 * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
313 (maybe_undo_parenthesized_ref): Declare.
314 * semantics.c (maybe_undo_parenthesized_ref): Split out from
315 check_return_expr.
316 (finish_call_expr): Use it.
317 * typeck.c (check_return_expr): Use it.
318 * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
319 REF_PARENTHESIZED_P flag.
320
03ca8fb3
JJ
3212016-02-24 Jakub Jelinek <jakub@redhat.com>
322
323 PR c++/69922
324 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
325 Avoid folding it.
326 * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
327 tests.
328 * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
329 unless they are folded into INTEGER_CST, error_mark_node or some
330 comparison with NULL, avoid folding them and use either the original
331 comparison or non-folded comparison of folded arguments.
332 * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
333 comparison, don't fold the comparison right away.
334
944e9f5f
JM
3352016-02-24 Jason Merrill <jason@redhat.com>
336
337 PR c++/69323
338 * friend.c (make_friend_class): Likewise.
339 * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
340
b8599b68
JM
3412016-02-24 Jason Merrill <jason@redhat.com>
342
343 PR c++/69323
344 * pt.c (instantiate_class_template_1): Set
345 processing_template_decl before substituting friend_type.
346
3b96b93a
MS
347016-02-24 Martin Sebor <msebor@redhat.com>
348
349 PR c++/69912
350 * tree.c (build_ctor_subob_ref): Compare types' main variants
351 instead of the types as they are.
352
28577b86
JM
3532016-02-24 Jason Merrill <jason@redhat.com>
354
a021961c
JM
355 * decl.c (start_preparsed_function): Condition ctor clobber on
356 flag_lifetime_dse > 1.
357
28577b86
JM
358 * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
359
2207c599
JM
3602016-02-19 Jason Merrill <jason@redhat.com>
361
362 PR c++/69743
363 * call.c (remaining_arguments): No longer static.
364 * cp-tree.h: Declare it.
365 * pt.c (more_specialized_fn): Use it.
366
3a27b4db
JJ
3672016-02-19 Jakub Jelinek <jakub@redhat.com>
368 Bernd Edlinger <bernd.edlinger@hotmail.de>
369
370 * Make-lang.in: Invoke gperf with -L C++.
371 * cfns.gperf: Remove prototypes for hash and libc_name_p
372 inlines.
373 * cfns.h: Regenerated.
374 * except.c (nothrow_libfn_p): Adjust.
375
7a965d51
JJ
3762016-02-19 Jakub Jelinek <jakub@redhat.com>
377
378 PR c++/69850
379 * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
380 NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
381
200e869c
PP
3822016-02-19 Patrick Palka <ppalka@gcc.gnu.org>
383
384 PR c++/68948
385 * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
386 call here.
387 * semantics.c (finish_call_expr): Don't assume a constructor
388 call is dependent if only the "this" pointer is dependent. When
389 building a constructor call, always use a dummy object.
390
19e21586
JJ
3912016-02-19 Jakub Jelinek <jakub@redhat.com>
392
03a616ac
JJ
393 PR c++/69850
394 * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
395 condition.
396 * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
397 operators if folding preserved the binop, just with different
398 arguments.
399
19e21586
JJ
400 PR c++/67767
401 * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
402 attr_spec is always single element chain, chain all the attributes
403 properly together in the right order.
404
747b61fc
JM
4052016-02-18 Jason Merrill <jason@redhat.com>
406
407 * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call
408 mangle_decl.
409 (mangle_decl): Call maybe_check_abi_tags for function scope.
410 (mangle_guard_variable): Call maybe_check_abi_tags here.
411 (write_guarded_var_name): Not here.
412
50ccdf5b
JM
4132016-02-17 Jason Merrill <jason@redhat.com>
414
fa837fb6
JM
415 PR c++/65985
416 * constexpr.c (build_constexpr_constructor_member_initializers):
417 Handle an additional STATEMENT_LIST.
418
bcb5f3c9
JM
419 PR c++/68585
420 * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
421
50ccdf5b
JM
422 PR c++/68679
423 * decl2.c (reset_type_linkage_2): Look through member templates.
424
932c0da4
JJ
4252016-02-17 Jakub Jelinek <jakub@redhat.com>
426
427 PR c++/69850
428 * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
429
0f02dd56
JM
4302016-02-17 Jason Merrill <jason@redhat.com>
431
432 PR c++/69842
433 * method.c (forward_parm): Split out from...
434 (add_one_base_init): ...here.
435 * lambda.c (maybe_add_lambda_conv_op): Use it.
436
6bab4c63
JM
4372016-02-16 Jason Merrill <jason@redhat.com>
438
439 PR c++/10200
440 PR c++/69753
441 * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
442 tree.c, typeck2.c: Revert earlier changes.
443 * parser.c (cp_parser_lookup_name): Ignore namespace-scope
444 non-type templates after -> or .
445
bf14eba2
JJ
4462016-02-16 Jakub Jelinek <jakub@redhat.com>
447
448 PR c/69835
449 * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
450
7128d6ab
JM
4512016-02-16 Jason Merrill <jason@redhat.com>
452
453 PR c++/69657
454 * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
455 (set_decl_namespace): Pass it. Complain about finding a hidden friend.
456 * name-lookup.h: Adjust.
457
ba539195
JN
4582016-02-16 James Norris <jnorris@codesourcery.com>
459
460 * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
461 * semantics.c (finish_omp_clauses): Add deviceptr checking.
462
f0516ca4
JJ
4632016-02-15 Jakub Jelinek <jakub@redhat.com>
464
465 PR c++/69658
466 * init.c (expand_default_init): Only call reshape_init
467 in the direct-initialization from an initializer list case.
468
fe69277d
JM
4692016-02-15 Jason Merrill <jason@redhat.com>
470
2bd0a2d6
JM
471 PR c++/69753
472 * semantics.c (finish_call_expr): Implicit 'this' does not make
473 the call dependent.
474 * search.c (any_dependent_bases_p): Split out...
475 * name-lookup.c (do_class_using_decl): ...from here.
476 * call.c (build_new_method_call_1): Don't complain about missing object
477 if there are dependent bases. Tweak error.
478 * tree.c (non_static_member_function_p): Remove.
479 * pt.c (type_dependent_expression_p): A member template of a
480 dependent type is dependent.
481 * cp-tree.h: Adjust.
482
fe69277d
JM
483 PR c++/68890
484 * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
485
38d795d2
PP
4862016-02-12 Patrick Palka <ppalka@gcc.gnu.org>
487
488 PR c++/69098
489 * pt.c (lookup_and_finish_template_variable): New function,
490 extracted from ...
491 (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it.
492 (tsubst_qualified_id): Consider that EXPR might be a variable
493 template.
494 * typeck.c (check_template_keyword): Don't emit an error
495 if DECL is a variable template.
496
9c582551
JJ
4972016-02-12 Jakub Jelinek <jakub@redhat.com>
498
499 * error.c: Spelling fixes - behaviour -> behavior and
500 neighbour -> neighbor.
501 * decl.c: Likewise.
502 * typeck.c (cp_build_binary_op): Fix up behavior spelling in
503 diagnostics.
504 * init.c (build_delete): Likewise.
505
66756373
JJ
5062016-02-11 Jakub Jelinek <jakub@redhat.com>
507
508 PR c/69768
509 * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
510 arguments for -Waddress warning. Fix up formatting.
511
0d7d9458
PC
5122016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
513
514 PR c++/68726
515 * pt.c (lookup_template_class_1): Check tsubst return value for
516 error_mark_node.
517
3a4219ca
JM
5182016-02-10 Jason Merrill <jason@redhat.com>
519
46f0d909
JM
520 PR c++/68926
521 * pt.c (resolve_nondeduced_context): Add complain parm.
522 (do_auto_deduction): Pass it.
523 * cvt.c (convert_to_void): Likewise.
524 * decl.c (cp_finish_decl): Likewise.
525 * init.c (build_new): Likewise.
526 * rtti.c (get_tinfo_decl_dynamic): Likewise.
527 * semantics.c (finish_decltype_type): Likewise.
528 * typeck.c (decay_conversion): Likewise.
529 * cp-tree.h: Adjust declaration.
530 * call.c (standard_conversion): Add complain parm, pass it along.
531 (implicit_conversion): Pass it.
532
89908c8f
JM
533 PR c++/69657
534 * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
535 (lookup_name_real_1): Likewise.
536 (remove_hidden_names): Handle non-functions too.
537
ff2faafc
JM
538 PR c++/10200
539 * parser.c (cp_parser_lookup_name): When looking for a template
540 after . or ->, only consider class templates.
541 (cp_parser_postfix_dot_deref_expression): Handle the current
542 instantiation. Remember a dependent object expression.
543 * typeck2.c (build_x_arrow): Handle the current instantiation.
544
3a4219ca
JM
545 * ptree.c (debug_tree): Implement for cp_expr.
546
efb45a9f
PP
5472016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
548
549 PR c++/69139
550 * parser.c (cp_parser_simple_type_specifier): Make the check
551 for disambiguating between an 'auto' placeholder and an implicit
552 template parameter more robust.
553
20a0c6f9
PP
5542016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
555
556 PR c++/69283
557 PR c++/67835
558 * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
559 setting its TREE_USED flag.
560
1374a761
JM
5612016-02-08 Jason Merrill <jason@redhat.com>
562
563 PR c++/69657
564 * name-lookup.c (do_nonmember_using_decl): Leave anticipated
565 built-ins alone.
566
f68bc23f
JJ
5672016-02-08 Jakub Jelinek <jakub@redhat.com>
568
569 PR c++/59627
570 * parser.c (cp_parser_omp_declare_reduction): Set assembler name
571 of the DECL_OMP_DECLARE_REDUCTION_P decls.
572
eba9e839
MP
5732016-02-08 Marek Polacek <polacek@redhat.com>
574
575 PR c++/69688
576 * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
577 Call clear_fold_cache.
578 * cp-tree.h: Adjust declaration.
579 * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
580 rather than clear_cv_cache and clear_fold_cache.
581 * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
582
415594bb
JM
5832016-02-08 Jason Merrill <jason@redhat.com>
584
585 * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
586 * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
587 (ocp_convert): Use *_maybe_fold.
588 (cp_convert_to_pointer): Add dofold parameter.
589 * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
590
46cb9332
MS
5912016-02-05 Martin Sebor <msebor@redhat.com>
592
593 PR c++/69662
594 * init.c (find_field_init): New function.
595 (warn_placement_new_too_small): Call it. Handle one-element arrays
596 at ends of structures special.
597
0fd9d492
JM
5982016-02-05 Jason Merrill <jason@redhat.com>
599
600 PR c++/68948
601 * semantics.c (finish_expr_stmt): If expr is error_mark_node,
602 make sure we've seen_error().
603
76c85fbb
PP
6042016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
605
606 PR c++/68948
607 * pt.c (tsubst_baselink): Diagnose an invalid constructor call
608 if lookup_fnfields returns NULL_TREE and the name being looked
609 up has the form A::A.
610
618d6c1c
PP
6112016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
612
613 * constexpr.c (cxx_eval_binary_expression): Fold equality
614 comparisons involving PTRMEM_CSTs.
615
d1243d27
JJ
6162016-02-04 Jakub Jelinek <jakub@redhat.com>
617
618 * class.c (find_flexarrays): Don't declare dom variable.
619 (diagnose_flexarray): Likewise.
620
05dd97db
MS
6212016-02-02 Martain Sebor <msebor@redhat.com>
622
623 PR c++/69251
624 PR c++/69253
625 PR c++/69290
626 PR c++/69277
627 PR c++/69349
628 * class.c (walk_subobject_offsets): Avoid testing the upper bound
629 of a flexible array member for equality to null.
630 (find_flexarrays): Remove spurious whitespace introduced in r231665.
631 (diagnose_flexarrays): Avoid checking the upper bound of arrays.
632 (check_flexarrays): Same.
633 * decl.c (compute_array_index_type): Avoid special case for flexible
634 array members.
635 (grokdeclarator): Avoid calling compute_array_index_type for flexible
636 array members.
637 * error.c (dump_type_suffix): Revert changes introduced in r231665
638 and rendered unnecessary by the changes above.
639 * pt.c (tsubst): Same.
640 * tree.c (build_ctor_subob_ref): Handle flexible array members.
641 * typeck2.c (digest_init_r): Revert changes introduced in r231665.
642 (process_init_constructor_array): Same.
643 (process_init_constructor_record): Same.
644
ab4bae0c
PP
6452016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
646
647 PR c++/69056
648 * pt.c (try_one_overload): Handle comparing argument packs so
649 that there is no conflict if we deduced more arguments of an
650 argument pack than were explicitly specified.
651
75a27d35
JJ
6522016-01-31 Jakub Jelinek <jakub@redhat.com>
653 Jason Merrill <jason@redhat.com>
654
655 PR c++/68763
656 * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
657 function type if nothing is changing.
658
b676a079
JM
6592016-01-31 Jason Merrill <jason@redhat.com>
660
6978c505
JM
661 PR c++/69009
662 * pt.c (partial_specialization_p, impartial_args): New.
663 (instantiate_decl): Call impartial_args.
664
b1568582
JM
665 * mangle.c (maybe_check_abi_tags): New.
666 (write_guarded_var_name): Call it.
667 (mangle_ref_init_variable): Call check_abi_tags.
668
b676a079
JM
669 * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
670 between template and instantiation.
671
16b77b32
JJ
6722016-01-29 Jakub Jelinek <jakub@redhat.com>
673
674 PR debug/66869
675 * decl.c (wrapup_globals_for_namespace): Warn about unused static
676 function declarations.
677
5453bfed
MP
6782016-01-29 Marek Polacek <polacek@redhat.com>
679
680 PR c++/69509
681 PR c++/69516
682 * constexpr.c (cxx_eval_array_reference): Give the "array subscript
683 out of bound" error earlier.
684 * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
685 commentary.
686
e9f69069
PP
6872016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
688
689 * name-lookup.c (begin_scope): After reusing a cp_binding_level
690 structure, update free_binding_level before the structure's
691 level_chain field gets cleared, not after.
692
e448880c
JM
6932016-01-28 Jason Merrill <jason@redhat.com>
694
695 PR c++/67407
696 * search.c (dfs_walk_once, dfs_walk_once_r)
697 (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
698 hash_set instead of BINFO_MARKED.
699 (dfs_unmark_r): Remove.
700
2b4f7b94
PP
7012016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
702
703 PR c++/24208
704 * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
705 (cp_lexer_debugging_p): Use it.
706 (cp_lexer_start_debugging): Likewise.
707 (cp_lexer_stop_debugging): Likewise.
708
fa74a4bc
MP
7092016-01-27 Marek Polacek <polacek@redhat.com>
710
711 PR c/68062
712 * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
713 needed. Add -Wsign-compare warning.
714
5d70666e
RB
7152016-01-27 Ryan Burn <contact@rnburn.com>
716
717 PR cilkplus/69267
718 * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
719 superfluous post_p argument in call to
720 cilk_gimplify_call_params_in_spawned_fn.
721
05bf54c3
MP
7222016-01-27 Marek Polacek <polacek@redhat.com>
723
724 PR c++/69379
725 * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
726 wrapped in NOP_EXPRs.
727
60214d0d
MS
7282016-01-27 Martin Sebor <msebor@redhat.com>
729
730 PR c++/69317
731 * mangle.c (mangle_decl): Reference the correct (saved) version
732 of the ABI in -Wabi diagnostics.
733
95e3030c
MP
7342016-01-27 Marek Polacek <polacek@redhat.com>
735
736 PR c++/69496
737 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
738 elements of the array.
739
ca30abcd
JM
7402016-01-26 Jason Merrill <jason@redhat.com>
741
742 PR c++/68949
743 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
744 (cxx_eval_call_expression): Don't look through clones.
745 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
746 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
747 maybe-in-charge *tor.
748
2d63bc39
JM
7492016-01-26 Jason Merrill <jason@redhat.com>
750
751 PR c++/68782
752 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
753 and TREE_SIDE_EFFECTS.
754 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
755 verify_constructor_flags.
756
476805ae
JJ
7572016-01-26 Jakub Jelinek <jakub@redhat.com>
758
759 PR c++/68357
760 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
761 return error_mark_node instead of building trees with error_mark_node
762 operands.
763
01e1dea3
DM
7642016-01-26 David Malcolm <dmalcolm@redhat.com>
765
766 PR other/69006
767 * error.c (print_instantiation_partial_context_line): Add missing
768 newlines from output for the t == NULL case.
769 (print_instantiation_partial_context): Remove call to pp_newline.
770
a59b92b0
PP
7712016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
772
773 Revert:
774 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
775
776 PR c++/11858
777 PR c++/24663
778 PR c++/24664
779 * decl.c (grokdeclarator): Don't decay array parameter type to
780 a pointer type if it's dependent.
781 (grokparms): Invoke strip_top_quals instead of directly invoking
782 cp_build_qualified_type.
783 * pt.c (decay_dependent_array_parm_type): New static function.
784 (type_unification_real): Call decay_dependent_array_parm_type
785 to decay a dependent array parameter type to its corresponding
786 pointer type before unification.
787 (more_specialized_fn): Likewise.
788 (get_bindings): Likewise.
789 * tree.c (cp_build_qualified_type): Trivial typofix in
790 documentation.
791
69da7802
MS
7922016-01-23 Martin Sebor <msebor@redhat.com>
793
794 PR c++/58109
795 PR c++/69022
796 * decl2.c (is_late_template_attribute): Handle dependent argument
797 to attribute align and attribute vector_size.
798
97ca3d0d
JM
7992016-01-21 Jason Merrill <jason@redhat.com>
800
130ee9a9
JM
801 PR c++/69392
802 * lambda.c (lambda_capture_field_type): Handle 'this' specially
803 for init-capture, too.
804
020491e6
JM
805 PR c++/65687
806 * decl.c (type_is_deprecated): Don't look into a typedef.
807
2f3932b9
JM
808 PR c++/40751
809 PR c++/64987
810 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
811
97ca3d0d
JM
812 PR c++/43407
813 * decl.c (start_enum): Add attributes parameter.
814 * parser.c (cp_parser_enum_specifier): Pass it.
815 * pt.c (lookup_template_class_1): Pass it.
816 * cp-tree.h: Adjust.
817
33f48842
JM
8182016-01-19 Jason Merrill <jason@redhat.com>
819
820 PR c++/59759
821 * pt.c (convert_template_argument): Handle VAR_DECL properly.
822
1e297006
MP
8232016-01-19 Marek Polacek <polacek@redhat.com>
824
825 PR c++/68586
826 * constexpr.c (clear_cv_cache): New.
827 * cp-gimplify.c (clear_fold_cache): New.
828 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
829 * decl.c (finish_enum_value_list): Call them.
830
38a979f2
MP
831 PR c++/68965
832 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
833
17c15cb9
PP
8342016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
835
836 PR c++/11858
837 PR c++/24663
838 PR c++/24664
839 * decl.c (grokdeclarator): Don't decay array parameter type to
840 a pointer type if it's dependent.
841 (grokparms): Invoke strip_top_quals instead of directly invoking
842 cp_build_qualified_type.
843 * pt.c (decay_dependent_array_parm_type): New static function.
844 (type_unification_real): Call decay_dependent_array_parm_type
845 to decay a dependent array parameter type to its corresponding
846 pointer type before unification.
847 (more_specialized_fn): Likewise.
848 (get_bindings): Likewise.
849 * tree.c (cp_build_qualified_type): Trivial typofix in
850 documentation.
851
7f26f7df
JM
8522016-01-18 Jason Merrill <jason@redhat.com>
853
4b0b30ef
JM
854 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
855
8d8f3235
JM
856 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
857
7f26f7df
JM
858 PR c++/68767
859 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
860 (contains_label_1, contains_label_p): Remove.
861
ec7886c1
PP
8622016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
863
864 PR c++/69091
865 * pt.c (type_dependent_expression_p): For a function template
866 specialization, a type is dependent iff any of its template
867 arguments are.
868
203484bb
PP
8692016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
870
871 * cp-array-notation.c (cp_expand_cond_array_notations): Return
872 error_mark_node only if find_rank failed, not if it was
873 successful.
874
aa2500e9
PP
8752016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
876
877 PR c++/68936
878 * tree.c (build_min_non_dep_call_vec): Don't retain the
879 KOENIG_LOOKUP_P flag of the non-dependent expression that's
880 been built.
881 (build_min_non_dep_op_overload): Instead, do it here.
882
e0a575ff
JJ
8832016-01-15 Jakub Jelinek <jakub@redhat.com>
884
885 PR bootstrap/68271
886 * parser.h (cp_token): Remove pragma_kind field. Add comment
887 with number of unused bits.
888 * parser.c (eof_token): Remove pragma_kind field initializer.
889 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
890 field, don't clear CPP_PRAGMA u.value.
891 (cp_parser_pragma_kind): New function.
892 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
893 cp_parser_omp_construct, cp_parser_initial_pragma,
894 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
895 pragma_kind field.
896
56233bd6
JM
8972016-01-15 Jason Merrill <jason@redhat.com>
898
c5e3b6fc
JM
899 PR c++/68847
900 * call.c (build_cxx_call): Use fold_non_dependent_expr.
901
f3255019
JM
902 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
903 value.
904
56233bd6
JM
905 PR c++/69257
906 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
907 array/function-to-pointer conversion. Call
908 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
909 * call.c (convert_like_real): Print call context if
910 decay_conversion errors.
911
e6d6ec9e
TV
9122016-01-14 Tom de Vries <tom@codesourcery.com>
913
914 PR tree-optimization/68773
915 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
916 set force_output.
917
a7ccb9e7
JM
9182016-01-14 Jason Merrill <jason@redhat.com>
919
920 PR c++/69261
921 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
922
5342156c
MP
9232016-01-12 Marek Polacek <polacek@redhat.com>
924
925 PR c++/68979
926 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
927 error_at and adjust the return value.
928
723033a6
JJ
9292016-01-12 Jakub Jelinek <jakub@redhat.com>
930
65364cc5
JJ
931 PR objc++/68511
932 PR c++/69213
933 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
934 GS_ERROR whenever seen_error (), only if *expr_p contains
935 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
936
723033a6
JJ
937 PR c++/66808
938 PR c++/69000
939 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
940
9fc21977
JM
9412016-01-11 Jason Merrill <jason@redhat.com>
942
943 PR c++/69131
944 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
945 (process_subob_fn): Likewise. Don't consider triviality if true.
946 (synthesize_method_walk): Pass it.
947
655441d6
DM
9482016-01-11 David Malcolm <dmalcolm@redhat.com>
949
950 PR c++/68795
951 * parser.c (cp_parser_postfix_expression): Initialize
952 close_paren_loc to UNKNOWN_LOCATION; only use it if
953 it has been written to by
954 cp_parser_parenthesized_expression_list.
955 (cp_parser_parenthesized_expression_list): Document the behavior
956 with respect to the CLOSE_PAREN_LOC param.
957
9cb6bd74
JJ
9582016-01-11 Jakub Jelinek <jakub@redhat.com>
959
960 PR c++/69211
961 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
962 folded operands have side-effects, but folding changed any of them,
963 build a new tree with the folded operands instead of returning the
964 unfolded tree.
965
73f0dae2
MP
9662016-01-09 Marek Polacek <polacek@redhat.com>
967
968 PR c++/69113
969 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
970
c50e614b
JJ
9712016-01-09 Jakub Jelinek <jakub@redhat.com>
972
973 PR c++/69164
974 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
975
fe71aa4e
JM
9762016-01-08 Jason Merrill <jason@redhat.com>
977
978 PR c++/69158
979 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
980 in completion.
981
bd8f5bb2
MP
9822016-01-08 Marek Polacek <polacek@redhat.com>
983
984 PR c++/68449
985 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
986
0795b6f2
JM
9872016-01-08 Jason Merrill <jason@redhat.com>
988
550c5f8a
JM
989 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
990 workaround.
991
45177337
JM
992 PR c++/68983
993 PR c++/67557
994 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
995 TREE_ADDRESSABLE type.
996
0795b6f2
JM
997 PR c++/68983
998 PR c++/67557
999 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
1000
ce3e43d7
NS
10012016-01-05 Nathan Sidwell <nathan@acm.org>
1002
1003 PR c++/58583
1004 * pt.c (build_non_dependent_expr): Don't try a checking fold when
1005 parsing an nsdmi.
1006
818ab71a 10072016-01-04 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
1008
1009 Update copyright years.
ad41bd84 1010\f
818ab71a 1011Copyright (C) 2016 Free Software Foundation, Inc.
ad41bd84
JM
1012
1013Copying and distribution of this file, with or without modification,
1014are permitted in any medium without royalty provided the copyright
1015notice and this notice are preserved.