Fix PR c++/70590 (error: location references block not in block tree)
[platform/upstream/gcc.git] / gcc / cp / ChangeLog
1 2016-04-08  Patrick Palka  <ppalka@gcc.gnu.org>
2
3         PR c++/70590
4         PR c++/70452
5         * constexpr.c (cxx_eval_outermost_expression): Call unshare_expr
6         on the result if it's not a CONSTRUCTOR.
7
8 2016-04-07  Patrick Palka  <ppalka@gcc.gnu.org>
9
10         PR c++/70452
11         * constexpr.c (find_constructor): New function.
12         (unshare_constructor): New function.
13         (cxx_eval_call_expression): Use unshare_constructor instead of
14         unshare_expr.
15         (find_array_ctor_elt): Likewise.
16         (cxx_eval_vec_init_1): Likewise.
17         (cxx_eval_store_expression): Likewise.
18         (cxx_eval_constant_expression): Likewise.
19
20 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
21
22         PR c/70436
23         * cp-tree.h (FOR_EACH_CLONE): Restructure macro to avoid
24         potentially generating a future -Wparentheses warning in its
25         callers.
26
27 2016-04-06  Jason Merrill  <jason@redhat.com>
28
29         * class.c (check_abi_tags): Fix function template handling.
30
31 2016-04-05  Nathan Sidwell  <nathan@acm.org>
32
33         PR c++/70512
34         * class.c (fixup_may_alias): New.
35         (fixup_attribute_variants): Call it.
36
37 2016-04-05  Patrick Palka  <ppalka@gcc.gnu.org>
38
39         PR c++/70452
40         * constexpr.c (struct fundef_copy): New struct.
41         (struct fundef_copies_table_t): New struct.
42         (fundef_copies_table): New static variable.
43         (maybe_initialize_fundef_copies_table): New static function.
44         (get_fundef_copy): New static function.
45         (save_fundef_copy): New static function.
46         (cxx_eval_call_expression): Use get_fundef_copy, and
47         save_fundef_copy.
48         (constexpr_call_table): Add "deletable" GTY marker.
49
50 2016-04-05  Patrick Palka  <ppalka@gcc.gnu.org>
51
52         PR c++/70452
53         * cp-tree.h (class cache_map): Remove.
54         * constexpr.c (cv_cache): Change type to
55         GTY((deletable)) hash_map<tree, tree> *.
56         (maybe_constant_value): Adjust following the change to cv_cache.
57         (clear_cv_cache): New static function.
58         (clear_cv_and_fold_caches): Use it.
59         * cp-gimplify.c (fold_cache): Change type to
60         GTY((deletable)) hash_map<tree, tree> *.
61         (clear_fold_cache): Adjust following the change to fold_cache.
62         (cp_fold): Likewise.
63
64 2016-04-02  Martin Sebor  <msebor@redhat.com>
65
66         PR c++/67376
67         PR c++/70170
68         PR c++/70172
69         PR c++/70228
70         * constexpr.c (diag_array_subscript): New function.
71         (cxx_eval_array_reference): Detect out of bounds array indices.
72
73 2016-04-01  Jason Merrill  <jason@redhat.com>
74
75         PR c++/70449
76         PR c++/70344
77         * pt.c (instantiate_decl): A function isn't fully defined if
78         DECL_INITIAL is error_mark_node.
79         * constexpr.c (cxx_eval_call_expression): Likewise.
80
81 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
82             Marek Polacek  <polacek@redhat.com>
83
84         PR c++/70488
85         * init.c (warn_placement_new_too_small): Test whether
86         DECL_SIZE_UNIT or TYPE_SIZE_UNIT are integers that fit into uhwi.
87
88 2016-04-01  Nathan Sidwell  <nathan@acm.org>
89
90         PR c++/68475
91         * decl.c (check_redeclaration_exception_specification): Check
92         regardless of -fno-exceptions.
93         * typeck2.c (merge_exception_specifiers): Relax assert by checking
94         flag_exceptions too.
95
96 2016-03-31  Nathan Sidwell  <nathan@acm.org>
97
98         * decl.c (start_preparsed_function): Remove unnecessary bracing.
99         (finish_destructor_body): Don't emit operator delete here.
100
101 2016-03-31  Nathan Sidwell  <nathan@acm.org>
102
103         PR c++/70393
104         * constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR
105         elements in field order.
106
107 2016-03-31  Marek Polacek  <polacek@redhat.com>
108
109         PR c/70297
110         * decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
111
112 2016-03-31  Richard Biener  <rguenther@suse.de>
113
114         PR c++/70430
115         * typeck.c (cp_build_binary_op): Fix operand order of vector
116         conditional in truth op handling.
117
118 2016-03-29  Jason Merrill  <jason@redhat.com>
119
120         PR c++/70353
121         * decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics
122         in constexpr functions.
123
124 2016-03-28  Jason Merrill  <jason@redhat.com>
125
126         PR c++/70422
127         PR c++/64266
128         PR c++/70353
129         * decl.c, pt.c, constexpr.c: Revert last patch.
130
131 2016-03-25  Jason Merrill  <jason@redhat.com>
132             Martin Liška  <mliska@suse.cz>
133
134         PR c++/64266
135         PR c++/70353
136         Core issue 1962
137         * decl.c (cp_fname_init): Decay the initializer to pointer.
138         (cp_make_fname_decl): Set DECL_DECLARED_CONSTEXPR_P,
139         DECL_VALUE_EXPR, DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
140         Don't call cp_finish_decl.
141         * pt.c (tsubst_expr) [DECL_EXPR]: Set DECL_VALUE_EXPR,
142         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.  Don't call cp_finish_decl.
143         * constexpr.c (cxx_eval_constant_expression) [VAR_DECL]:
144         Handle DECL_VALUE_EXPR.
145
146 2016-03-24  Jason Merrill  <jason@redhat.com>
147
148         PR c++/70386
149         * constexpr.c (cxx_eval_bare_aggregate): Handle PMFs.
150
151         PR c++/70323
152         * constexpr.c (cxx_eval_call_expression): Don't cache result if
153         *overflow_p.
154
155 2016-03-24  Patrick Palka  <ppalka@gcc.gnu.org>
156
157         PR c++/62212
158         * tree.c (build_cplus_array_type): Determine type-dependentess
159         with uses_template_parms instead of with dependent_type_p.
160
161 2016-03-23  Patrick Palka  <ppalka@gcc.gnu.org>
162
163         PR c++/70347
164         * typeck.c (process_init_constructor_union): If the initializer
165         is empty, use the union's NSDMI if it has one.
166
167 2016-03-23  Patrick Palka  <ppalka@gcc.gnu.org>
168
169         PR c++/70332
170         * pt.c (tsubst_copy) [PARM_DECL]: Handle the use of 'this' in an
171         NSDMI that's part of an aggregrate initialization.
172
173 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
174
175         PR c++/70001
176         * constexpr.c (cxx_eval_vec_init_1): Reuse CONSTRUCTOR initializers
177         for 1..max even for multi-dimensional arrays.  Call unshare_expr
178         on it.
179
180         PR c++/70323
181         * constexpr.c (cxx_eval_constant_expression): Diagnose overflow
182         on TREE_OVERFLOW constants.
183
184         PR c++/70376
185         * cp-gimplify.c (genericize_omp_for_stmt): Don't walk OMP_FOR_CLAUSES
186         for OMP_TASKLOOP here.
187         (cp_genericize_r): Handle OMP_TASKLOOP like OMP_TASK, except do call
188         genericize_omp_for_stmt instead of cp_walk_tree on OMP_BODY.
189
190 2016-03-23  Alexandre Oliva  <aoliva@redhat.com>
191             Jason Merrill  <jason@redhat.com>
192             Jakub Jelinek  <jakub@redhat.com>
193
194         PR c++/69315
195         * cp-tree.h (defer_mark_used_calls, deferred_mark_used_calls): Remove.
196         * decl.c (defer_mark_used_calls, deferred_mark_used_calls): Remove.
197         (finish_function): Don't set or test them.
198         * decl2.c (mark_used): Don't handle defer_mark_used_calls.
199
200 2016-03-23  Jason Merrill  <jason@redhat.com>
201
202         PR c++/70344
203         * constexpr.c (cxx_eval_call_expression): Catch invalid recursion.
204
205 2016-03-23  Marek Polacek  <polacek@redhat.com>
206
207         PR c++/69884
208         * pt.c (canonicalize_type_argument): Use OPT_Wignored_attributes.
209
210 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
211
212         * call.c (build_conditional_expr_1): Always use original
213         condition type for vector type checks and build.
214
215 2016-03-22  Patrick Palka  <ppalka@gcc.gnu.org>
216
217         PR c++/70096
218         * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.
219
220 2016-03-22  Patrick Palka  <ppalka@gcc.gnu.org>
221
222         PR c++/70204
223         * constexpr.c (non_const_var_error): Check
224         DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P.
225
226 2016-03-21  Richard Henderson  <rth@redhat.com>
227
228         PR c++/70273
229         * decl.c (notice_forced_label_r): New.
230         (cp_finish_decl): Use it.
231
232 2016-03-21  Jason Merrill  <jason@redhat.com>
233
234         PR c++/70285
235         * cp-gimplify.c (cp_fold) [COND_EXPR]: Handle bit-fields.
236
237 2016-03-18  Jason Merrill  <jason@redhat.com>
238
239         PR c++/70139
240         * constexpr.c (cxx_eval_call_expression): Fix trivial copy.
241
242         PR c++/70147
243         * class.c (vptr_via_virtual_p): New.
244         (most_primary_binfo): Factor out of build_rtti_vtbl_entries.
245         * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Don't clear
246         a vptr from any virtual base in a not-in-charge 'structor.
247
248         * decl.c (build_clobber_this): Factor out of
249         start_preparsed_function and begin_destructor_body.  Handle
250         virtual bases better.
251
252         * class.c (build_if_in_charge): Split out from build_base_path.
253         * init.c (expand_virtual_init, expand_default_init): Use it.
254         * call.c (build_special_member_call): Use it.
255
256 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
257
258         PR c++/70267
259         * init.c (build_new_1): Complain and return error_mark_node
260         if alloc_fn is not _Jv_AllocObject function returning pointer.
261
262 2016-03-18  Patrick Palka  <ppalka@gcc.gnu.org>
263
264         PR c++/70205
265         * search.c (adjust_result_of_qualified_name_lookup): Don't
266         update the BASELINK_BINFO of DECL if the second call
267         to lookup_base fails.
268
269 2016-03-18  Patrick Palka  <ppalka@gcc.gnu.org>
270
271         PR c++/70218
272         * parser.c (cp_parser_lambda_expression): Move call to
273         pop_deferring_access_checks ahead of the call to
274         cp_parser_end_tentative_firewall.
275
276 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
277
278         PR c++/70144
279         * cp-tree.h (magic_varargs_p): Return int instead of bool.
280         * call.c (magic_varargs_p): Return int instead of bool, return 2 for
281         Cilk+ reductions, otherwise 1 for magic varargs and 0 for normal
282         varargs.
283         (build_over_call): If magic_varargs_p == 2, call reject_gcc_builtin,
284         if magic_varargs_p == 1, call decay_conversion
285         instead of mark_type_use.  Don't store error_mark_node arguments to
286         argarray, instead return error_mark_node.
287
288         PR c++/70272
289         * decl.c (begin_destructor_body): Don't insert clobber if
290         is_empty_class (current_class_type).
291
292 2016-03-17  Marek Polacek  <polacek@redhat.com>
293
294         PR c++/70194
295         * typeck.c (warn_for_null_address): New function.
296         (cp_build_binary_op): Call it.
297
298 2016-03-16  Jason Merrill  <jason@redhat.com>
299
300         PR c++/70259
301         * decl.c (start_preparsed_function): Don't clobber an empty base.
302
303 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
304
305         PR c++/70147
306         * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs): Conditionalize
307         BINFO_VIRTUAL_P vtable clearing on current_in_charge_parm.
308
309         PR c++/70147
310         * cp-ubsan.c (cp_ubsan_maybe_initialize_vtbl_ptrs): Temporarily
311         set in_base_initializer.
312
313 2016-03-15  Marek Polacek  <polacek@redhat.com>
314
315         PR c++/70209
316         * tree.c (strip_typedefs): Call strip_typedefs again on the
317         DECL_ORIGINAL_TYPE result.
318
319 2016-03-15  Jason Merrill  <jason@redhat.com>
320
321         PR c++/70095
322         * pt.c (instantiate_decl): Fix call to variable_template_p.
323
324         PR c++/70141
325         * pt.c (for_each_template_parm_r): Always walk into TYPENAME_TYPE.
326
327 2016-03-14  Casey Carter  <casey@carter.net>
328             Jason Merrill  <jason@redhat.com>
329
330         P0184R0: Generalizing the Range-Based For Loop
331         * parser.c (cp_convert_range_for): Set the type of __end separately.
332         (cp_parser_perform_range_for_lookup): Allow different begin/end
333         types if they are comparable.
334
335 2016-03-12  Patrick Palka  <ppalka@gcc.gnu.org>
336
337         PR c++/70106
338         * semantics.c (force_paren_expr): Just build a PAREN_EXPR when
339         processing_template_decl and EXPR is a SCOPE_REF.
340
341 2016-03-10  Patrick Palka  <ppalka@gcc.gnu.org>
342             Jakub Jelinek  <jakub@redhat.com>
343
344         PR c++/70001
345         * constexpr.c (cxx_eval_vec_init_1): For pre_init case, reuse
346         return value from cxx_eval_constant_expression from earlier
347         elements if it is valid constant initializer requiring no
348         relocations.
349
350 2016-03-10  Marek Polacek  <polacek@redhat.com>
351
352         PR c++/70153
353         * cp-gimplify.c (cp_fold): Handle UNARY_PLUS_EXPR.
354
355 2016-03-09  Cesar Philippidis  <cesar@codesourcery.com>
356
357         * parser.c (cp_parser_oacc_loop): Update cclauses and clauses
358         when calling c_finish_omp_clauses.
359
360 2016-03-08  Jason Merrill  <jason@redhat.com>
361
362         * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful
363         diagnostic for use of "concept".
364         (cp_parser_requires_clause_opt): And "requires".
365         (cp_parser_type_parameter, cp_parser_late_return_type_opt)
366         (cp_parser_explicit_template_declaration): Adjust.
367         * Make-lang.in (check-c++-all): Add "concepts" to std list.
368
369         P0036R0: Unary Folds and Empty Parameter Packs
370         * pt.c (expand_empty_fold): Remove special cases for *,+,&,|.
371
372 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
373
374         PR c++/70135
375         * constexpr.c (cxx_eval_loop_expr): Forget saved values of SAVE_EXPRs
376         even after the last iteration of the loop.
377
378         * decl.c (duplicate_decls): Fix spelling - becuase -> because.
379
380 2016-03-07  Patrick Palka  <ppalka@gcc.gnu.org>
381
382         PR c++/66786
383         * pt.c (get_template_info): Handle PARM_DECL.
384         (template_class_depth): Check DECL_P instead of
385         VAR_OR_FUNCTION_DECL_P.
386
387 2016-03-05  Jason Merrill  <jason@redhat.com>
388
389         PR c++/67364
390         * constexpr.c (cxx_eval_store_expression): Replace
391         CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
392
393 2016-03-05  Patrick Palka  <ppalka@gcc.gnu.org>
394
395         PR c++/66786
396         * pt.c (template_class_depth): Given a lambda type, iterate
397         into its LAMBDA_TYPE_EXTRA_SCOPE field instead of its
398         TYPE_CONTEXT.  Given a VAR_DECL, iterate into its
399         CP_DECL_CONTEXT.
400
401 2016-03-04  Jason Merrill  <jason@redhat.com>
402
403         PR c++/69203
404         * cp-tree.h (COND_EXPR_IS_VEC_DELETE): New.
405         * init.c (build_vec_delete_1): Set it.
406         * constexpr.c (potential_constant_expression_1) [COND_EXPR]: Check it.
407
408 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
409
410         * decl.c (start_preparsed_function): Don't emit start clobber at the
411         start of constructor clones.
412
413         PR c++/70035
414         * cp-tree.h (cp_ubsan_maybe_initialize_vtbl_ptrs): New prototype.
415         * decl.c (start_preparsed_function): Call
416         cp_ubsan_maybe_initialize_vtbl_ptrs if needed.
417         * cp-ubsan.c (cp_ubsan_dfs_initialize_vtbl_ptrs,
418         cp_ubsan_maybe_initialize_vtbl_ptrs): New functions.
419
420 2016-03-04  Jason Merrill  <jason@redhat.com>
421
422         PR c++/67364
423         * constexpr.c (cxx_eval_component_reference): Further tweak.
424
425         * constexpr.c (struct constexpr_ctx): Add save_exprs field.
426         (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
427         (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
428         (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
429
430         PR c++/70067
431         * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
432         same type.
433
434 2016-03-03  Jason Merrill  <jason@redhat.com>
435
436         * method.c (synthesized_method_walk): operator= can also be constexpr.
437
438         * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
439         LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
440
441         PR c++/67164
442         * pt.c (copy_template_args): New.
443         (tsubst_pack_expansion): Use it.
444
445         * call.c (build_aggr_conv): Use get_nsdmi.
446
447         PR c++/51406
448         * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
449
450         PR c++/67364
451         * constexpr.c (cxx_eval_component_reference): Just return an empty
452         CONSTRUCTOR for an empty class.
453
454 2016-03-01  Jason Merrill  <jason@redhat.com>
455
456         PR c++/70036
457         * parser.c (cp_parser_requires_clause): Call
458         check_for_bare_parameter_packs.
459
460         PR c++/51489
461         * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
462         the operands.
463
464         PR c++/69995
465         * constexpr.c (cxx_eval_call_expression): Unshare arg.
466         (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
467         [TARGET_EXPR]: Unshare init.
468
469 2016-03-01  Patrick Palka  <ppalka@gcc.gnu.org>
470
471         PR c++/68948
472         PR c++/69961
473         * pt.c (tsubst_baselink): Reinstate the check for an invalid
474         constructor call.
475
476 2016-02-28  Jason Merrill  <jason@redhat.com>
477
478         PR c++/69995
479         * constexpr.c (cxx_eval_store_expression): Unshare init.
480
481 2016-02-26  Jason Merrill  <jason@redhat.com>
482
483         PR c++/69958
484         * pt.c (make_argument_pack): New.
485         (tsubst_copy) [SIZEOF_EXPR]: Handle partial expansion.
486         (tsubst_copy_and_build): Likewise.
487
488 2016-02-25  Jason Merrill  <jason@redhat.com>
489
490         PR c++/69889
491         * cp-tree.h (AGGR_INIT_FROM_THUNK_P): New.
492         * tree.c (build_aggr_init_expr): Set it.
493         * semantics.c (simplify_aggr_init_expr): Check it.
494         * cp-gimplify.c (cp_genericize_r): Don't walk into
495         a call/aggr_init from a thunk.
496
497         PR c++/69842
498         * method.c (forward_parm): Handle parameter packs.
499         * lambda.c (maybe_add_lambda_conv_op): Use it for them.
500
501         PR c++/67364
502         * constexpr.c (cxx_eval_component_reference): Don't complain about
503         unevaluated empty classes.
504
505         PR c++/68049
506         * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
507
508 2016-02-25  Patrick Palka  <ppalka@gcc.gnu.org>
509
510         PR c++/69736
511         * cp-tree.h (REF_PARENTHESIZED_P): Adjust documentation.
512         (maybe_undo_parenthesized_ref): Declare.
513         * semantics.c (maybe_undo_parenthesized_ref): Split out from
514         check_return_expr.
515         (finish_call_expr): Use it.
516         * typeck.c (check_return_expr): Use it.
517         * pt.c (tsubst_copy_and_build) [INDIRECT_REF]: Retain the
518         REF_PARENTHESIZED_P flag.
519
520 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
521
522         PR c++/69922
523         * class.c (build_base_path): Set TREE_NO_WARNING on the null_test.
524         Avoid folding it.
525         * init.c (build_vec_delete_1, build_delete): Don't fold the non-NULL
526         tests.
527         * cp-gimplify.c (cp_fold): For TREE_NO_WARNING comparisons with NULL,
528         unless they are folded into INTEGER_CST, error_mark_node or some
529         comparison with NULL, avoid folding them and use either the original
530         comparison or non-folded comparison of folded arguments.
531         * cp-ubsan.c (cp_ubsan_instrument_vptr): Set TREE_NO_WARNING on the
532         comparison, don't fold the comparison right away.
533
534 2016-02-24  Jason Merrill  <jason@redhat.com>
535
536         PR c++/69323
537         * friend.c (make_friend_class): Likewise.
538         * decl.c (lookup_and_check_tag): Diagnose invalid dependent friend.
539
540 2016-02-24  Jason Merrill  <jason@redhat.com>
541
542         PR c++/69323
543         * pt.c (instantiate_class_template_1): Set
544         processing_template_decl before substituting friend_type.
545
546 016-02-24  Martin Sebor  <msebor@redhat.com>
547
548         PR c++/69912
549         * tree.c (build_ctor_subob_ref): Compare types' main variants
550         instead of the types as they are.
551
552 2016-02-24  Jason Merrill  <jason@redhat.com>
553
554         * decl.c (start_preparsed_function): Condition ctor clobber on
555         flag_lifetime_dse > 1.
556
557         * cp-gimplify.c (cp_fold): Don't fold constexpr calls if -fno-inline.
558
559 2016-02-19  Jason Merrill  <jason@redhat.com>
560
561         PR c++/69743
562         * call.c (remaining_arguments): No longer static.
563         * cp-tree.h: Declare it.
564         * pt.c (more_specialized_fn): Use it.
565
566 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
567             Bernd Edlinger  <bernd.edlinger@hotmail.de>
568
569         * Make-lang.in: Invoke gperf with -L C++.
570         * cfns.gperf: Remove prototypes for hash and libc_name_p
571         inlines.
572         * cfns.h: Regenerated.
573         * except.c (nothrow_libfn_p): Adjust.
574
575 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
576
577         PR c++/69850
578         * rtti.c (ifnonnull): Set TREE_NO_WARNING on the condition, use
579         NE_EXPR instead of EQ_EXPR and swap last two arguments on COND_EXPR.
580
581 2016-02-19  Patrick Palka  <ppalka@gcc.gnu.org>
582
583         PR c++/68948
584         * pt.c (tsubst_baselink): Don't diagnose an invalid constructor
585         call here.
586         * semantics.c (finish_call_expr): Don't assume a constructor
587         call is dependent if only the "this" pointer is dependent.  When
588         building a constructor call, always use a dummy object.
589
590 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
591
592         PR c++/69850
593         * init.c (build_vec_delete_1): Set TREE_NO_WARNING on the NE_EXPR
594         condition.
595         * cp-gimplify.c (cp_fold): Propagate TREE_NO_WARNING from binary
596         operators if folding preserved the binop, just with different
597         arguments.
598
599         PR c++/67767
600         * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
601         attr_spec is always single element chain, chain all the attributes
602         properly together in the right order.
603
604 2016-02-18  Jason Merrill  <jason@redhat.com>
605
606         * mangle.c (maybe_check_abi_tags): Add for_decl parm.  Call
607         mangle_decl.
608         (mangle_decl): Call maybe_check_abi_tags for function scope.
609         (mangle_guard_variable): Call maybe_check_abi_tags here.
610         (write_guarded_var_name): Not here.
611
612 2016-02-17  Jason Merrill  <jason@redhat.com>
613
614         PR c++/65985
615         * constexpr.c (build_constexpr_constructor_member_initializers):
616         Handle an additional STATEMENT_LIST.
617
618         PR c++/68585
619         * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
620
621         PR c++/68679
622         * decl2.c (reset_type_linkage_2): Look through member templates.
623
624 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
625
626         PR c++/69850
627         * init.c (build_delete): Set TREE_NO_WARNING on ifexp.
628
629 2016-02-17  Jason Merrill  <jason@redhat.com>
630
631         PR c++/69842
632         * method.c (forward_parm): Split out from...
633         (add_one_base_init): ...here.
634         * lambda.c (maybe_add_lambda_conv_op): Use it.
635
636 2016-02-16  Jason Merrill  <jason@redhat.com>
637
638         PR c++/10200
639         PR c++/69753
640         * call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
641         tree.c, typeck2.c: Revert earlier changes.
642         * parser.c (cp_parser_lookup_name): Ignore namespace-scope
643         non-type templates after -> or .
644
645 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
646
647         PR c/69835
648         * typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
649
650 2016-02-16  Jason Merrill  <jason@redhat.com>
651
652         PR c++/69657
653         * name-lookup.c (lookup_qualified_name): Add find_hidden parm.
654         (set_decl_namespace): Pass it.  Complain about finding a hidden friend.
655         * name-lookup.h: Adjust.
656
657 2016-02-16  James Norris  <jnorris@codesourcery.com>
658
659         * parser.c (cp_parser_oacc_data_clause_deviceptr): Remove checking.
660         * semantics.c (finish_omp_clauses): Add deviceptr checking.
661
662 2016-02-15  Jakub Jelinek  <jakub@redhat.com>
663
664         PR c++/69658
665         * init.c (expand_default_init): Only call reshape_init
666         in the direct-initialization from an initializer list case.
667
668 2016-02-15  Jason Merrill  <jason@redhat.com>
669
670         PR c++/69753
671         * semantics.c (finish_call_expr): Implicit 'this' does not make
672         the call dependent.
673         * search.c (any_dependent_bases_p): Split out...
674         * name-lookup.c (do_class_using_decl): ...from here.
675         * call.c (build_new_method_call_1): Don't complain about missing object
676         if there are dependent bases.  Tweak error.
677         * tree.c (non_static_member_function_p): Remove.
678         * pt.c (type_dependent_expression_p): A member template of a
679         dependent type is dependent.
680         * cp-tree.h: Adjust.
681
682         PR c++/68890
683         * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
684
685 2016-02-12  Patrick Palka  <ppalka@gcc.gnu.org>
686
687         PR c++/69098
688         * pt.c (lookup_and_finish_template_variable): New function,
689         extracted from ...
690         (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: ... here.  Use it.
691         (tsubst_qualified_id): Consider that EXPR might be a variable
692         template.
693         * typeck.c (check_template_keyword): Don't emit an error
694         if DECL is a variable template.
695
696 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
697
698         * error.c: Spelling fixes - behaviour -> behavior and
699         neighbour -> neighbor.
700         * decl.c: Likewise.
701         * typeck.c (cp_build_binary_op): Fix up behavior spelling in
702         diagnostics.
703         * init.c (build_delete): Likewise.
704
705 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
706
707         PR c/69768
708         * typeck.c (cp_build_binary_op): cp_fully_fold integer_zerop
709         arguments for -Waddress warning.  Fix up formatting.
710
711 2016-02-11  Paolo Carlini  <paolo.carlini@oracle.com>
712
713         PR c++/68726
714         * pt.c (lookup_template_class_1): Check tsubst return value for
715         error_mark_node.
716
717 2016-02-10  Jason Merrill  <jason@redhat.com>
718
719         PR c++/68926
720         * pt.c (resolve_nondeduced_context): Add complain parm.
721         (do_auto_deduction): Pass it.
722         * cvt.c (convert_to_void): Likewise.
723         * decl.c (cp_finish_decl): Likewise.
724         * init.c (build_new): Likewise.
725         * rtti.c (get_tinfo_decl_dynamic): Likewise.
726         * semantics.c (finish_decltype_type): Likewise.
727         * typeck.c (decay_conversion): Likewise.
728         * cp-tree.h: Adjust declaration.
729         * call.c (standard_conversion): Add complain parm, pass it along.
730         (implicit_conversion): Pass it.
731
732         PR c++/69657
733         * name-lookup.c (ambiguous_decl): Call remove_hidden_names.
734         (lookup_name_real_1): Likewise.
735         (remove_hidden_names): Handle non-functions too.
736
737         PR c++/10200
738         * parser.c (cp_parser_lookup_name): When looking for a template
739         after . or ->, only consider class templates.
740         (cp_parser_postfix_dot_deref_expression): Handle the current
741         instantiation.  Remember a dependent object expression.
742         * typeck2.c (build_x_arrow): Handle the current instantiation.
743
744         * ptree.c (debug_tree): Implement for cp_expr.
745
746 2016-02-08  Patrick Palka  <ppalka@gcc.gnu.org>
747
748         PR c++/69139
749         * parser.c (cp_parser_simple_type_specifier): Make the check
750         for disambiguating between an 'auto' placeholder and an implicit
751         template parameter more robust.
752
753 2016-02-08  Patrick Palka  <ppalka@gcc.gnu.org>
754
755         PR c++/69283
756         PR c++/67835
757         * decl2.c (mark_used): When given a TEMPLATE_DECL, return after
758         setting its TREE_USED flag.
759
760 2016-02-08  Jason Merrill  <jason@redhat.com>
761
762         PR c++/69657
763         * name-lookup.c (do_nonmember_using_decl): Leave anticipated
764         built-ins alone.
765
766 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
767
768         PR c++/59627
769         * parser.c (cp_parser_omp_declare_reduction): Set assembler name
770         of the DECL_OMP_DECLARE_REDUCTION_P decls.
771
772 2016-02-08  Marek Polacek  <polacek@redhat.com>
773
774         PR c++/69688
775         * constexpr.c (clear_cv_and_fold_caches): Renamed from clear_cv_cache.
776         Call clear_fold_cache.
777         * cp-tree.h: Adjust declaration.
778         * decl.c (finish_enum_value_list): Call clear_cv_and_fold_caches
779         rather than clear_cv_cache and clear_fold_cache.
780         * typeck2.c (store_init_value): Call clear_cv_and_fold_caches.
781
782 2016-02-08  Jason Merrill  <jason@redhat.com>
783
784         * cp-tree.h (CONV_FOLD, CONV_BACKEND_CONVERT): New.
785         * cvt.c (convert): Pass CONV_BACKEND_CONVERT.
786         (ocp_convert): Use *_maybe_fold.
787         (cp_convert_to_pointer): Add dofold parameter.
788         * cp-gimplify.c (cp_fold) [CONVERT_EXPR]: Call convert.
789
790 2016-02-05  Martin Sebor  <msebor@redhat.com>
791
792         PR c++/69662
793         * init.c (find_field_init): New function.
794         (warn_placement_new_too_small): Call it.  Handle one-element arrays
795         at ends of structures special.
796
797 2016-02-05  Jason Merrill  <jason@redhat.com>
798
799         PR c++/68948
800         * semantics.c (finish_expr_stmt): If expr is error_mark_node,
801         make sure we've seen_error().
802
803 2016-02-05  Patrick Palka  <ppalka@gcc.gnu.org>
804
805         PR c++/68948
806         * pt.c (tsubst_baselink): Diagnose an invalid constructor call
807         if lookup_fnfields returns NULL_TREE and the name being looked
808         up has the form A::A.
809
810 2016-02-04  Patrick Palka  <ppalka@gcc.gnu.org>
811
812         * constexpr.c (cxx_eval_binary_expression): Fold equality
813         comparisons involving PTRMEM_CSTs.
814
815 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
816
817         * class.c (find_flexarrays): Don't declare dom variable.
818         (diagnose_flexarray): Likewise.
819
820 2016-02-02  Martain Sebor  <msebor@redhat.com>
821
822         PR c++/69251
823         PR c++/69253
824         PR c++/69290
825         PR c++/69277
826         PR c++/69349
827         * class.c (walk_subobject_offsets): Avoid testing the upper bound
828         of a flexible array member for equality to null.
829         (find_flexarrays): Remove spurious whitespace introduced in r231665.
830         (diagnose_flexarrays): Avoid checking the upper bound of arrays.
831         (check_flexarrays): Same.
832         * decl.c (compute_array_index_type): Avoid special case for flexible
833         array members.
834         (grokdeclarator): Avoid calling compute_array_index_type for flexible
835         array members.
836         * error.c (dump_type_suffix): Revert changes introduced in r231665
837         and rendered unnecessary by the changes above.
838         * pt.c (tsubst):  Same.
839         * tree.c (build_ctor_subob_ref): Handle flexible array members.
840         * typeck2.c (digest_init_r): Revert changes introduced in r231665.
841         (process_init_constructor_array): Same.
842         (process_init_constructor_record): Same.
843
844 2016-02-03  Patrick Palka  <ppalka@gcc.gnu.org>
845
846         PR c++/69056
847         * pt.c (try_one_overload): Handle comparing argument packs so
848         that there is no conflict if we deduced more arguments of an
849         argument pack than were explicitly specified.
850
851 2016-01-31  Jakub Jelinek  <jakub@redhat.com>
852             Jason Merrill  <jason@redhat.com>
853
854         PR c++/68763
855         * tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
856         function type if nothing is changing.
857
858 2016-01-31  Jason Merrill  <jason@redhat.com>
859
860         PR c++/69009
861         * pt.c (partial_specialization_p, impartial_args): New.
862         (instantiate_decl): Call impartial_args.
863
864         * mangle.c (maybe_check_abi_tags): New.
865         (write_guarded_var_name): Call it.
866         (mangle_ref_init_variable): Call check_abi_tags.
867
868         * pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
869         between template and instantiation.
870
871 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
872
873         PR debug/66869
874         * decl.c (wrapup_globals_for_namespace): Warn about unused static
875         function declarations.
876
877 2016-01-29  Marek Polacek  <polacek@redhat.com>
878
879         PR c++/69509
880         PR c++/69516
881         * constexpr.c (cxx_eval_array_reference): Give the "array subscript
882         out of bound" error earlier.
883         * init.c (build_vec_init): Change NE_EXPR into GT_EXPR.  Update the
884         commentary.
885
886 2016-01-29  Patrick Palka  <ppalka@gcc.gnu.org>
887
888         * name-lookup.c (begin_scope): After reusing a cp_binding_level
889         structure, update free_binding_level before the structure's
890         level_chain field gets cleared, not after.
891
892 2016-01-28  Jason Merrill  <jason@redhat.com>
893
894         PR c++/67407
895         * search.c (dfs_walk_once, dfs_walk_once_r)
896         (dfs_walk_once_accessible_r, dfs_walk_once_accessible): Use
897         hash_set instead of BINFO_MARKED.
898         (dfs_unmark_r): Remove.
899
900 2016-01-28  Patrick Palka  <ppalka@gcc.gnu.org>
901
902         PR c++/24208
903         * parser.c (LEXER_DEBUGGING_ENABLED_P): New macro.
904         (cp_lexer_debugging_p): Use it.
905         (cp_lexer_start_debugging): Likewise.
906         (cp_lexer_stop_debugging): Likewise.
907
908 2016-01-27  Marek Polacek  <polacek@redhat.com>
909
910         PR c/68062
911         * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
912         needed.  Add -Wsign-compare warning.
913
914 2016-01-27  Ryan Burn  <contact@rnburn.com>
915
916         PR cilkplus/69267
917         * cp-gimplify.c (cilk_cp_gimplify_call_params_in_spawned_fn): Removed
918         superfluous post_p argument in call to
919         cilk_gimplify_call_params_in_spawned_fn.
920
921 2016-01-27  Marek Polacek  <polacek@redhat.com>
922
923         PR c++/69379
924         * constexpr.c (cxx_eval_constant_expression): Handle PTRMEM_CSTs
925         wrapped in NOP_EXPRs.
926
927 2016-01-27  Martin Sebor  <msebor@redhat.com>
928
929         PR c++/69317
930         * mangle.c (mangle_decl): Reference the correct (saved) version
931         of the ABI in -Wabi diagnostics.
932
933 2016-01-27  Marek Polacek  <polacek@redhat.com>
934
935         PR c++/69496
936         * constexpr.c (cxx_eval_array_reference): Evaluate the number of
937         elements of the array.
938
939 2016-01-26  Jason Merrill  <jason@redhat.com>
940
941         PR c++/68949
942         * constexpr.c (register_constexpr_fundef): Keep the un-massaged body.
943         (cxx_eval_call_expression): Don't look through clones.
944         * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
945         * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
946         maybe-in-charge *tor.
947
948 2016-01-26  Jason Merrill  <jason@redhat.com>
949
950         PR c++/68782
951         * constexpr.c (cxx_eval_bare_aggregate): Update TREE_CONSTANT
952         and TREE_SIDE_EFFECTS.
953         (cxx_eval_constant_expression) [CONSTRUCTOR]: Call
954         verify_constructor_flags.
955
956 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
957
958         PR c++/68357
959         * cp-gimplify.c (cp_fold): If some operand folds to error_mark_node,
960         return error_mark_node instead of building trees with error_mark_node
961         operands.
962
963 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
964
965         PR other/69006
966         * error.c (print_instantiation_partial_context_line): Add missing
967         newlines from output for the t == NULL case.
968         (print_instantiation_partial_context): Remove call to pp_newline.
969
970 2016-01-24  Patrick Palka  <ppalka@gcc.gnu.org>
971
972         Revert:
973         2016-01-18  Patrick Palka  <ppalka@gcc.gnu.org>
974
975         PR c++/11858
976         PR c++/24663
977         PR c++/24664
978         * decl.c (grokdeclarator): Don't decay array parameter type to
979         a pointer type if it's dependent.
980         (grokparms): Invoke strip_top_quals instead of directly invoking
981         cp_build_qualified_type.
982         * pt.c (decay_dependent_array_parm_type): New static function.
983         (type_unification_real): Call decay_dependent_array_parm_type
984         to decay a dependent array parameter type to its corresponding
985         pointer type before unification.
986         (more_specialized_fn): Likewise.
987         (get_bindings): Likewise.
988         * tree.c (cp_build_qualified_type): Trivial typofix in
989         documentation.
990
991 2016-01-23  Martin Sebor  <msebor@redhat.com>
992
993         PR c++/58109
994         PR c++/69022
995         * decl2.c (is_late_template_attribute): Handle dependent argument
996         to attribute align and attribute vector_size.
997
998 2016-01-21  Jason Merrill  <jason@redhat.com>
999
1000         PR c++/69392
1001         * lambda.c (lambda_capture_field_type): Handle 'this' specially
1002         for init-capture, too.
1003
1004         PR c++/65687
1005         * decl.c (type_is_deprecated): Don't look into a typedef.
1006
1007         PR c++/40751
1008         PR c++/64987
1009         * decl.c (copy_type_enum): Respect TYPE_USER_ALIGN.
1010
1011         PR c++/43407
1012         * decl.c (start_enum): Add attributes parameter.
1013         * parser.c (cp_parser_enum_specifier): Pass it.
1014         * pt.c (lookup_template_class_1): Pass it.
1015         * cp-tree.h: Adjust.
1016
1017 2016-01-19  Jason Merrill  <jason@redhat.com>
1018
1019         PR c++/59759
1020         * pt.c (convert_template_argument): Handle VAR_DECL properly.
1021
1022 2016-01-19  Marek Polacek  <polacek@redhat.com>
1023
1024         PR c++/68586
1025         * constexpr.c (clear_cv_cache): New.
1026         * cp-gimplify.c (clear_fold_cache): New.
1027         * cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
1028         * decl.c (finish_enum_value_list): Call them.
1029
1030         PR c++/68965
1031         * pt.c (tsubst_copy): Mark elements in expanded vector as used.
1032
1033 2016-01-18  Patrick Palka  <ppalka@gcc.gnu.org>
1034
1035         PR c++/11858
1036         PR c++/24663
1037         PR c++/24664
1038         * decl.c (grokdeclarator): Don't decay array parameter type to
1039         a pointer type if it's dependent.
1040         (grokparms): Invoke strip_top_quals instead of directly invoking
1041         cp_build_qualified_type.
1042         * pt.c (decay_dependent_array_parm_type): New static function.
1043         (type_unification_real): Call decay_dependent_array_parm_type
1044         to decay a dependent array parameter type to its corresponding
1045         pointer type before unification.
1046         (more_specialized_fn): Likewise.
1047         (get_bindings): Likewise.
1048         * tree.c (cp_build_qualified_type): Trivial typofix in
1049         documentation.
1050
1051 2016-01-18  Jason Merrill  <jason@redhat.com>
1052
1053         * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
1054
1055         * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
1056
1057         PR c++/68767
1058         * cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify.  Do fold COND_EXPR.
1059         (contains_label_1, contains_label_p): Remove.
1060
1061 2016-01-16  Patrick Palka  <ppalka@gcc.gnu.org>
1062
1063         PR c++/69091
1064         * pt.c (type_dependent_expression_p): For a function template
1065         specialization, a type is dependent iff any of its template
1066         arguments are.
1067
1068 2016-01-16  Patrick Palka  <ppalka@gcc.gnu.org>
1069
1070         * cp-array-notation.c (cp_expand_cond_array_notations): Return
1071         error_mark_node only if find_rank failed, not if it was
1072         successful.
1073
1074 2016-01-16  Patrick Palka  <ppalka@gcc.gnu.org>
1075
1076         PR c++/68936
1077         * tree.c (build_min_non_dep_call_vec): Don't retain the
1078         KOENIG_LOOKUP_P flag of the non-dependent expression that's
1079         been built.
1080         (build_min_non_dep_op_overload): Instead, do it here.
1081
1082 2016-01-15  Jakub Jelinek  <jakub@redhat.com>
1083
1084         PR bootstrap/68271
1085         * parser.h (cp_token): Remove pragma_kind field.  Add comment
1086         with number of unused bits.
1087         * parser.c (eof_token): Remove pragma_kind field initializer.
1088         (cp_lexer_get_preprocessor_token): Don't set pragma_kind
1089         field, don't clear CPP_PRAGMA u.value.
1090         (cp_parser_pragma_kind): New function.
1091         (cp_parser_omp_sections_scope, cp_parser_oacc_kernels_parallel,
1092         cp_parser_omp_construct, cp_parser_initial_pragma,
1093         cp_parser_pragma): Use cp_parser_pragma_kind instead of accessing
1094         pragma_kind field.
1095
1096 2016-01-15  Jason Merrill  <jason@redhat.com>
1097
1098         PR c++/68847
1099         * call.c (build_cxx_call): Use fold_non_dependent_expr.
1100
1101         * typeck2.c (cxx_incomplete_type_diagnostic): Use the location of
1102         value.
1103
1104         PR c++/69257
1105         * typeck.c (decay_conversion): Don't call mark_rvalue_use for
1106         array/function-to-pointer conversion.  Call
1107         complete_type_or_maybe_complain for lvalue-to-rvalue conversion.
1108         * call.c (convert_like_real): Print call context if
1109         decay_conversion errors.
1110
1111 2016-01-14  Tom de Vries  <tom@codesourcery.com>
1112
1113         PR tree-optimization/68773
1114         * parser.c (cp_parser_oacc_declare, cp_parser_omp_declare_target): Don't
1115         set force_output.
1116
1117 2016-01-14  Jason Merrill  <jason@redhat.com>
1118
1119         PR c++/69261
1120         * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
1121
1122 2016-01-12  Marek Polacek  <polacek@redhat.com>
1123
1124         PR c++/68979
1125         * constexpr.c (cxx_eval_check_shift_p): Use permerror rather than
1126         error_at and adjust the return value.
1127
1128 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
1129
1130         PR objc++/68511
1131         PR c++/69213
1132         * cp-gimplify.c (cp_gimplify_expr) <case INIT_EXPR>: Don't return
1133         GS_ERROR whenever seen_error (), only if *expr_p contains
1134         cilk spawn stmt, but cilk_detect_spawn_and_unwrap failed.
1135
1136         PR c++/66808
1137         PR c++/69000
1138         * pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
1139
1140 2016-01-11  Jason Merrill  <jason@redhat.com>
1141
1142         PR c++/69131
1143         * method.c (walk_field_subobs): Add dtor_from_ctor parm.
1144         (process_subob_fn): Likewise.  Don't consider triviality if true.
1145         (synthesize_method_walk): Pass it.
1146
1147 2016-01-11  David Malcolm  <dmalcolm@redhat.com>
1148
1149         PR c++/68795
1150         * parser.c (cp_parser_postfix_expression): Initialize
1151         close_paren_loc to UNKNOWN_LOCATION; only use it if
1152         it has been written to by
1153         cp_parser_parenthesized_expression_list.
1154         (cp_parser_parenthesized_expression_list): Document the behavior
1155         with respect to the CLOSE_PAREN_LOC param.
1156
1157 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
1158
1159         PR c++/69211
1160         * cp-gimplify.c (cp_fold): If COMPOUND_EXPR or MODIFY_EXPR
1161         folded operands have side-effects, but folding changed any of them,
1162         build a new tree with the folded operands instead of returning the
1163         unfolded tree.
1164
1165 2016-01-09  Marek Polacek  <polacek@redhat.com>
1166
1167         PR c++/69113
1168         * decl2.c (comdat_linkage): Only set DECL_COMDAT if TREE_PUBLIC is set.
1169
1170 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
1171
1172         PR c++/69164
1173         * class.c (layout_class_type): Use copy_node to copy FIELD_DECLs.
1174
1175 2016-01-08  Jason Merrill  <jason@redhat.com>
1176
1177         PR c++/69158
1178         * constexpr.c (cxx_fold_indirect_ref): Handle array type differing
1179         in completion.
1180
1181 2016-01-08  Marek Polacek  <polacek@redhat.com>
1182
1183         PR c++/68449
1184         * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
1185
1186 2016-01-08  Jason Merrill  <jason@redhat.com>
1187
1188         * constexpr.c (cxx_eval_call_expression): Remove convert_to_void
1189         workaround.
1190
1191         PR c++/68983
1192         PR c++/67557
1193         * cvt.c (convert_to_void): Don't strip a TARGET_EXPR of
1194         TREE_ADDRESSABLE type.
1195
1196         PR c++/68983
1197         PR c++/67557
1198         * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
1199
1200 2016-01-05  Nathan Sidwell  <nathan@acm.org>
1201
1202         PR c++/58583
1203         * pt.c (build_non_dependent_expr): Don't try a checking fold when
1204         parsing an nsdmi.
1205
1206 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
1207
1208         Update copyright years.
1209 \f
1210 Copyright (C) 2016 Free Software Foundation, Inc.
1211
1212 Copying and distribution of this file, with or without modification,
1213 are permitted in any medium without royalty provided the copyright
1214 notice and this notice are preserved.