]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cp/ChangeLog
re PR bootstrap/70704 (AIX bootstrap comparison failure)
[thirdparty/gcc.git] / gcc / cp / ChangeLog
CommitLineData
7db11a5a
JJ
12016-04-26 Jakub Jelinek <jakub@redhat.com>
2
3 PR bootstrap/70704
4 * pt.c (build_non_dependent_expr): Use flag_checking > 1 instead of
5 just flag_checking.
6
d067e05f
JM
72016-04-25 Jason Merrill <jason@redhat.com>
8
9 * tree.c (std_attribute_table): New.
10 (init_tree): Register it.
11
76f9244e
JM
122016-04-22 Jason Merrill <jason@redhat.com>
13
14 * parser.c (cp_parser_perform_range_for_lookup): Decay the array.
15
5c712250
PP
162016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
17
18 * name-lookup.c (free_saved_scope): New free list of saved_scope
19 structures.
20 (push_to_top_level): Attempt to reuse a saved_scope struct
21 from free_saved_scope instead of allocating a new one each time.
22 (pop_from_top_level_1): Chain the now-unused saved_scope structure
23 onto free_saved_scope.
24
20700098
PC
252016-04-21 Paolo Carlini <paolo.carlini@oracle.com>
26
27 PR c++/70540
28 * semantics.c (process_outer_var_ref): Unconditionally return
29 error_mark_node when mark_used returns false.
30
aedf4e12
MP
312016-04-21 Marek Polacek <polacek@redhat.com>
32
33 PR c++/70513
34 * parser.c (cp_parser_enum_specifier): Check and possibly error for
35 extra qualification.
36
ee392fc2
NS
372016-04-20 Nathan Sidwell <nathan@acm.org>
38
39 PR c++/55635
40 * init.c (build_vec_delete_1): Protect operator delete call in try
41 finally.
42 (build_delete): Likewise.
43 * optimize.c (build_delete_destructor_body): Likewise.
44
477d4906
IV
452016-04-20 Ilya Verbin <ilya.verbin@intel.com>
46
47 PR c++/69363
48 * cp-tree.h (finish_omp_clauses): Add new default argument.
49 * parser.c (cp_parser_cilk_simd_all_clauses): Use finish_omp_clauses
50 instead of c_finish_cilk_clauses.
51 * semantics.c (finish_omp_clauses): Add new argument. Allow
52 floating-point variables in the linear clause for Cilk Plus.
53
323af7cf
NS
542016-04-20 Nathan Sidwell <nathan@acm.org>
55
56 * semantics.c (finish_compound_lteral): Don't wrap VECTOR_TYPEs in a
57 TARGET_EXPR.
58
3ba065e8
JM
592016-04-19 Jason Merrill <jason@redhat.com>
60
76f39440
JM
61 PR c++/66543
62 * expr.c (mark_exp_read): Handle NON_DEPENDENT_EXPR.
63 * pt.c (make_pack_expansion): Call mark_exp_read.
64 * semantics.c (finish_id_expression): Call mark_type_use in
65 unevaluated context.
66
218e9dde
JM
67 DR 2137
68 * call.c (implicit_conversion): If we choose a copy constructor
69 for list-initialization from the same type, the conversion is an
70 exact match.
71
06ec22b7
JM
72 * constexpr.c (breaks): Handle EXIT_EXPR.
73 (cxx_eval_loop_expr): Handle COMPOUND_EXPR body.
74 (cxx_eval_constant_expression): Handle EXIT_EXPR, improve handling
75 of COMPOUND_EXPR.
76
f937929e
JM
77 PR c++/68206
78 PR c++/68530
79 * constexpr.c (potential_constant_expression_1): Handle LOOP_EXPR
80 and GOTO_EXPR.
81
b1e47084
JM
82 * pt.c (tsubst_expr): Remove shadowing declaration.
83 (tsubst_pack_expansion): Add assert.
84
85 * semantics.c (add_decl_expr): Use DECL_SOURCE_LOCATION.
86
3ba065e8
JM
87 PR c++/70522
88 * name-lookup.c (qualified_lookup_using_namespace): Look through
89 hidden names.
90
fe37c7af
MM
912016-04-18 Michael Matz <matz@suse.de>
92
93 * class.c (build_vtable): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
94 (layout_class_type): Ditto.
95 (build_base_field): Use SET_DECL_ALIGN.
96 (fixup_attribute_variants): Use SET_TYPE_ALIGN.
97 * decl.c (duplicate_decls): Use SET_DECL_ALIGN.
98 (record_unknown_type): Use SET_TYPE_ALIGN.
99 (cxx_init_decl_processing): Ditto.
100 (copy_type_enum): Ditto.
101 (grokfndecl): Use SET_DECL_ALIGN.
102 (copy_type_enum): Use SET_TYPE_ALIGN.
103 * pt.c (instantiate_class_template_1): Use SET_TYPE_ALIGN.
104 (tsubst): Ditto.
105 * tree.c (cp_build_qualified_type_real): Use SET_TYPE_ALIGN.
106 * lambda.c (maybe_add_lambda_conv_op): Use SET_DECL_ALIGN.
107 * method.c (implicitly_declare_fn): Use SET_DECL_ALIGN.
108 * rtti.c (emit_tinfo_decl): Ditto.
109
81c160c6
JM
1102016-04-18 Jason Merrill <jason@redhat.com>
111
112 PR c++/70690
113 PR c++/70528
114 * class.c (type_maybe_constexpr_default_constructor): New.
115 (type_has_constexpr_default_constructor): Revert.
116
a4186552
SL
1172016-04-16 Sandra Loosemore <sandra@codesourcery.com>
118
119 PR target/1078
120
121 * tree.c (cxx_attribute_table): Remove "com_interface" entry.
122 (handle_com_interface_attribute): Delete.
123
a7b12f1f
JM
1242016-04-15 Jason Merrill <jason@redhat.com>
125
3d8dfcb4
JM
126 PR c++/70685
127 * constexpr.c (get_fundef_copy): Handle null *slot.
128
a7b12f1f
JM
129 PR c++/70505
130 * pt.c (tsubst_baselink): Give the new TEMPLATE_ID_EXPR
131 unknown_type_node, too.
132
70f4fdeb
JJ
1332016-04-15 Jason Merrill <jason@redhat.com>
134 Nathan Sidwell <nathan@acm.org>
135
136 PR c++/70594
137 * constexpr.c (constexpr_call_table): Preserve in GC.
138 (struct fundef_copy, struct fundef_copies_table_t): Delete.
139 (fundef_copies_table): Preserve in GC. Change to pointer to
140 tree->tree hash.
141 (maybe_initialize_fundef_copies_table): Adjust.
142 (get_fundef_copy): Return a TREE_LIST. Use non-inserting search.
143 (save_fundef_copy): Adjust for a TREE_LIST.
144 (cxx_eval_call_expression): Adjust for a fundef_copy TREE_LIST.
145 (fini_constexpr): New.
146 * cp-tree.h (fini_constexpr): Declare.
147 * decl2.c (c_parse_final_cleanups): Call fini_constexpr.
148
dda1bf61
JJ
1492016-04-15 Jakub Jelinek <jakub@redhat.com>
150
151 PR c/70436
152 * parser.c (cp_parser_pragma): Add IF_P argument, pass it down
153 where needed.
154 (cp_parser_declaration_seq_opt, cp_parser_member_specification_opt,
155 cp_parser_objc_interstitial_code, cp_parser_omp_declare_simd,
156 cp_parser_oacc_routine): Adjust cp_parser_pragma callers.
157 (cp_parser_statement): Likewise. Adjust cp_parser_cilk_for caller.
158 (cp_parser_omp_structured_block): Add IF_P argument, pass it down to
159 cp_parser_statement.
160 (cp_parser_oacc_data, cp_parser_oacc_host_data, cp_parser_oacc_loop,
161 cp_parser_oacc_kernels_parallel, cp_parser_omp_critical,
162 cp_parser_omp_simd, cp_parser_omp_for, cp_parser_omp_master,
163 cp_parser_omp_ordered, cp_parser_omp_parallel, cp_parser_omp_single,
164 cp_parser_omp_task, cp_parser_omp_taskgroup, cp_parser_omp_distribute,
165 cp_parser_omp_teams, cp_parser_omp_target_data, cp_parser_omp_target,
166 cp_parser_omp_taskloop, cp_parser_omp_construct,
167 cp_parser_cilk_grainsize, cp_parser_cilk_simd, cp_parser_cilk_for):
168 Add IF_P argument, pass it down where needed.
169 (cp_parser_omp_for_loop): Likewise. Clear IF_P if nbraces.
170 (cp_parser_omp_sections_scope): Adjust cp_parser_omp_structured_block
171 calls.
172
3ae9a8b7
JM
1732016-04-14 Jason Merrill <jason@redhat.com>
174
8e718ecb
JM
175 PR c++/70494
176 * decl.c (cxx_maybe_build_cleanup): Handle non-decls.
177 * typeck2.c (split_nonconstant_init_1): Use it.
178
26144dde
JM
179 PR c++/70528
180 * class.c (type_has_constexpr_default_constructor): Return true
181 for an implicitly declared constructor.
182
65bddf28
JM
183 PR c++/70622
184 * parser.c (cp_parser_init_declarator): Add auto_result parm.
185 (cp_parser_simple_declaration): Pass it.
186 (strip_declarator_types): New.
187
d25a101f
JM
188 PR c++/70543
189 * pt.c (value_dependent_expression_p) [VAR_DECL]: A type-dependent
190 initializer also makes the variable value-dependent.
191
3ae9a8b7
JM
192 PR c++/70648
193 * constexpr.c (cxx_eval_store_expression): Also copy
194 CONSTRUCTOR_NO_IMPLICIT_ZERO.
195
d8747845
MS
1962016-04-14 Martin Sebor <msebor@redhat.com>
197
198 PR c++/69517
199 PR c++/70019
200 PR c++/70588
201 * cp-tree.h, decl.c, init.c, typeck2.c: Revert.
202
9f285ccb
JM
2032016-04-14 Jason Merrill <jason@redhat.com>
204
205 * call.c, decl.c, error.c, cp-tree.h, decl.c: Revert empty
206 parameter ABI change.
207
342fac95
MS
2082016-04-13 Martin Sebor <msebor@redhat.com>
209
210 PR c++/69517
211 PR c++/70019
212 PR c++/70588
213 * cp-tree.h (throw_bad_array_length, build_vla_check): Declare new
214 functions.
215 * decl.c (check_initializer, cp_finish_decl): Call them.
216 (reshape_init_r): Reject incompletely braced intializer-lists
217 for VLAs.
218 * init.c (throw_bad_array_length, build_vla_check)
219 (build_vla_size_check, build_vla_init_check): Define new functions.
220 * typeck2.c (split_nonconstant_init_1): Use variably_modified_type_p()
221 to detect a VLA.
222 (store_init_value): Same.
223
5655267c
JM
2242016-04-13 Jason Merrill <jason@redhat.com>
225
2ee35bea
JM
226 Warn about empty parameter ABI with -Wabi=9.
227 * call.c (empty_class_msg, mark_for_abi_warning)
228 (warn_empty_class_abi): New.
229 (build_call_a): Use them.
230 * decl.c (store_parm_decls): Use mark_for_abi_warning.
231 * error.c (pp_format_to_string): New.
232
5655267c
JM
233 Pass empty class parameters like C.
234 * call.c (pass_as_empty_struct, empty_class_arg): New.
235 (type_passed_as, build_x_va_arg): Use pass_as_empty_struct.
236 (build_call_a): Use empty_class_arg.
237 * cp-tree.h (CPTI_EMPTY_STRUCT, empty_struct_type): New.
238 * decl.c (cxx_init_decl_processing): Create empty_struct_type.
239
0d9cdbdd
JM
2402016-04-13 Jason Merrill <jason@redhat.com>
241
242 PR c++/70627
243 * decl.c (start_enum): Don't change an existing ENUM_UNDERLYING_TYPE.
244
545a4139
PC
2452016-04-13 Paolo Carlini <paolo.carlini@oracle.com>
246
247 PR c++/70635
248 * pt.c (resolve_typename_type): Fix typos in infinite recursion
249 avoidance mechanism.
250
eb07f187
JM
2512016-04-13 Jason Merrill <jason@redhat.com>
252
463d91c6
JM
253 PR c++/70634
254 * pt.c (instantiation_dependent_uneval_expression_p): Split out
255 from instantiation_dependent_expression_p.
256 (value_dependent_expression_p): Use it for unevaluated operands.
257 (instantiation_dependent_r): Don't check value-dependence.
258 (instantiation_dependent_expression_p): Check
259 value-dependence of the expression as a whole.
260 * cp-tree.h: Declare instantiation_dependent_uneval_expression_p.
261 * semantics.c (finish_decltype_type): Use it.
262
eb07f187
JM
263 * constexpr.c (potential_nondependent_constant_expression): New.
264 (potential_nondependent_static_init_expression): New.
265 (maybe_constant_value_1, fold_non_dependent_expr)
266 (maybe_constant_init): Use them.
267 * pt.c (instantiate_non_dependent_expr_sfinae)
268 (instantiate_non_dependent_or_null, convert_nontype_argument): Use
269 them.
270 * cp-tree.h: Declare them.
271
3eddc1c9
JJ
2722016-04-13 Jakub Jelinek <jakub@redhat.com>
273
274 PR c++/70594
275 * decl.c (pop_labels_1): Removed.
276 (note_label, sort_labels): New functions.
277 (pop_labels): During named_labels traversal, just push the slot
278 pointers into a vector, then qsort it by DECL_UID and only then
279 call pop_label and chain it into BLOCK_VARS.
280
9d409934
JM
2812016-04-13 Jason Merrill <jason@redhat.com>
282
283 PR c++/70615
284 * cp-gimplify.c (cp_genericize_r): Expand PTRMEM_CST here.
285 (cp_gimplify_expr): Not here.
286
92886d3e
PP
2872016-04-12 Patrick Palka <ppalka@gcc.gnu.org>
288
289 PR c++/70610
290 * tree.c (lvalue_kind) [NON_DEPENDENT_EXPR]: Unconditionally
291 recurse into it.
292 * typeck.c (build_x_conditional_expr): Unconditionally remember
293 that the result is an lvalue or xvalue.
294
08d6d8bb
JM
2952016-04-12 Jason Merrill <jason@redhat.com>
296
297 * class.c (is_really_empty_class): A zero-length array is empty.
298 An unnamed bit-field doesn't make a class non-empty.
299
2b2f52bc
PC
3002016-04-12 Paolo Carlini <paolo.carlini@oracle.com>
301
302 PR c++/68722
303 * parser.c (cp_parser_cache_defarg): When file ends in default
304 argument simply return error_mark_node.
305
d4619dc1
NS
3062016-04-12 Nathan Sidwell <nathan@acm.org>
307
308 PR c++/70501
309 * constexpr.c (cxx_eval_bare_aggregate): Handle VECTOR_TYPE
310 similarly to PMF.
311
a9c2f3d9
JM
3122016-04-11 Jason Merrill <jason@redhat.com>
313
314 * mangle.c (decl_is_template_id): The template itself counts as a
315 template-id.
316
56cfb596
PP
3172016-04-08 Patrick Palka <ppalka@gcc.gnu.org>
318
319 PR c++/70590
320 PR c++/70452
321 * constexpr.c (cxx_eval_outermost_expression): Call unshare_expr
322 on the result if it's not a CONSTRUCTOR.
323
0146e25f
PP
3242016-04-07 Patrick Palka <ppalka@gcc.gnu.org>
325
326 PR c++/70452
327 * constexpr.c (find_constructor): New function.
328 (unshare_constructor): New function.
329 (cxx_eval_call_expression): Use unshare_constructor instead of
330 unshare_expr.
331 (find_array_ctor_elt): Likewise.
332 (cxx_eval_vec_init_1): Likewise.
333 (cxx_eval_store_expression): Likewise.
334 (cxx_eval_constant_expression): Likewise.
335
6b37bdaf
PP
3362016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
337
338 PR c/70436
339 * cp-tree.h (FOR_EACH_CLONE): Restructure macro to avoid
340 potentially generating a future -Wparentheses warning in its
341 callers.
342
469abfd2
JM
3432016-04-06 Jason Merrill <jason@redhat.com>
344
345 * class.c (check_abi_tags): Fix function template handling.
346
c08d28ac
NS
3472016-04-05 Nathan Sidwell <nathan@acm.org>
348
349 PR c++/70512
350 * class.c (fixup_may_alias): New.
351 (fixup_attribute_variants): Call it.
352
c0daf32d
PP
3532016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
354
355 PR c++/70452
356 * constexpr.c (struct fundef_copy): New struct.
357 (struct fundef_copies_table_t): New struct.
358 (fundef_copies_table): New static variable.
359 (maybe_initialize_fundef_copies_table): New static function.
360 (get_fundef_copy): New static function.
361 (save_fundef_copy): New static function.
362 (cxx_eval_call_expression): Use get_fundef_copy, and
363 save_fundef_copy.
364 (constexpr_call_table): Add "deletable" GTY marker.
365
7a7ac32a
PP
3662016-04-05 Patrick Palka <ppalka@gcc.gnu.org>
367
368 PR c++/70452
369 * cp-tree.h (class cache_map): Remove.
370 * constexpr.c (cv_cache): Change type to
371 GTY((deletable)) hash_map<tree, tree> *.
372 (maybe_constant_value): Adjust following the change to cv_cache.
373 (clear_cv_cache): New static function.
374 (clear_cv_and_fold_caches): Use it.
375 * cp-gimplify.c (fold_cache): Change type to
376 GTY((deletable)) hash_map<tree, tree> *.
377 (clear_fold_cache): Adjust following the change to fold_cache.
378 (cp_fold): Likewise.
379
abdc16c8
MS
3802016-04-02 Martin Sebor <msebor@redhat.com>
381
382 PR c++/67376
383 PR c++/70170
384 PR c++/70172
385 PR c++/70228
386 * constexpr.c (diag_array_subscript): New function.
387 (cxx_eval_array_reference): Detect out of bounds array indices.
388
ddd6d421
JM
3892016-04-01 Jason Merrill <jason@redhat.com>
390
391 PR c++/70449
392 PR c++/70344
393 * pt.c (instantiate_decl): A function isn't fully defined if
394 DECL_INITIAL is error_mark_node.
395 * constexpr.c (cxx_eval_call_expression): Likewise.
396
0f875435
JJ
3972016-04-01 Jakub Jelinek <jakub@redhat.com>
398 Marek Polacek <polacek@redhat.com>
399
400 PR c++/70488
401 * init.c (warn_placement_new_too_small): Test whether
402 DECL_SIZE_UNIT or TYPE_SIZE_UNIT are integers that fit into uhwi.
403
f9bf89bb
NS
4042016-04-01 Nathan Sidwell <nathan@acm.org>
405
406 PR c++/68475
407 * decl.c (check_redeclaration_exception_specification): Check
408 regardless of -fno-exceptions.
409 * typeck2.c (merge_exception_specifiers): Relax assert by checking
410 flag_exceptions too.
411
8f80cbdb
NS
4122016-03-31 Nathan Sidwell <nathan@acm.org>
413
414 * decl.c (start_preparsed_function): Remove unnecessary bracing.
415 (finish_destructor_body): Don't emit operator delete here.
416
88504f34
NS
4172016-03-31 Nathan Sidwell <nathan@acm.org>
418
419 PR c++/70393
420 * constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR
421 elements in field order.
422
5fde6a45
MP
4232016-03-31 Marek Polacek <polacek@redhat.com>
424
425 PR c/70297
426 * decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
427
efc3536f
RB
4282016-03-31 Richard Biener <rguenther@suse.de>
429
430 PR c++/70430
431 * typeck.c (cp_build_binary_op): Fix operand order of vector
432 conditional in truth op handling.
433
e0bffbbb
JM
4342016-03-29 Jason Merrill <jason@redhat.com>
435
436 PR c++/70353
437 * decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics
438 in constexpr functions.
439
bfec0b4d
JM
4402016-03-28 Jason Merrill <jason@redhat.com>
441
442 PR c++/70422
443 PR c++/64266
444 PR c++/70353
445 * decl.c, pt.c, constexpr.c: Revert last patch.
446
d7796e23
JM
4472016-03-25 Jason Merrill <jason@redhat.com>
448 Martin Liška <mliska@suse.cz>
449
450 PR c++/64266
451 PR c++/70353
452 Core issue 1962
453 * decl.c (cp_fname_init): Decay the initializer to pointer.
454 (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P,
455 DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
456 Don't call cp_finish_decl.
457 * pt.c (tsubst_expr) [DECL_EXPR]: Set DECL_VALUE_EXPR,
458 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P. Don't call cp_finish_decl.
459 * constexpr.c (cxx_eval_constant_expression) [VAR_DECL]:
460 Handle DECL_VALUE_EXPR.
461
52228180
JM
4622016-03-24 Jason Merrill <jason@redhat.com>
463
8a29084d
JM
464 PR c++/70386
465 * constexpr.c (cxx_eval_bare_aggregate): Handle PMFs.
466
52228180
JM
467 PR c++/70323
468 * constexpr.c (cxx_eval_call_expression): Don't cache result if
469 *overflow_p.
470
887ab4e5
PP
4712016-03-24 Patrick Palka <ppalka@gcc.gnu.org>
472
473 PR c++/62212
474 * tree.c (build_cplus_array_type): Determine type-dependentess
475 with uses_template_parms instead of with dependent_type_p.
476
426b9428
PP
4772016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
478
479 PR c++/70347
480 * typeck.c (process_init_constructor_union): If the initializer
481 is empty, use the union's NSDMI if it has one.
482
cd1588c4
PP
4832016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
484
485 PR c++/70332
486 * pt.c (tsubst_copy) [PARM_DECL]: Handle the use of 'this' in an
487 NSDMI that's part of an aggregrate initialization.
488
04833609
JJ
4892016-03-23 Jakub Jelinek <jakub@redhat.com>
490
928af3bf
JJ
491 PR c++/70001
492 * constexpr.c (cxx_eval_vec_init_1): Reuse CONSTRUCTOR initializers
493 for 1..max even for multi-dimensional arrays. Call unshare_expr
494 on it.
495
61637db3
JJ
496 PR c++/70323
497 * constexpr.c (cxx_eval_constant_expression): Diagnose overflow
498 on TREE_OVERFLOW constants.
499
04833609
JJ
500 PR c++/70376
501 * cp-gimplify.c (genericize_omp_for_stmt): Don't walk OMP_FOR_CLAUSES
502 for OMP_TASKLOOP here.
503 (cp_genericize_r): Handle OMP_TASKLOOP like OMP_TASK, except do call
504 genericize_omp_for_stmt instead of cp_walk_tree on OMP_BODY.
505
05aca4e7
AO
5062016-03-23 Alexandre Oliva <aoliva@redhat.com>
507 Jason Merrill <jason@redhat.com>
508 Jakub Jelinek <jakub@redhat.com>
509
510 PR c++/69315
511 * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): Remove.
512 * decl.c (defer_mark_used_calls, deferred_mark_used_calls): Remove.
513 (finish_function): Don't set or test them.
514 * decl2.c (mark_used): Don't handle defer_mark_used_calls.
515
96a4ef9d
JM
5162016-03-23 Jason Merrill <jason@redhat.com>
517
518 PR c++/70344
519 * constexpr.c (cxx_eval_call_expression): Catch invalid recursion.
520
fbdb6baf
MP
5212016-03-23 Marek Polacek <polacek@redhat.com>
522
523 PR c++/69884
524 * pt.c (canonicalize_type_argument): Use OPT_Wignored_attributes.
525
6cedf922
IE
5262016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
527
528 * call.c (build_conditional_expr_1): Always use original
529 condition type for vector type checks and build.
530
16f6d7dc
PP
5312016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
532
533 PR c++/70096
534 * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.
535
a3e2b438
PP
5362016-03-22 Patrick Palka <ppalka@gcc.gnu.org>
537
538 PR c++/70204
539 * constexpr.c (non_const_var_error): Check
540 DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
541
ad779205
RH
5422016-03-21 Richard Henderson <rth@redhat.com>
543
544 PR c++/70273
545 * decl.c (notice_forced_label_r): New.
546 (cp_finish_decl): Use it.
547
683b8101
JM
5482016-03-21 Jason Merrill <jason@redhat.com>
549
550 PR c++/70285
551 * cp-gimplify.c (cp_fold) [COND_EXPR]: Handle bit-fields.
552
eb0dbdc7
JM
5532016-03-18 Jason Merrill <jason@redhat.com>
554
86461cad
JM
555 PR c++/70139
556 * constexpr.c (cxx_eval_call_expression): Fix trivial copy.
557
b5a28d80
JM
558 PR c++/70147
559 * class.c (vptr_via_virtual_p): New.
560 (most_primary_binfo): Factor out of build_rtti_vtbl_entries.
561 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Don't clear
562 a vptr from any virtual base in a not-in-charge 'structor.
563
bf08acda
JM
564 * decl.c (build_clobber_this): Factor out of
565 start_preparsed_function and begin_destructor_body. Handle
566 virtual bases better.
567
eb0dbdc7
JM
568 * class.c (build_if_in_charge): Split out from build_base_path.
569 * init.c (expand_virtual_init, expand_default_init): Use it.
570 * call.c (build_special_member_call): Use it.
571
dd125026
JJ
5722016-03-18 Jakub Jelinek <jakub@redhat.com>
573
574 PR c++/70267
575 * init.c (build_new_1): Complain and return error_mark_node
576 if alloc_fn is not _Jv_AllocObject function returning pointer.
577
91914f0a
PP
5782016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
579
580 PR c++/70205
581 * search.c (adjust_result_of_qualified_name_lookup): Don't
582 update the BASELINK_BINFO of DECL if the second call
583 to lookup_base fails.
584
753a8910
PP
5852016-03-18 Patrick Palka <ppalka@gcc.gnu.org>
586
587 PR c++/70218
588 * parser.c (cp_parser_lambda_expression): Move call to
589 pop_deferring_access_checks ahead of the call to
590 cp_parser_end_tentative_firewall.
591
a3aad0e6
JJ
5922016-03-17 Jakub Jelinek <jakub@redhat.com>
593
17366700
JJ
594 PR c++/70144
595 * cp-tree.h (magic_varargs_p): Return int instead of bool.
596 * call.c (magic_varargs_p): Return int instead of bool, return 2 for
597 Cilk+ reductions, otherwise 1 for magic varargs and 0 for normal
598 varargs.
599 (build_over_call): If magic_varargs_p == 2, call reject_gcc_builtin,
600 if magic_varargs_p == 1, call decay_conversion
601 instead of mark_type_use. Don't store error_mark_node arguments to
602 argarray, instead return error_mark_node.
603
a3aad0e6
JJ
604 PR c++/70272
605 * decl.c (begin_destructor_body): Don't insert clobber if
606 is_empty_class (current_class_type).
607
b1970801
MP
6082016-03-17 Marek Polacek <polacek@redhat.com>
609
610 PR c++/70194
611 * typeck.c (warn_for_null_address): New function.
612 (cp_build_binary_op): Call it.
613
c5e003cf
JM
6142016-03-16 Jason Merrill <jason@redhat.com>
615
616 PR c++/70259
617 * decl.c (start_preparsed_function): Don't clobber an empty base.
618
1935f250
JJ
6192016-03-16 Jakub Jelinek <jakub@redhat.com>
620
6651c93e
JJ
621 PR c++/70147
622 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Conditionalize
623 BINFO_VIRTUAL_P vtable clearing on current_in_charge_parm.
624
1935f250
JJ
625 PR c++/70147
626 * cp-ubsan.c (cp_ubsan_maybe_initialize_vtbl_ptrs): Temporarily
627 set in_base_initializer.
628
42c729c5
MP
6292016-03-15 Marek Polacek <polacek@redhat.com>
630
631 PR c++/70209
632 * tree.c (strip_typedefs): Call strip_typedefs again on the
633 DECL_ORIGINAL_TYPE result.
634
3f91db69
JM
6352016-03-15 Jason Merrill <jason@redhat.com>
636
d1ccf407
JM
637 PR c++/70095
638 * pt.c (instantiate_decl): Fix call to variable_template_p.
639
3f91db69
JM
640 PR c++/70141
641 * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE.
642
598a208c
CC
6432016-03-14 Casey Carter <casey@carter.net>
644 Jason Merrill <jason@redhat.com>
645
08a1cadc 646 P0184R0: Generalizing the Range-Based For Loop
598a208c
CC
647 * parser.c (cp_convert_range_for): Set the type of __end separately.
648 (cp_parser_perform_range_for_lookup): Allow different begin/end
649 types if they are comparable.
650
3f1e5d3a
PP
6512016-03-12 Patrick Palka <ppalka@gcc.gnu.org>
652
653 PR c++/70106
654 * semantics.c (force_paren_expr): Just build a PAREN_EXPR when
655 processing_template_decl and EXPR is a SCOPE_REF.
656
b87a8d7d
PP
6572016-03-10 Patrick Palka <ppalka@gcc.gnu.org>
658 Jakub Jelinek <jakub@redhat.com>
659
660 PR c++/70001
661 * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse
662 return value from cxx_eval_constant_expression from earlier
663 elements if it is valid constant initializer requiring no
664 relocations.
665
d49b0aa0
MP
6662016-03-10 Marek Polacek <polacek@redhat.com>
667
668 PR c++/70153
669 * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR.
670
96b3c82d
CP
6712016-03-09 Cesar Philippidis <cesar@codesourcery.com>
672
673 * parser.c (cp_parser_oacc_loop): Update cclauses and clauses
674 when calling c_finish_omp_clauses.
675
1e546b68
JM
6762016-03-08 Jason Merrill <jason@redhat.com>
677
80aac5c8
JM
678 * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
679 diagnostic for use of "concept".
680 (cp_parser_requires_clause_opt): And "requires".
681 (cp_parser_type_parameter, cp_parser_late_return_type_opt)
682 (cp_parser_explicit_template_declaration): Adjust.
683 * Make-lang.in (check-c++-all): Add "concepts" to std list.
684
1e546b68
JM
685 P0036R0: Unary Folds and Empty Parameter Packs
686 * pt.c (expand_empty_fold): Remove special cases for *,+,&,|.
687
56aae4b7
JJ
6882016-03-08 Jakub Jelinek <jakub@redhat.com>
689
d259b234
JJ
690 PR c++/70135
691 * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs
692 even after the last iteration of the loop.
693
56aae4b7
JJ
694 * decl.c (duplicate_decls): Fix spelling - becuase -> because.
695
dbb23418
PP
6962016-03-07 Patrick Palka <ppalka@gcc.gnu.org>
697
698 PR c++/66786
699 * pt.c (get_template_info): Handle PARM_DECL.
700 (template_class_depth): Check DECL_P instead of
701 VAR_OR_FUNCTION_DECL_P.
702
d96e8407
JM
7032016-03-05 Jason Merrill <jason@redhat.com>
704
705 PR c++/67364
706 * constexpr.c (cxx_eval_store_expression): Replace
707 CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
708
7a3a3fad
PP
7092016-03-05 Patrick Palka <ppalka@gcc.gnu.org>
710
711 PR c++/66786
712 * pt.c (template_class_depth): Given a lambda type, iterate
713 into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its
714 TYPE_CONTEXT. Given a VAR_DECL, iterate into its
715 CP_DECL_CONTEXT.
716
d5bcd6d4
JM
7172016-03-04 Jason Merrill <jason@redhat.com>
718
719 PR c++/69203
720 * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New.
721 * init.c (build_vec_delete_1): Set it.
722 * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it.
723
0c8825de
JJ
7242016-03-04 Jakub Jelinek <jakub@redhat.com>
725
411d61c4
JJ
726 * decl.c (start_preparsed_function): Don't emit start clobber at the
727 start of constructor clones.
728
0c8825de
JJ
729 PR c++/70035
730 * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype.
731 * decl.c (start_preparsed_function): Call
732 cp_ubsan_maybe_initialize_vtbl_ptrs if needed.
733 * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs,
734 cp_ubsan_maybe_initialize_vtbl_ptrs): New functions.
735
b54eff8b
JM
7362016-03-04 Jason Merrill <jason@redhat.com>
737
188e53bd
JM
738 PR c++/67364
739 * constexpr.c (cxx_eval_component_reference): Further tweak.
740
39dce2b7
JM
741 * constexpr.c (struct constexpr_ctx): Add save_exprs field.
742 (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
743 (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
744 (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
745
b54eff8b
JM
746 PR c++/70067
747 * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
748 same type.
749
639475f0
JM
7502016-03-03 Jason Merrill <jason@redhat.com>
751
b47d1d90
JM
752 * method.c (synthesized_method_walk): operator= can also be constexpr.
753
a0a6a8c9
JM
754 * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
755 LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
756
264fd142
JM
757 PR c++/67164
758 * pt.c (copy_template_args): New.
759 (tsubst_pack_expansion): Use it.
760
45c3e69b
JM
761 * call.c (build_aggr_conv): Use get_nsdmi.
762
16dc6b17
JM
763 PR c++/51406
764 * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
765
639475f0
JM
766 PR c++/67364
767 * constexpr.c (cxx_eval_component_reference): Just return an empty
768 CONSTRUCTOR for an empty class.
769
7f0e23e9
JM
7702016-03-01 Jason Merrill <jason@redhat.com>
771
5c969cb8
JM
772 PR c++/70036
773 * parser.c (cp_parser_requires_clause): Call
774 check_for_bare_parameter_packs.
775
c8a66fc9
JM
776 PR c++/51489
777 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
778 the operands.
779
7f0e23e9
JM
780 PR c++/69995
781 * constexpr.c (cxx_eval_call_expression): Unshare arg.
782 (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
783 [TARGET_EXPR]: Unshare init.
784
76d881bf
PP
7852016-03-01 Patrick Palka <ppalka@gcc.gnu.org>
786
787 PR c++/68948
788 PR c++/69961
789 * pt.c (tsubst_baselink): Reinstate the check for an invalid
790 constructor call.
791
7574c916
JM
7922016-02-28 Jason Merrill <jason@redhat.com>
793
794 PR c++/69995
795 * constexpr.c (cxx_eval_store_expression): Unshare init.
796
56cde077
JM
7972016-02-26 Jason Merrill <jason@redhat.com>
798
799 PR c++/69958
800 * pt.c (make_argument_pack): New.
801 (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
802 (tsubst_copy_and_build): Likewise.
803
6284a979
JM
8042016-02-25 Jason Merrill <jason@redhat.com>
805
8ba8c375
JM
806 PR c++/69889
807 * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
808 * tree.c (build_aggr_init_expr): Set it.
809 * semantics.c (simplify_aggr_init_expr): Check it.
810 * cp-gimplify.c (cp_genericize_r): Don't walk into
811 a call/aggr_init from a thunk.
812
bd28a34f
JM
813 PR c++/69842
814 * method.c (forward_parm): Handle parameter packs.
815 * lambda.c (maybe_add_lambda_conv_op): Use it for them.
816
6a0cc1cd
JM
817 PR c++/67364
818 * constexpr.c (cxx_eval_component_reference): Don't complain about
819 unevaluated empty classes.
820
6284a979
JM
821 PR c++/68049
822 * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
823
1137001c
PP
8242016-02-25 Patrick Palka <ppalka@gcc.gnu.org>
825
826 PR c++/69736
827 * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
828 (maybe_undo_parenthesized_ref): Declare.
829 * semantics.c (maybe_undo_parenthesized_ref): Split out from
830 check_return_expr.
831 (finish_call_expr): Use it.
832 * typeck.c (check_return_expr): Use it.
833 * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
834 REF_PARENTHESIZED_P flag.
835
03ca8fb3
JJ
8362016-02-24 Jakub Jelinek <jakub@redhat.com>
837
838 PR c++/69922
839 * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
840 Avoid folding it.
841 * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
842 tests.
843 * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
844 unless they are folded into INTEGER_CST, error_mark_node or some
845 comparison with NULL, avoid folding them and use either the original
846 comparison or non-folded comparison of folded arguments.
847 * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
848 comparison, don't fold the comparison right away.
849
944e9f5f
JM
8502016-02-24 Jason Merrill <jason@redhat.com>
851
852 PR c++/69323
853 * friend.c (make_friend_class): Likewise.
854 * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
855
b8599b68
JM
8562016-02-24 Jason Merrill <jason@redhat.com>
857
858 PR c++/69323
859 * pt.c (instantiate_class_template_1): Set
860 processing_template_decl before substituting friend_type.
861
3b96b93a
MS
862016-02-24 Martin Sebor <msebor@redhat.com>
863
864 PR c++/69912
865 * tree.c (build_ctor_subob_ref): Compare types' main variants
866 instead of the types as they are.
867
28577b86
JM
8682016-02-24 Jason Merrill <jason@redhat.com>
869
a021961c
JM
870 * decl.c (start_preparsed_function): Condition ctor clobber on
871 flag_lifetime_dse > 1.
872
28577b86
JM
873 * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
874
2207c599
JM
8752016-02-19 Jason Merrill <jason@redhat.com>
876
877 PR c++/69743
878 * call.c (remaining_arguments): No longer static.
879 * cp-tree.h: Declare it.
880 * pt.c (more_specialized_fn): Use it.
881
3a27b4db
JJ
8822016-02-19 Jakub Jelinek <jakub@redhat.com>
883 Bernd Edlinger <bernd.edlinger@hotmail.de>
884
885 * Make-lang.in: Invoke gperf with -L C++.
886 * cfns.gperf: Remove prototypes for hash and libc_name_p
887 inlines.
888 * cfns.h: Regenerated.
889 * except.c (nothrow_libfn_p): Adjust.
890
7a965d51
JJ
8912016-02-19 Jakub Jelinek <jakub@redhat.com>
892
893 PR c++/69850
894 * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
895 NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
896
200e869c
PP
8972016-02-19 Patrick Palka <ppalka@gcc.gnu.org>
898
899 PR c++/68948
900 * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
901 call here.
902 * semantics.c (finish_call_expr): Don't assume a constructor
903 call is dependent if only the "this" pointer is dependent. When
904 building a constructor call, always use a dummy object.
905
19e21586
JJ
9062016-02-19 Jakub Jelinek <jakub@redhat.com>
907
03a616ac
JJ
908 PR c++/69850
909 * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
910 condition.
911 * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
912 operators if folding preserved the binop, just with different
913 arguments.
914
19e21586
JJ
915 PR c++/67767
916 * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
917 attr_spec is always single element chain, chain all the attributes
918 properly together in the right order.
919
747b61fc
JM
9202016-02-18 Jason Merrill <jason@redhat.com>
921
922 * mangle.c (maybe_check_abi_tags): Add for_decl parm. Call
923 mangle_decl.
924 (mangle_decl): Call maybe_check_abi_tags for function scope.
925 (mangle_guard_variable): Call maybe_check_abi_tags here.
926 (write_guarded_var_name): Not here.
927
50ccdf5b
JM
9282016-02-17 Jason Merrill <jason@redhat.com>
929
fa837fb6
JM
930 PR c++/65985
931 * constexpr.c (build_constexpr_constructor_member_initializers):
932 Handle an additional STATEMENT_LIST.
933
bcb5f3c9
JM
934 PR c++/68585
935 * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
936
50ccdf5b
JM
937 PR c++/68679
938 * decl2.c (reset_type_linkage_2): Look through member templates.
939
932c0da4
JJ
9402016-02-17 Jakub Jelinek <jakub@redhat.com>
941
942 PR c++/69850
943 * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
944
0f02dd56
JM
9452016-02-17 Jason Merrill <jason@redhat.com>
946
947 PR c++/69842
948 * method.c (forward_parm): Split out from...
949 (add_one_base_init): ...here.
950 * lambda.c (maybe_add_lambda_conv_op): Use it.
951
6bab4c63
JM
9522016-02-16 Jason Merrill <jason@redhat.com>
953
954 PR c++/10200
955 PR c++/69753
956 * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
957 tree.c, typeck2.c: Revert earlier changes.
958 * parser.c (cp_parser_lookup_name): Ignore namespace-scope
959 non-type templates after -> or .
960
bf14eba2
JJ
9612016-02-16 Jakub Jelinek <jakub@redhat.com>
962
963 PR c/69835
964 * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
965
7128d6ab
JM
9662016-02-16 Jason Merrill <jason@redhat.com>
967
968 PR c++/69657
969 * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
970 (set_decl_namespace): Pass it. Complain about finding a hidden friend.
971 * name-lookup.h: Adjust.
972
ba539195
JN
9732016-02-16 James Norris <jnorris@codesourcery.com>
974
975 * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
976 * semantics.c (finish_omp_clauses): Add deviceptr checking.
977
f0516ca4
JJ
9782016-02-15 Jakub Jelinek <jakub@redhat.com>
979
980 PR c++/69658
981 * init.c (expand_default_init): Only call reshape_init
982 in the direct-initialization from an initializer list case.
983
fe69277d
JM
9842016-02-15 Jason Merrill <jason@redhat.com>
985
2bd0a2d6
JM
986 PR c++/69753
987 * semantics.c (finish_call_expr): Implicit 'this' does not make
988 the call dependent.
989 * search.c (any_dependent_bases_p): Split out...
990 * name-lookup.c (do_class_using_decl): ...from here.
991 * call.c (build_new_method_call_1): Don't complain about missing object
992 if there are dependent bases. Tweak error.
993 * tree.c (non_static_member_function_p): Remove.
994 * pt.c (type_dependent_expression_p): A member template of a
995 dependent type is dependent.
996 * cp-tree.h: Adjust.
997
fe69277d
JM
998 PR c++/68890
999 * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
1000
38d795d2
PP
10012016-02-12 Patrick Palka <ppalka@gcc.gnu.org>
1002
1003 PR c++/69098
1004 * pt.c (lookup_and_finish_template_variable): New function,
1005 extracted from ...
1006 (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here. Use it.
1007 (tsubst_qualified_id): Consider that EXPR might be a variable
1008 template.
1009 * typeck.c (check_template_keyword): Don't emit an error
1010 if DECL is a variable template.
1011
9c582551
JJ
10122016-02-12 Jakub Jelinek <jakub@redhat.com>
1013
1014 * error.c: Spelling fixes - behaviour -> behavior and
1015 neighbour -> neighbor.
1016 * decl.c: Likewise.
1017 * typeck.c (cp_build_binary_op): Fix up behavior spelling in
1018 diagnostics.
1019 * init.c (build_delete): Likewise.
1020
66756373
JJ
10212016-02-11 Jakub Jelinek <jakub@redhat.com>
1022
1023 PR c/69768
1024 * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
1025 arguments for -Waddress warning. Fix up formatting.
1026
0d7d9458
PC
10272016-02-11 Paolo Carlini <paolo.carlini@oracle.com>
1028
1029 PR c++/68726
1030 * pt.c (lookup_template_class_1): Check tsubst return value for
1031 error_mark_node.
1032
3a4219ca
JM
10332016-02-10 Jason Merrill <jason@redhat.com>
1034
46f0d909
JM
1035 PR c++/68926
1036 * pt.c (resolve_nondeduced_context): Add complain parm.
1037 (do_auto_deduction): Pass it.
1038 * cvt.c (convert_to_void): Likewise.
1039 * decl.c (cp_finish_decl): Likewise.
1040 * init.c (build_new): Likewise.
1041 * rtti.c (get_tinfo_decl_dynamic): Likewise.
1042 * semantics.c (finish_decltype_type): Likewise.
1043 * typeck.c (decay_conversion): Likewise.
1044 * cp-tree.h: Adjust declaration.
1045 * call.c (standard_conversion): Add complain parm, pass it along.
1046 (implicit_conversion): Pass it.
1047
89908c8f
JM
1048 PR c++/69657
1049 * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
1050 (lookup_name_real_1): Likewise.
1051 (remove_hidden_names): Handle non-functions too.
1052
ff2faafc
JM
1053 PR c++/10200
1054 * parser.c (cp_parser_lookup_name): When looking for a template
1055 after . or ->, only consider class templates.
1056 (cp_parser_postfix_dot_deref_expression): Handle the current
1057 instantiation. Remember a dependent object expression.
1058 * typeck2.c (build_x_arrow): Handle the current instantiation.
1059
3a4219ca
JM
1060 * ptree.c (debug_tree): Implement for cp_expr.
1061
efb45a9f
PP
10622016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
1063
1064 PR c++/69139
1065 * parser.c (cp_parser_simple_type_specifier): Make the check
1066 for disambiguating between an 'auto' placeholder and an implicit
1067 template parameter more robust.
1068
20a0c6f9
PP
10692016-02-08 Patrick Palka <ppalka@gcc.gnu.org>
1070
1071 PR c++/69283
1072 PR c++/67835
1073 * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
1074 setting its TREE_USED flag.
1075
1374a761
JM
10762016-02-08 Jason Merrill <jason@redhat.com>
1077
1078 PR c++/69657
1079 * name-lookup.c (do_nonmember_using_decl): Leave anticipated
1080 built-ins alone.
1081
f68bc23f
JJ
10822016-02-08 Jakub Jelinek <jakub@redhat.com>
1083
1084 PR c++/59627
1085 * parser.c (cp_parser_omp_declare_reduction): Set assembler name
1086 of the DECL_OMP_DECLARE_REDUCTION_P decls.
1087
eba9e839
MP
10882016-02-08 Marek Polacek <polacek@redhat.com>
1089
1090 PR c++/69688
1091 * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
1092 Call clear_fold_cache.
1093 * cp-tree.h: Adjust declaration.
1094 * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
1095 rather than clear_cv_cache and clear_fold_cache.
1096 * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
1097
415594bb
JM
10982016-02-08 Jason Merrill <jason@redhat.com>
1099
1100 * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
1101 * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
1102 (ocp_convert): Use *_maybe_fold.
1103 (cp_convert_to_pointer): Add dofold parameter.
1104 * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
1105
46cb9332
MS
11062016-02-05 Martin Sebor <msebor@redhat.com>
1107
1108 PR c++/69662
1109 * init.c (find_field_init): New function.
1110 (warn_placement_new_too_small): Call it. Handle one-element arrays
1111 at ends of structures special.
1112
0fd9d492
JM
11132016-02-05 Jason Merrill <jason@redhat.com>
1114
1115 PR c++/68948
1116 * semantics.c (finish_expr_stmt): If expr is error_mark_node,
1117 make sure we've seen_error().
1118
76c85fbb
PP
11192016-02-05 Patrick Palka <ppalka@gcc.gnu.org>
1120
1121 PR c++/68948
1122 * pt.c (tsubst_baselink): Diagnose an invalid constructor call
1123 if lookup_fnfields returns NULL_TREE and the name being looked
1124 up has the form A::A.
1125
618d6c1c
PP
11262016-02-04 Patrick Palka <ppalka@gcc.gnu.org>
1127
1128 * constexpr.c (cxx_eval_binary_expression): Fold equality
1129 comparisons involving PTRMEM_CSTs.
1130
d1243d27
JJ
11312016-02-04 Jakub Jelinek <jakub@redhat.com>
1132
1133 * class.c (find_flexarrays): Don't declare dom variable.
1134 (diagnose_flexarray): Likewise.
1135
05dd97db
MS
11362016-02-02 Martain Sebor <msebor@redhat.com>
1137
1138 PR c++/69251
1139 PR c++/69253
1140 PR c++/69290
1141 PR c++/69277
1142 PR c++/69349
1143 * class.c (walk_subobject_offsets): Avoid testing the upper bound
1144 of a flexible array member for equality to null.
1145 (find_flexarrays): Remove spurious whitespace introduced in r231665.
1146 (diagnose_flexarrays): Avoid checking the upper bound of arrays.
1147 (check_flexarrays): Same.
1148 * decl.c (compute_array_index_type): Avoid special case for flexible
1149 array members.
1150 (grokdeclarator): Avoid calling compute_array_index_type for flexible
1151 array members.
1152 * error.c (dump_type_suffix): Revert changes introduced in r231665
1153 and rendered unnecessary by the changes above.
1154 * pt.c (tsubst): Same.
1155 * tree.c (build_ctor_subob_ref): Handle flexible array members.
1156 * typeck2.c (digest_init_r): Revert changes introduced in r231665.
1157 (process_init_constructor_array): Same.
1158 (process_init_constructor_record): Same.
1159
ab4bae0c
PP
11602016-02-03 Patrick Palka <ppalka@gcc.gnu.org>
1161
1162 PR c++/69056
1163 * pt.c (try_one_overload): Handle comparing argument packs so
1164 that there is no conflict if we deduced more arguments of an
1165 argument pack than were explicitly specified.
1166
75a27d35
JJ
11672016-01-31 Jakub Jelinek <jakub@redhat.com>
1168 Jason Merrill <jason@redhat.com>
1169
1170 PR c++/68763
1171 * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
1172 function type if nothing is changing.
1173
b676a079
JM
11742016-01-31 Jason Merrill <jason@redhat.com>
1175
6978c505
JM
1176 PR c++/69009
1177 * pt.c (partial_specialization_p, impartial_args): New.
1178 (instantiate_decl): Call impartial_args.
1179
b1568582
JM
1180 * mangle.c (maybe_check_abi_tags): New.
1181 (write_guarded_var_name): Call it.
1182 (mangle_ref_init_variable): Call check_abi_tags.
1183
b676a079
JM
1184 * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
1185 between template and instantiation.
1186
16b77b32
JJ
11872016-01-29 Jakub Jelinek <jakub@redhat.com>
1188
1189 PR debug/66869
1190 * decl.c (wrapup_globals_for_namespace): Warn about unused static
1191 function declarations.
1192
5453bfed
MP
11932016-01-29 Marek Polacek <polacek@redhat.com>
1194
1195 PR c++/69509
1196 PR c++/69516
1197 * constexpr.c (cxx_eval_array_reference): Give the "array subscript
1198 out of bound" error earlier.
1199 * init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
1200 commentary.
1201
e9f69069
PP
12022016-01-29 Patrick Palka <ppalka@gcc.gnu.org>
1203
1204 * name-lookup.c (begin_scope): After reusing a cp_binding_level
1205 structure, update free_binding_level before the structure's
1206 level_chain field gets cleared, not after.
1207
e448880c
JM
12082016-01-28 Jason Merrill <jason@redhat.com>
1209
1210 PR c++/67407
1211 * search.c (dfs_walk_once, dfs_walk_once_r)
1212 (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
1213 hash_set instead of BINFO_MARKED.
1214 (dfs_unmark_r): Remove.
1215
2b4f7b94
PP
12162016-01-28 Patrick Palka <ppalka@gcc.gnu.org>
1217
1218 PR c++/24208
1219 * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
1220 (cp_lexer_debugging_p): Use it.
1221 (cp_lexer_start_debugging): Likewise.
1222 (cp_lexer_stop_debugging): Likewise.
1223
fa74a4bc
MP
12242016-01-27 Marek Polacek <polacek@redhat.com>
1225
1226 PR c/68062
1227 * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
1228 needed. Add -Wsign-compare warning.
1229
5d70666e
RB
12302016-01-27 Ryan Burn <contact@rnburn.com>
1231
1232 PR cilkplus/69267
1233 * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
1234 superfluous post_p argument in call to
1235 cilk_gimplify_call_params_in_spawned_fn.
1236
05bf54c3
MP
12372016-01-27 Marek Polacek <polacek@redhat.com>
1238
1239 PR c++/69379
1240 * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
1241 wrapped in NOP_EXPRs.
1242
60214d0d
MS
12432016-01-27 Martin Sebor <msebor@redhat.com>
1244
1245 PR c++/69317
1246 * mangle.c (mangle_decl): Reference the correct (saved) version
1247 of the ABI in -Wabi diagnostics.
1248
95e3030c
MP
12492016-01-27 Marek Polacek <polacek@redhat.com>
1250
1251 PR c++/69496
1252 * constexpr.c (cxx_eval_array_reference): Evaluate the number of
1253 elements of the array.
1254
ca30abcd
JM
12552016-01-26 Jason Merrill <jason@redhat.com>
1256
1257 PR c++/68949
1258 * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
1259 (cxx_eval_call_expression): Don't look through clones.
1260 * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
1261 * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
1262 maybe-in-charge *tor.
1263
2d63bc39
JM
12642016-01-26 Jason Merrill <jason@redhat.com>
1265
1266 PR c++/68782
1267 * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
1268 and TREE_SIDE_EFFECTS.
1269 (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
1270 verify_constructor_flags.
1271
476805ae
JJ
12722016-01-26 Jakub Jelinek <jakub@redhat.com>
1273
1274 PR c++/68357
1275 * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
1276 return error_mark_node instead of building trees with error_mark_node
1277 operands.
1278
01e1dea3
DM
12792016-01-26 David Malcolm <dmalcolm@redhat.com>
1280
1281 PR other/69006
1282 * error.c (print_instantiation_partial_context_line): Add missing
1283 newlines from output for the t == NULL case.
1284 (print_instantiation_partial_context): Remove call to pp_newline.
1285
a59b92b0
PP
12862016-01-24 Patrick Palka <ppalka@gcc.gnu.org>
1287
1288 Revert:
1289 2016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
1290
1291 PR c++/11858
1292 PR c++/24663
1293 PR c++/24664
1294 * decl.c (grokdeclarator): Don't decay array parameter type to
1295 a pointer type if it's dependent.
1296 (grokparms): Invoke strip_top_quals instead of directly invoking
1297 cp_build_qualified_type.
1298 * pt.c (decay_dependent_array_parm_type): New static function.
1299 (type_unification_real): Call decay_dependent_array_parm_type
1300 to decay a dependent array parameter type to its corresponding
1301 pointer type before unification.
1302 (more_specialized_fn): Likewise.
1303 (get_bindings): Likewise.
1304 * tree.c (cp_build_qualified_type): Trivial typofix in
1305 documentation.
1306
69da7802
MS
13072016-01-23 Martin Sebor <msebor@redhat.com>
1308
1309 PR c++/58109
1310 PR c++/69022
1311 * decl2.c (is_late_template_attribute): Handle dependent argument
1312 to attribute align and attribute vector_size.
1313
97ca3d0d
JM
13142016-01-21 Jason Merrill <jason@redhat.com>
1315
130ee9a9
JM
1316 PR c++/69392
1317 * lambda.c (lambda_capture_field_type): Handle 'this' specially
1318 for init-capture, too.
1319
020491e6
JM
1320 PR c++/65687
1321 * decl.c (type_is_deprecated): Don't look into a typedef.
1322
2f3932b9
JM
1323 PR c++/40751
1324 PR c++/64987
1325 * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
1326
97ca3d0d
JM
1327 PR c++/43407
1328 * decl.c (start_enum): Add attributes parameter.
1329 * parser.c (cp_parser_enum_specifier): Pass it.
1330 * pt.c (lookup_template_class_1): Pass it.
1331 * cp-tree.h: Adjust.
1332
33f48842
JM
13332016-01-19 Jason Merrill <jason@redhat.com>
1334
1335 PR c++/59759
1336 * pt.c (convert_template_argument): Handle VAR_DECL properly.
1337
1e297006
MP
13382016-01-19 Marek Polacek <polacek@redhat.com>
1339
1340 PR c++/68586
1341 * constexpr.c (clear_cv_cache): New.
1342 * cp-gimplify.c (clear_fold_cache): New.
1343 * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
1344 * decl.c (finish_enum_value_list): Call them.
1345
38a979f2
MP
1346 PR c++/68965
1347 * pt.c (tsubst_copy): Mark elements in expanded vector as used.
1348
17c15cb9
PP
13492016-01-18 Patrick Palka <ppalka@gcc.gnu.org>
1350
1351 PR c++/11858
1352 PR c++/24663
1353 PR c++/24664
1354 * decl.c (grokdeclarator): Don't decay array parameter type to
1355 a pointer type if it's dependent.
1356 (grokparms): Invoke strip_top_quals instead of directly invoking
1357 cp_build_qualified_type.
1358 * pt.c (decay_dependent_array_parm_type): New static function.
1359 (type_unification_real): Call decay_dependent_array_parm_type
1360 to decay a dependent array parameter type to its corresponding
1361 pointer type before unification.
1362 (more_specialized_fn): Likewise.
1363 (get_bindings): Likewise.
1364 * tree.c (cp_build_qualified_type): Trivial typofix in
1365 documentation.
1366
7f26f7df
JM
13672016-01-18 Jason Merrill <jason@redhat.com>
1368
4b0b30ef
JM
1369 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
1370
8d8f3235
JM
1371 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
1372
7f26f7df
JM
1373 PR c++/68767
1374 * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify. Do fold COND_EXPR.
1375 (contains_label_1, contains_label_p): Remove.
1376
ec7886c1
PP
13772016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1378
1379 PR c++/69091
1380 * pt.c (type_dependent_expression_p): For a function template
1381 specialization, a type is dependent iff any of its template
1382 arguments are.
1383
203484bb
PP
13842016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1385
1386 * cp-array-notation.c (cp_expand_cond_array_notations): Return
1387 error_mark_node only if find_rank failed, not if it was
1388 successful.
1389
aa2500e9
PP
13902016-01-16 Patrick Palka <ppalka@gcc.gnu.org>
1391
1392 PR c++/68936
1393 * tree.c (build_min_non_dep_call_vec): Don't retain the
1394 KOENIG_LOOKUP_P flag of the non-dependent expression that's
1395 been built.
1396 (build_min_non_dep_op_overload): Instead, do it here.
1397
e0a575ff
JJ
13982016-01-15 Jakub Jelinek <jakub@redhat.com>
1399
1400 PR bootstrap/68271
1401 * parser.h (cp_token): Remove pragma_kind field. Add comment
1402 with number of unused bits.
1403 * parser.c (eof_token): Remove pragma_kind field initializer.
1404 (cp_lexer_get_preprocessor_token): Don't set pragma_kind
1405 field, don't clear CPP_PRAGMA u.value.
1406 (cp_parser_pragma_kind): New function.
1407 (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
1408 cp_parser_omp_construct, cp_parser_initial_pragma,
1409 cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
1410 pragma_kind field.
1411
56233bd6
JM
14122016-01-15 Jason Merrill <jason@redhat.com>
1413
c5e3b6fc
JM
1414 PR c++/68847
1415 * call.c (build_cxx_call): Use fold_non_dependent_expr.
1416
f3255019
JM
1417 * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
1418 value.
1419
56233bd6
JM
1420 PR c++/69257
1421 * typeck.c (decay_conversion): Don't call mark_rvalue_use for
1422 array/function-to-pointer conversion. Call
1423 complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
1424 * call.c (convert_like_real): Print call context if
1425 decay_conversion errors.
1426
e6d6ec9e
TV
14272016-01-14 Tom de Vries <tom@codesourcery.com>
1428
1429 PR tree-optimization/68773
1430 * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
1431 set force_output.
1432
a7ccb9e7
JM
14332016-01-14 Jason Merrill <jason@redhat.com>
1434
1435 PR c++/69261
1436 * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
1437
5342156c
MP
14382016-01-12 Marek Polacek <polacek@redhat.com>
1439
1440 PR c++/68979
1441 * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
1442 error_at and adjust the return value.
1443
723033a6
JJ
14442016-01-12 Jakub Jelinek <jakub@redhat.com>
1445
65364cc5
JJ
1446 PR objc++/68511
1447 PR c++/69213
1448 * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
1449 GS_ERROR whenever seen_error (), only if *expr_p contains
1450 cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
1451
723033a6
JJ
1452 PR c++/66808
1453 PR c++/69000
1454 * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
1455
9fc21977
JM
14562016-01-11 Jason Merrill <jason@redhat.com>
1457
1458 PR c++/69131
1459 * method.c (walk_field_subobs): Add dtor_from_ctor parm.
1460 (process_subob_fn): Likewise. Don't consider triviality if true.
1461 (synthesize_method_walk): Pass it.
1462
655441d6
DM
14632016-01-11 David Malcolm <dmalcolm@redhat.com>
1464
1465 PR c++/68795
1466 * parser.c (cp_parser_postfix_expression): Initialize
1467 close_paren_loc to UNKNOWN_LOCATION; only use it if
1468 it has been written to by
1469 cp_parser_parenthesized_expression_list.
1470 (cp_parser_parenthesized_expression_list): Document the behavior
1471 with respect to the CLOSE_PAREN_LOC param.
1472
9cb6bd74
JJ
14732016-01-11 Jakub Jelinek <jakub@redhat.com>
1474
1475 PR c++/69211
1476 * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
1477 folded operands have side-effects, but folding changed any of them,
1478 build a new tree with the folded operands instead of returning the
1479 unfolded tree.
1480
73f0dae2
MP
14812016-01-09 Marek Polacek <polacek@redhat.com>
1482
1483 PR c++/69113
1484 * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
1485
c50e614b
JJ
14862016-01-09 Jakub Jelinek <jakub@redhat.com>
1487
1488 PR c++/69164
1489 * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
1490
fe71aa4e
JM
14912016-01-08 Jason Merrill <jason@redhat.com>
1492
1493 PR c++/69158
1494 * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
1495 in completion.
1496
bd8f5bb2
MP
14972016-01-08 Marek Polacek <polacek@redhat.com>
1498
1499 PR c++/68449
1500 * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
1501
0795b6f2
JM
15022016-01-08 Jason Merrill <jason@redhat.com>
1503
550c5f8a
JM
1504 * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
1505 workaround.
1506
45177337
JM
1507 PR c++/68983
1508 PR c++/67557
1509 * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
1510 TREE_ADDRESSABLE type.
1511
0795b6f2
JM
1512 PR c++/68983
1513 PR c++/67557
1514 * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
1515
ce3e43d7
NS
15162016-01-05 Nathan Sidwell <nathan@acm.org>
1517
1518 PR c++/58583
1519 * pt.c (build_non_dependent_expr): Don't try a checking fold when
1520 parsing an nsdmi.
1521
818ab71a 15222016-01-04 Jakub Jelinek <jakub@redhat.com>
5624e564
JJ
1523
1524 Update copyright years.
ad41bd84 1525\f
818ab71a 1526Copyright (C) 2016 Free Software Foundation, Inc.
ad41bd84
JM
1527
1528Copying and distribution of this file, with or without modification,
1529are permitted in any medium without royalty provided the copyright
1530notice and this notice are preserved.