Update ChangeLog and version files for release
[official-gcc.git] / gcc / cp / ChangeLog
blob5c93ca465681cd8da88fae885550781f1619a2aa
1 2016-06-03  Release Manager
3         * GCC 5.4.0 released.
5 2016-05-23  Richard Biener  <rguenther@suse.de>
7         Backport from mainline
8         2016-03-23  Patrick Palka  <ppalka@gcc.gnu.org>
9  
10         PR c++/70347
11         * typeck.c (process_init_constructor_union): If the initializer
12         is empty, use the union's NSDMI if it has one.
14 2016-05-20  Paolo Carlini  <paolo.carlini@oracle.com>
16         PR c++/70466
17         * call.c (convert_like_real): Check that we are actually converting
18         from an init list.
20 2016-05-18  Jason Merrill  <jason@redhat.com>
22         PR c++/70505
23         * pt.c (tsubst_baselink): Give the new TEMPLATE_ID_EXPR
24         unknown_type_node, too.
26         PR c++/70494
27         * decl.c (cxx_maybe_build_cleanup): Handle non-decls.
28         * typeck2.c (split_nonconstant_init_1): Use it.
30         PR c++/70648
31         * constexpr.c (cxx_eval_store_expression): Also copy
32         CONSTRUCTOR_NO_IMPLICIT_ZERO.
34         PR c++/70353
35         * decl.c (make_rtl_for_nonlocal_decl): Don't defer local statics
36         in constexpr functions.
38         PR c++/70095
39         * pt.c (instantiate_decl): Fix call to variable_template_p.
41 2016-05-18  Jason Merrill  <jason@redhat.com>
42             Jakub Jelinek  <jakub@redhat.com>
44         PR c++/70135
45         * constexpr.c (struct constexpr_ctx): Add save_exprs field.
46         (cxx_eval_loop_expr): Discard SAVE_EXPR values before looping.
47         (cxx_eval_constant_expression) [SAVE_EXPR]: Add it to the set.
48         (cxx_eval_outermost_constant_expr, is_sub_constant_expr): Initialize.
50 2016-05-18  Jason Merrill  <jason@redhat.com>
52         * method.c (synthesized_method_walk): operator= can also be constexpr.
54 2016-05-03  Paolo Carlini  <paolo.carlini@oracle.com>
56         PR c++/70635
57         * pt.c (resolve_typename_type): Fix typos in infinite recursion
58         avoidance mechanism.
60 2016-04-18  Marek Polacek  <polacek@redhat.com>
62         Backport from mainline
63         2016-03-31  Marek Polacek  <polacek@redhat.com>
65         PR c/70297
66         * decl.c (duplicate_decls): Also set TYPE_ALIGN and TYPE_USER_ALIGN.
68 2016-04-18  Marek Polacek  <polacek@redhat.com>
70         Backport from mainline
71         2015-11-11  Jason Merrill  <jason@redhat.com>
73         * decl.c (duplicate_decls): When combining typedefs, remove the
74         new type from the variants list.
76 2016-04-15  Jason Merrill  <jason@redhat.com>
78         * pt.c (tsubst_copy_and_build) [LAMBDA_EXPR]: Get
79         LAMBDA_EXPR_RETURN_TYPE from the instantiated closure.
81         PR c++/67164
82         * pt.c (copy_template_args): New.
83         (tsubst_pack_expansion): Use it.
85 2016-04-13  Alan Modra  <amodra@gmail.com>
87         Backport from mainline
88         2016-03-22  Patrick Palka  <ppalka@gcc.gnu.org>
89         PR target/70107
90         PR c++/70096
91         * pt.c (tsubst_decl): Clear the DECL_MODE of the new decl.
93 2016-04-06  Richard Biener  <rguenther@suse.de>
95         Backport from mainline
96         2016-03-31  Richard Biener  <rguenther@suse.de>
98         PR c++/70430
99         * typeck.c (cp_build_binary_op): Fix operand order of vector
100         conditional in truth op handling.
102 2016-03-31  Nathan Sidwell  <nathan@acm.org>
104         PR c++/70393
105         * constexpr.c (cxx_eval_store_expression): Keep CONSTRUCTOR
106         elements in field order.
108 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
110         Backported from mainline
111         2016-03-17  Jakub Jelinek  <jakub@redhat.com>
113         PR c++/70272
114         * decl.c (begin_destructor_body): Don't insert clobber if
115         is_empty_class (current_class_type).
117         2016-02-19  Jakub Jelinek  <jakub@redhat.com>
119         PR c++/67767
120         * parser.c (cp_parser_std_attribute_spec_seq): Don't assume
121         attr_spec is always single element chain, chain all the attributes
122         properly together in the right order.
124 2016-03-21  Marek Polacek  <polacek@redhat.com>
126         Backported from mainline
127         2016-03-15  Marek Polacek  <polacek@redhat.com>
129         PR c++/70209
130         * tree.c (strip_typedefs): Call strip_typedefs again on the
131         DECL_ORIGINAL_TYPE result.
133 2016-03-18  Jason Merrill  <jason@redhat.com>
135         PR c++/70139
136         * constexpr.c (cxx_eval_call_expression): Don't shortcut trivial copy.
138 2016-03-05  Jason Merrill  <jason@redhat.com>
140         PR c++/67364
141         * constexpr.c (cxx_eval_store_expression): Replace
142         CONSTRUCTOR_ELTS in nested CONSTRUCTORs, too.
144 2016-03-04  Jason Merrill  <jason@redhat.com>
146         PR c++/67364
147         * constexpr.c (cxx_eval_component_reference): Further tweak.
149         PR c++/70067
150         * tree.c (strip_typedefs): Handle TYPENAME_TYPE lookup finding the
151         same type.
153 2016-03-03  Jason Merrill  <jason@redhat.com>
155         * call.c (build_aggr_conv): Use get_nsdmi.
157         PR c++/51406
158         * typeck.c (build_static_cast_1): Avoid folding back to lvalue.
160         PR c++/67364
161         * constexpr.c (cxx_eval_component_reference): Just return an empty
162         CONSTRUCTOR for an empty class.
164 2016-03-01  Paolo Carlini  <paolo.carlini@oracle.com>
166         * call.c (build_op_delete_call, build_over_call): Check mark_used
167         return value.
168         * class.c (resolve_address_of_overloaded_function): Likewise.
169         * decl.c (cxx_maybe_build_cleanup): Likewise.
170         * pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
171         tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
172         * rtti.c (build_dynamic_cast_1): Likewise.
173         * semantics.c (process_outer_var_ref): Likewise.
174         * typeck.c (build_class_member_access_expr,
175         cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.
177 2016-03-01  Jason Merrill  <jason@redhat.com>
179         PR c++/69261
180         * constexpr.c (find_array_ctor_elt): Handle splitting RANGE_EXPR.
182 2016-03-01  Markus Trippelsdorf  <markus@trippelsdorf.de>
183             Paolo Carlini  <paolo.carlini@oracle.com>
185         PR c++/68087
186         * constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
187         tree_to_shwi to avoid ICEs.
189 2016-03-01  Jason Merrill  <jason@redhat.com>
191         PR c++/67104
192         * constexpr.c (array_index_cmp, find_array_ctor_elt): New.
193         (cxx_eval_array_reference, cxx_eval_store_expression): Use them.
195         PR c++/51489
196         * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
197         the operands.
199         PR c++/69995
200         * constexpr.c (cxx_eval_call_expression): Unshare arg.
201         (cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
202         [TARGET_EXPR]: Unshare init.
204 2016-02-29  Jason Merrill  <jason@redhat.com>
206         PR c++/69995
207         * constexpr.c (cxx_eval_store_expression): Unshare init.
209         PR c++/65985
210         * constexpr.c (build_constexpr_constructor_member_initializers):
211         Handle an additional STATEMENT_LIST.
213 2016-02-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
215         Backported from mainline
216         2016-02-19  Jakub Jelinek  <jakub@redhat.com>
217                     Bernd Edlinger  <bernd.edlinger@hotmail.de>
219         * Make-lang.in: Invoke gperf with -L C++.
220         * cfns.gperf: Remove prototypes for hash and libc_name_p
221         inlines.
222         * cfns.h: Regenerated.
223         * except.c (nothrow_libfn_p): Adjust.
225 2016-02-25  Jason Merrill  <jason@redhat.com>
227         PR c++/67364
228         * constexpr.c (cxx_eval_component_reference): Don't complain about
229         unevaluated empty classes.
231         PR c++/68049
232         * tree.c (strip_typedefs): Use DECL_ORIGINAL_TYPE.
234 2016-02-24  Jason Merrill  <jason@redhat.com>
236         PR c++/69323
237         * pt.c (instantiate_class_template_1): Set
238         processing_template_decl before substituting friend_type.
240 2016-02-19  Jason Merrill  <jason@redhat.com>
242         PR c++/69743
243         * call.c (remaining_arguments): No longer static.
244         * cp-tree.h: Declare it.
245         * pt.c (more_specialized_fn): Use it.
247 2016-02-17  Jason Merrill  <jason@redhat.com>
249         PR c++/68585
250         * constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.
252         PR c++/68679
253         * decl2.c (reset_type_linkage_2): Look through member templates.
255 2016-02-15  Jason Merrill  <jason@redhat.com>
257         PR c++/68890
258         * constexpr.c (verify_ctor_sanity): Remove CONSTRUCTOR_NELTS check.
260 2016-02-10  Jason Merrill  <jason@redhat.com>
262         PR c++/68926
263         * pt.c (resolve_nondeduced_context): Add complain parm.
264         (do_auto_deduction): Pass it.
265         * cvt.c (convert_to_void): Likewise.
266         * decl.c (cp_finish_decl): Likewise.
267         * init.c (build_new): Likewise.
268         * rtti.c (get_tinfo_decl_dynamic): Likewise.
269         * semantics.c (finish_decltype_type): Likewise.
270         * typeck.c (decay_conversion): Likewise.
271         * cp-tree.h: Adjust declaration.
272         * call.c (standard_conversion): Add complain parm, pass it along.
273         (implicit_conversion): Pass it.
275 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
277         Backported from mainline
278         2016-02-08  Jakub Jelinek  <jakub@redhat.com>
280         PR c++/59627
281         * parser.c (cp_parser_omp_declare_reduction): Set assembler name
282         of the DECL_OMP_DECLARE_REDUCTION_P decls.
284 2016-01-31  Jason Merrill  <jason@redhat.com>
286         PR c++/69009
287         * pt.c (partial_specialization_p, impartial_args): New.
288         (instantiate_decl): Call impartial_args.
290 2016-01-27  Marek Polacek  <polacek@redhat.com>
292         Backport from mainline
293         2016-01-27  Marek Polacek  <polacek@redhat.com>
295         PR c/68062
296         * typeck.c (cp_build_binary_op): Promote operand to unsigned, if
297         needed.  Add -Wsign-compare warning.
299 2016-01-27  Jason Merrill  <jason@redhat.com>
301         PR c++/68949
302         * optimize.c (maybe_clone_body): Clear DECL_SAVED_TREE of the alias.
303         * semantics.c (expand_or_defer_fn_1): Keep DECL_SAVED_TREE of
304         maybe-in-charge *tor.
306         PR c++/69131
307         * method.c (walk_field_subobs): Add dtor_from_ctor parm.
308         (process_subob_fn): Likewise.  Don't consider triviality if true.
309         (synthesize_method_walk): Pass it.
311 2016-01-19  Marek Polacek  <polacek@redhat.com>
313         Backported from mainline
314         2016-01-19  Marek Polacek  <polacek@redhat.com>
316         PR c++/68965
317         * pt.c (tsubst_copy): Mark elements in expanded vector as used.
319 2016-01-08  Marek Polacek  <polacek@redhat.com>
321         PR c++/68449
322         * constexpr.c (cxx_eval_constant_expression): Handle NULL initializer.
324 2016-01-07  Jason Merrill  <jason@redhat.com>
326         PR c++/68983
327         PR c++/67557
328         * call.c (unsafe_copy_elision_p): Look through COMPOUND_EXPR.
330 2015-12-22  Jason Merrill  <jason@redhat.com>
332         PR c++/66921
333         * decl.c (cp_complete_array_type): Allow an initializer that
334         already has array type.
336         PR c++/67339
337         * parser.c (cp_parser_elaborated_type_specifier): Use CLASS_TYPE_P
338         rather than check for RECORD_TYPE.
340 2015-12-20  Jason Merrill  <jason@redhat.com>
342         PR c++/67411
343         * decl2.c (decl_maybe_constant_var_p): Use DECL_HAS_VALUE_EXPR_P.
345         PR c++/67411
346         * decl2.c (decl_maybe_constant_var_p): A proxy isn't constant.
348 2015-12-17  Jason Merrill  <jason@redhat.com>
350         PR c++/67550
351         * init.c (constant_value_1): Don't return a CONSTRUCTOR missing
352         non-constant elements.
354         PR c++/67576
355         PR c++/25466
356         * rtti.c (build_typeid): Use save_expr, not stabilize_reference.
358 2015-12-16  Joseph Myers  <joseph@codesourcery.com>
360         PR c/68162
361         * tree.c (c_build_qualified_type): Add extra arguments.
363 2015-12-16  Jason Merrill  <jason@redhat.com>
365         PR c++/63628
366         * pt.c (tsubst_pack_expansion): Also make dummy decls if
367         retrieve_local_specialization fails.
369 2015-12-04  Markus Trippelsdorf  <markus@trippelsdorf.de>
371         PR c++/67337
372         * mangle.c (write_template_prefix): Guard against context==NULL.
374 2015-12-04  Release Manager
376         * GCC 5.3.0 released.
378 2015-11-26  Jakub Jelinek  <jakub@redhat.com>
380         PR c++/68508
381         * cp-tree.h (cp_ubsan_maybe_instrument_downcast): Add INTYPE argument.
382         * cp-ubsan.c (cp_ubsan_maybe_instrument_downcast): Likewise.  Use
383         it instead of or in addition to TREE_TYPE (op).  Use
384         is_properly_derived_from, return NULL_TREE if TREE_TYPE (intype) and
385         TREE_TYPE (type) are the same type minus qualifiers.
386         * typeck.c (build_static_cast_1): Adjust callers.
388 2015-11-25  Jakub Jelinek  <jakub@redhat.com>
390         Backported from mainline
391         2015-11-20  Jakub Jelinek  <jakub@redhat.com>
393         PR c++/67354
394         * cp-tree.h (defer_mangling_aliases): Declare.
395         (generate_mangling_aliases): New prototype.
396         * decl2.c (defer_mangling_aliases): New variable.
397         (note_mangling_alias): Use !defer_mangling_aliases
398         instead of at_eof.
399         (generate_mangling_aliases): No longer static. Clear
400         defer_mangling_aliases.
401         * optimize.c (maybe_thunk_body): Defer emitting mangling aliases
402         if !defer_mangling_aliases until the fns are put into the same
403         comdat group.
405         2015-05-09  Aldy Hernandez  <aldyh@redhat.com>
407         PR bootstrap/66085
408         * decl2.c (note_mangling_alias): Declare arguments as unused.
410         2015-05-08  Jason Merrill  <jason@redhat.com>
412         * decl2.c (mangling_aliases): New variable.
413         (note_mangling_alias, generate_mangling_aliases): New.
414         (cp_write_global_declarations): Call generate_mangling_aliases.
415         (generate_mangling_alias): Split out from...
416         * mangle.c (mangle_decl): ...here.
417         * cp-tree.h: Declare note_mangling_alias.
419 2015-11-25  Jason Merrill  <jason@redhat.com>
421         PR c++/67941
422         * lambda.c (maybe_add_lambda_conv_op): Mark _FUN as
423         no_sanitize_undefined.
425         PR c++/68422
426         * cp-tree.h (PACK_EXPANSION_SIZEOF_P): New.
427         * parser.c (cp_parser_sizeof_pack): Set it.
428         * pt.c  (tsubst_copy) [SIZEOF_EXPR]: Likewise.
429         (tsubst_pack_expansion): Improve T... shortcut when set.
431         PR c++/67813
432         * constexpr.c (cxx_eval_store_expression): Always use *valp if
433         set.
435 2015-11-25  Markus Trippelsdorf  <markus@trippelsdorf.de>
436             Paolo Carlini  <paolo.carlini@oracle.com>
438         PR c++/68087
439         * constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
440         tree_to_shwi to avoid ICEs.
442 2015-11-19  Jakub Jelinek  <jakub@redhat.com>
443             Manuel López-Ibáñez  <manu@gcc.gnu.org>
445         PR c++/67409
446         * decl.c (identify_goto): Add LOC and DIAG_KIND arguments, call
447         emit_diagnostic instead of permerror.
448         (check_previous_goto_1): Adjust identify_goto callers, treat all
449         cases but crossing initialization and entering scope of decl with
450         non-trivial dtor as unconditional hard errors.
451         (check_goto): Use identify_goto.  Treat all cases but crossing
452         initialization and entering scope of decl with non-trivial dtor
453         as unconditional hard errors.
455 2015-10-20  Jason Merrill  <jason@redhat.com>
457         PR c++/66583
458         * init.c (innermost_aggr_scope): New.
459         (sort_mem_initializers): Use it.
461         PR c++/67557
462         * call.c (is_base_field_ref): New.
463         (unsafe_copy_elision_p): New.
464         (build_over_call): Use it.
466 2015-09-12  Paolo Carlini  <paolo.carlini@oracle.com>
468         Backport from mainline
469         2015-06-15  Paolo Carlini  <paolo.carlini@oracle.com>
471         PR c++/51048
472         * decl2.c (no_linkage_error): Do not issue a permerror if the DECL
473         using a local type is pure virtual.
475 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
477         PR c++/67522
478         * semantics.c (handle_omp_array_sections_1): Only run
479         type_dependent_expression_p on VAR_DECL/PARM_DECLs.
480         (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Likewise.
481         Don't adjust OMP_CLAUSE_LINEAR_STEP if OMP_CLAUSE_DECL
482         is not a VAR_DECL/PARM_DECL.
484         PR c++/67511
485         * semantics.c (handle_omp_for_class_iterator): Don't wrap
486         error_mark_node into a NOP_EXPR to void_type_node.
488 2015-09-09  Jakub Jelinek  <jakub@redhat.com>
490         PR c++/67504
491         * parser.c (cp_parser_omp_clause_collapse): Test tree_fits_shwi_p
492         before INTEGRAL_TYPE_P test.
494 2015-09-08  Paolo Carlini  <paolo.carlini@oracle.com>
496         PR c++/67369
497         * pt.c (tsubst_copy, [case FUNCTION_DECL]): Do not call tsubst
498         if the first argument isn't a template.
500 2015-08-17  Jason Merrill  <jason@redhat.com>
502         PR c++/66957
503         * search.c (protected_accessible_p): Revert fix for 38579.
505 2015-08-17  Paolo Carlini  <paolo.carlini@oracle.com>
507         PR c++/66919
508         * pt.c (tsubst_copy): Pass complain to mark_used, check return value.
510 2015-08-17  Jason Merrill  <jason@redhat.com>
512         PR c++/67244
513         * pt.c (tsubst_copy_and_build): Call insert_pending_capture_proxies.
515         PR c++/65734
516         * class.c (fixup_attribute_variants): Respect TYPE_USER_ALIGN.
518         PR c++/67104
519         * constexpr.c (cxx_eval_array_reference): Handle sparse
520         CONSTRUCTORs.
522 2015-08-14  Jason Merrill  <jason@redhat.com>
524         PR c++/65974
525         * decl2.c (mark_vtable_entries): Suppress -Wdeprecated.
527 2015-08-14  Patrick Palka  <ppalka@gcc.gnu.org>
529         PR c++/66857
530         * cvt.c (ocp_convert): Don't call scalar_constant_value when
531         converting to a class type.
533 2015-08-12  Jason Merrill  <jason@redhat.com>
535         PR c++/67161
536         * error.c (dump_decl) [TEMPLATE_ID_EXPR]: Pass
537         TFF_NO_OMIT_DEFAULT_TEMPLATE_ARGUMENTS.
539 2015-08-06  Jason Merrill  <jason@redhat.com>
541         PR c++/66533
542         * parser.c (cp_parser_primary_expression): Don't skip to the end
543         of the statement if we're parsing tentatively.
545         PR c++/67130
546         PR c++/67131
547         PR c++/66260
548         * mangle.c (write_expression) [TEMPLATE_ID_EXPR]: Handle variable
549         templates.
550         * pt.c (tsubst_copy_and_build): Check for argument substitution
551         failure.
553 2015-08-05  Jason Merrill  <jason@redhat.com>
555         PR c++/66260
556         PR c++/66596
557         PR c++/66649
558         PR c++/66923
559         * pt.c (lookup_template_variable): Use NULL_TREE for type.
560         (instantiate_template_1): Also set DECL_TI_ARGS based on
561         the immediate parent.
562         (tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
563         (finish_template_variable): Add complain parm.
564         * cp-tree.h: Adjust.
566         PR c++/65195
567         PR c++/66619
568         * semantics.c (finish_id_expression): Call convert_from_reference
569         for variable template.
571         PR c++/66336
572         * pt.c (find_parameter_packs_r): Handle variable templates.
573         (variable_template_specialization_p): New.
574         * cp-tree.h: Declare it.
576 2015-07-30  Jason Merrill  <jason@redhat.com>
578         DR 1558
579         PR c++/67021
580         * pt.c (tsubst_decl) [TYPE_DECL]: Clear TYPE_DEPENDENT_P_VALID.
582 2015-07-16  Marek Polacek  <polacek@redhat.com>
584         Backported from mainline
585         2015-07-08  Marek Polacek  <polacek@redhat.com>
587         PR c++/66748
588         * tree.c (handle_abi_tag_attribute): Check for CLASS_TYPE_P before
589         accessing TYPE_LANG_SPECIFIC node.
591 2015-07-16  Release Manager
593         * GCC 5.2.0 released.
595 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
597         Backported from mainline
598         2015-07-08  Jakub Jelinek  <jakub@redhat.com>
600         * decl.c (grokfndecl): Handle flag_openmp_simd like flag_openmp.
601         * pt.c (apply_late_template_attributes): Likewise.
603 2015-07-02  Jason Merrill  <jason@redhat.com>
605         PR c++/66743
606         * pt.c (for_each_template_parm_r) [UNDERLYING_TYPE]: Use
607         TYPE_VALUES_RAW rather than TYPE_FIELDS.
609 2015-06-30  Jason Merrill  <jason@redhat.com>
611         PR c++/65945
612         * decl.c (cxx_init_decl_processing): Set TYPE_ALIGN of nullptr_t.
613         * class.c (layout_nonempty_base_or_field): Warn if that affects
614         the offset of a field.
616 2015-06-29  Adam Butcher  <adam@jessamine.co.uk>
618         PR c++/65750
619         * parser.c (cp_parser_simple_type_specifier): Don't synthesize
620         implicit template parm if 'auto' is a placeholder for trailing
621         return type.
623 2015-06-26  Jason Merrill  <jason@redhat.com>
625         PR c++/66216
626         * class.c (finish_struct): Call fixup_attribute_variants.
628         PR c++/66067
629         * mangle.c (write_template_args): Handle 0 length TREE_VEC.
631 2015-06-24  Jason Merrill  <jason@redhat.com>
633         PR c++/65919
634         * mangle.c (mangle_decl): Always SET_IDENTIFIER_GLOBAL_VALUE.
635         (decl_implicit_alias_p): Split out from maybe_remove_implicit_alias.
636         * cp-tree.h (DECL_REALLY_EXTERN): Handle null DECL_LANG_SPECIFIC.
638         PR c++/66647
639         * pt.c (dependent_type_p_r): Check for dependent alias template
640         specialization sooner.
642         PR c++/66501
643         * init.c (vec_copy_assign_is_trivial): New.
644         (build_vec_init): Use it.
646 2015-06-24  Mikhail Maltsev  <maltsevm@gmail.com>
648         Backport from mainline:
649         2015-06-20  Mikhail Maltsev  <maltsevm@gmail.com>
651         PR c++/65882
652         * call.c (build_new_op_1): Check tf_warning flag in all cases.
654 2015-06-23  Jason Merrill  <jason@redhat.com>
656         PR c++/65879
657         * tree.c (no_linkage_check): Skip the 'this' pointer.
659 2015-06-19  Jason Merrill  <jason@redhat.com>
661         PR c++/66515
662         * call.c (implicit_conversion): Call reshape_init here, early.
663         (build_aggr_conv): Not here.
665         PR c++/66585
666         * pt.c (instantiate_class_template_1): Clear
667         cp_unevaluated_operand and c_inhibit_evaluation_warnings.
669         PR c++/65880
670         * decl.c (build_ptrmemfunc_type): Check TYPE_GET_PTRMEMFUNC_TYPE after
671         cv-qualifiers.
673         PR c++/65973
674         * constexpr.c (build_constexpr_constructor_member_initializers):
675         Handle an empty STATEMENT_LIST.
677         PR c++/65843
678         * pt.c (tsubst_copy_and_build): Register a capture proxy in
679         local_specializations.
681 2015-06-17  Jason Merrill  <jason@redhat.com>
683         PR c++/66001
684         * constexpr.c (cxx_eval_constant_expression): Handle TRY_BLOCK and
685         TRY_FINALLY_EXPR.
686         (potential_constant_expression_1): Likewise.
688 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
690         PR c++/66571
691         * pt.c (tsubst_omp_clause_decl): New function.
692         (tsubst_omp_clauses): Use it or tsubst_copy instead of
693         tsubst_expr on OMP_CLAUSE_DECL.
695 2015-06-17  Jason Merrill  <jason@redhat.com>
697         PR c++/66536
698         * tree.c (replace_placeholders_r) [CONSTRUCTOR]: Handle type
699         mismatch.
701         PR c++/58063
702         * tree.c (bot_manip): Remap SAVE_EXPR.
704         PR c++/66387
705         * pt.c (tsubst_copy) [VAR_DECL]: Use process_outer_var_ref.
707         PR c++/66450
708         * constexpr.c (cxx_eval_store_expression): Avoid messing up outer
709         ctx->ctor.
711         PR c++/66289
712         * cp-tree.h (TEMPLATE_DECL_COMPLEX_ALIAS_P): New.
713         * pt.c (push_template_decl_real): Set it.
714         (dependent_alias_template_spec_p): Use it.
715         (dependent_type_p_r): Use dependent_alias_template_spec_p.
716         (uses_all_template_parms_data, uses_all_template_parms_r)
717         (complex_alias_template_p): New.
718         (get_template_parm_index): Handle BOUND_TEMPLATE_TEMPLATE_PARM.
720 2015-06-12  Jason Merrill  <jason@redhat.com>
722         PR c++/65719
723         * pt.c (tsubst_decl) [VAR_DECL]: Mark namespace-scope
724         variables as DECL_NOT_REALLY_EXTERN.
726 2015-06-11  Jason Merrill  <jason@redhat.com>
728         PR c++/66445
729         * constexpr.c (potential_constant_expression_1): Handle a
730         DECL_EXPR of TYPE_DECL.
732 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
734         * decl.c (cxx_init_decl_processing): Register the main
735         translation unit through the new debug hook.
737 2015-06-09  Jason Merrill  <jason@redhat.com>
739         PR c++/66387
740         * semantics.c (process_outer_var_ref): Make sure the value is
741         actually constant before returning it.
742         * typeck.c (cp_build_array_ref): Allow subscripting non-lvalue
743         array.
745         PR c++/66383
746         * tree.c (replace_placeholders_r): Handle placeholders for an
747         outer object.
748         * typeck2.c (store_init_value): Only replace_placeholders for
749         objects of class type.
751 2015-06-05  Jason Merrill  <jason@redhat.com>
753         PR c++/66405
754         * pt.c (argument_pack_element_is_expansion_p): Return 2 if
755         the expansion has extra args.
756         (use_pack_expansion_extra_args_p): Return true in that case.
758         PR c++/66405
759         * pt.c (type_dependent_expression_p): EXPR_PACK_EXPANSION is
760         dependent even if it has a type.
762 2015-06-05  Jason Merrill  <jason@redhat.com>
764         PR c++/65942
765         * decl2.c (mark_used): Don't always instantiate constexpr fns.
766         * constexpr.c (cxx_eval_call_expression): Instantiate them here.
768 2015-06-04  Marek Polacek  <polacek@redhat.com>
770         Backported from mainline
771         2015-06-03  Marek Polacek  <polacek@redhat.com>
773         PR sanitizer/66190
774         * cp-gimplify.c (struct cp_genericize_data): Add no_sanitize_p.
775         (cp_genericize_r): Don't instrument static initializers.
776         (cp_genericize_tree): Initialize wtd.no_sanitize_p.
778 2015-05-31  Jason Merrill  <jason@redhat.com>
780         PR c++/66320
781         * constexpr.c (cxx_eval_constant_expression): Treat a placeholder
782         with the wrong type as non-constant.
784         * pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION
785         before register_specialization.
787 2015-05-22  Jakub Jelinek  <jakub@redhat.com>
789         Backported from mainline
790         2015-05-19  Jakub Jelinek  <jakub@redhat.com>
792         PR middle-end/66199
793         * parser.c (cp_parser_omp_for_loop): Don't add
794         OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
795         OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
796         (cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
797         constructs.
799 2015-05-18  Jason Merrill  <jason@redhat.com>
801         * pt.c (tsubst_decl) [VAR_DECL]: Call coerce_innermost_template_parms.
802         (determine_specialization): Call coerce_template_parms.
804         * tree.c (strip_typedefs_expr) [TRAIT_EXPR]: Fix typo.
805         (strip_typedefs) [DECLTYPE_TYPE]: Fix typedef of decltype.
806         [TREE_LIST]: Fix no-change case.
808 2015-05-07  Jason Merrill  <jason@redhat.com>
810         PR c++/59012
811         * parser.c (cp_parser_std_attribute_list): Handle attribute expansion.
812         (cp_parser_std_attribute_spec): Handle alignas pack expansion.
813         * decl2.c (is_late_template_attribute): An attribute exp is dependent.
814         * pt.c (make_pack_expansion): Allow TREE_LIST for attribute expansion.
815         (apply_late_template_attributes): Handle attribute pack expansion.
817         DR 1467
818         PR c++/51747
819         * typeck2.c (digest_init_r): Fix single element list.
821 2015-05-05  Jason Merrill  <jason@redhat.com>
823         * decl.c (start_decl): Don't push the plain VAR_DECL for a
824         variable template.
826 2015-05-04  Paolo Carlini  <paolo.carlini@oracle.com>
827             Jakub Jelinek  <jakub@redhat.com>
829         PR c++/66007
830         * typeck2.c (check_narrowing): Check by-hand that the pedwarn didn't
831         result in an actual error.
833 2015-05-01  Paolo Carlini  <paolo.carlini@oracle.com>
834             Prathamesh Kulharni  <prathamesh.kulkarni@linaro.org>
836         PR c++/65858
837         * typeck2.c (check_narrowing): Set ok = true when pedwarn returns
838         false.
840 2015-04-30  Paolo Carlini  <paolo.carlini@oracle.com>
842         PR c++/65801
843         * typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
844         suppresses the diagnostic.
846 2015-04-30  Jason Merrill  <jason@redhat.com>
848         PR c++/65876
849         * constexpr.c (cxx_eval_call_expression): Fail gracefully if cgraph
850         threw away DECL_SAVED_TREE.
852 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
854         Backport from trunk r222564:
856         2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
858         * pt.c (tsubst_expr) <OMP_TARGET_UPDATE>: Use
859         OMP_TARGET_UPDATE_CLAUSES instead of OMP_CLAUSES.
861 2015-04-28  Jason Merrill  <jason@redhat.com>
863         PR c++/65896
864         * constexpr.c (cxx_eval_store_expression): Don't try to actually
865         store an empty class.
867 2015-04-22  Marek Polacek  <polacek@redhat.com>
869         PR c++/65727
870         * lambda.c (maybe_resolve_dummy): Handle null return.
872 2015-04-22  Jason Merrill  <jason@redhat.com>
874         PR c++/65695
875         * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.
877         PR c++/65721
878         * name-lookup.c (do_class_using_decl): Complain about specifying
879         the current class even if there are dependent bases.
881 2015-04-22  David Krauss  <david_work@me.com>
883         PR c++/59766
884         * decl.c (grokdeclarator): Do not flag friends with deduced return.
886 2015-04-22  Release Manager
888         * GCC 5.1.0 released.
890 2015-04-20  Ilya Verbin  <ilya.verbin@intel.com>
892         * parser.c (cp_parser_omp_target_update): Add missed %> to error_at ().
894 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
896         PR c++/65736
897         * constexpr.c (cxx_eval_pointer_plus_expression): Don't fold for VLAs,
898         don't fold if op01 isn't divisible by TYPE_SIZE_UNIT.  Convert
899         the expression to the original type at the end.
901 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
903         PR c++/65690
904         * tree.c (cp_build_qualified_type_real): Copy TYPE_ALIGN and
905         TYPE_USER_ALIGN.
907         PR c++/65690
908         * tree.c (build_cplus_array_type): Layout type before variants are
909         set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
910         variant.
912 2015-04-03  Paolo Carlini  <paolo.carlini@oracle.com>
914         PR c++/64085
915         * lambda.c (add_capture): Use dependent_type_p for capture by
916         reference too.
918 2015-04-02  Marek Polacek  <polacek@redhat.com>
920         PR c++/65642
921         * constexpr.c (cxx_eval_pointer_plus_expression): Call
922         cxx_eval_constant_expression on the first operand.
924 2015-04-01  Jason Merrill  <jason@redhat.com>
926         PR c++/65625
927         * decl.c (make_typename_type): Handle seeing a variable template.
929 2015-04-01  Paolo Carlini  <paolo.carlini@oracle.com>
931         PR c++/56100
932         * pt.c (instantiating_current_function_p): New.
933         * name-lookup.c (pushdecl_maybe_friend_1): Use it.
934         * cp-tree.h (instantiating_current_function_p): Declare.
936 2015-04-01  Jason Merrill  <jason@redhat.com>
938         PR c++/65646
939         * decl.c (grokvardecl): Don't call check_explicit_specialization
940         for non-template members of a class template.
942 2015-04-01  Marek Polacek  <polacek@redhat.com>
944         PR c++/65554
945         * class.c (finish_struct): Require that the second field of a
946         user-defined initializer_list be of size type.
948 2015-03-31  Marek Polacek  <polacek@redhat.com>
950         PR c++/65390
951         * tree.c (build_cplus_array_type): Use dependent_type_p rather than
952         checking for constness.
954 2015-03-30  Marek Polacek  <polacek@redhat.com>
956         PR c++/65398
957         * constexpr.c (cxx_fold_indirect_ref): Don't perform the
958          *(&A[i] p+ j) => A[i + j] transformation here.
959         (cxx_eval_pointer_plus_expression): New function.
960         (cxx_eval_constant_expression): Use it here.
962 2015-03-27  Tobias Burnus  <burnus@net-b.de>
964         PR c/65586
965         * parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
966         cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target,
967         cp_parser_omp_declare): Don't show error for skipped omp pragmas with
968         -fopenmp-simd.
970 2015-03-27  Marek Polacek  <polacek@redhat.com>
972         PR c++/65556
973         * semantics.c (finish_switch_cond): If the unlowered type is not an
974         enum, use the type of the condition.
976 2015-03-27  Jason Merrill  <jason@redhat.com>
978         PR c++/65509
979         * decl.c (make_rtl_for_nonlocal_decl): Don't defer static
980         constants.
982 2015-03-26  Mikhail Maltsev  <maltsevm@gmail.com>
984         PR c++/65154
985         * init.c (build_vec_init): Fix initializing aggregates
986         with empty init list.
988 2015-03-26  Jason Merrill  <jason@redhat.com>
990         PR c++/65525
991         * constexpr.c (potential_constant_expression_1): Handle MEM_REF.
993 2015-03-25  Marek Polacek  <polacek@redhat.com>
995         PR c++/65558
996         * name-lookup.c (handle_namespace_attrs): Ignore abi_tag attribute
997         on an anonymous namespace.
999 2015-03-25  Marek Polacek  <polacek@redhat.com>
1001         PR c++/61670
1002         * class.c (remove_zero_width_bit_fields): Check for null DECL_SIZE.
1004 2015-03-24  Jason Merrill  <jason@redhat.com>
1006         PR c++/65046
1007         * cp-tree.h (NAMESPACE_IS_INLINE): Remove.
1008         * parser.c (cp_parser_namespace_definition): Don't set it.
1009         * name-lookup.c (handle_namespace_attrs): Check
1010         DECL_NAMESPACE_ASSOCIATIONS instead.
1012         PR c++/65498
1013         * pt.c (get_mostly_instantiated_function_type): Just return the
1014         type of the partially instantiated template in DECL_TI_TEMPLATE.
1016 2015-03-20  Marek Polacek  <polacek@redhat.com>
1018         PR c++/65398
1019         * constexpr.c (cxx_fold_indirect_ref): Transform *(&A[i] p+ j) into
1020         A[i + j].
1022 2015-03-20  Marek Polacek  <polacek@redhat.com>
1024         PR c++/65072
1025         * typeck.c (lookup_anon_field): Make sure we're dealing with the main
1026         variant.
1028 2015-03-19  Jason Merrill  <jason@redhat.com>
1030         PR c++/65046
1031         Automatically propagate ABI tags to variables and functions
1032         from their (return) type.
1033         * class.c (check_tag): Handle variables and functions.
1034         (mark_or_check_attr_tags): Split out from find_abi_tags_r.
1035         (mark_or_check_tags): Likewise.
1036         (mark_abi_tags): Use it.  Rename from mark_type_abi_tags.
1037         (check_abi_tags): Add single argument overload for decls.
1038         Handle inheriting tags for decls.
1039         * mangle.c (write_mangled_name): Call it.
1040         (mangle_return_type_p): Split out from write_encoding.
1041         (unmangled_name_p): Split out from write_mangled_name.
1042         (write_mangled_name): Ignore abi_tag on namespace.
1043         * cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
1044         * parser.c (cp_parser_namespace_definition): Set it.
1045         * name-lookup.c (handle_namespace_attrs): Use arguments. Warn
1046         about abi_tag attribute on non-inline namespace.
1047         * tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
1048         (handle_abi_tag_attribute): Allow tags on variables.
1050 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
1052         * decl2.c (cplus_decl_attributes): Also add "omp declare target"
1053         attribute for DECL_EXTERNAL VAR_DECLs.
1055 2015-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
1057         PR c++/65340
1058         * call.c (build_over_call): Pass the tsubst_flags_t argument to
1059         mark_used.
1060         * decl2.c (mark_used): Inline the require_deduced_type call and
1061         guard the error call.
1063 2015-03-16  Jason Merrill  <jason@redhat.com>
1065         PR c++/65061
1066         * parser.c (cp_parser_template_name): Call strip_using_decl.
1068 2015-03-16  Marek Polacek  <polacek@redhat.com>
1070         DR 1688
1071         PR c++/65327
1072         * decl.c (grokdeclarator): Allow volatile and constexpr together.
1074 2015-03-12  Paolo Carlini  <paolo.carlini@oracle.com>
1076         PR c++/65323
1077         * decl.c (check_default_argument): Don't call
1078         maybe_warn_zero_as_null_pointer_constant.
1080 2015-03-11  Aldy Hernandez  <aldyh@redhat.com>
1082         * cp-gimplify.c (simple_empty_class_p): New.
1083         * cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR.  Abstract
1084         the code for empty class copies into simple_empty_class_p, and
1085         adapt it to handle COMPOUND_EXPRs.
1087 2015-03-10  Paolo Carlini  <paolo.carlini@oracle.com>
1089         PR c++/65370
1090         * decl.c (duplicate_decls): Call check_redeclaration_no_default_args
1091         only if the location of newdecl doesn't match the location of olddecl.
1093 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
1095         PR c++/65127
1096         * parser.c (parsing_nsdmi): Don't return true if current_class_ptr
1097         is not a PARM_DECL.
1099 2015-03-10  Jason Merrill  <jason@redhat.com>
1101         PR c++/65333
1102         DR 1558
1103         * pt.c (dependent_type_p_r): Check both class and alias template args.
1105 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
1107         PR c/65120
1108         * parser.c (cp_parser_binary_expression): Check for tcc_comparison
1109         before preparing arguments to warn_logical_not_parentheses.
1110         Use maybe_constant_value on rhs.
1112 2015-03-09  Jason Merrill  <jason@redhat.com>
1114         PR c++/65339
1115         * call.c: Don't call maybe_resolve_dummy when calling a constructor.
1117 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
1119         PR c/65120
1120         * parser.c (cp_parser_binary_expression): Don't warn for
1121         !!x == y or !b == y where b is bool.
1123 2015-03-06  Aldy Hernandez  <aldyh@redhat.com>
1125         * ptree.c (cxx_print_lambda_node): New.
1126         (cxx_print_xnode): Handle LAMBDA_EXPR.
1128 2015-03-03  Aldy Hernandez  <aldyh@redhat.com>
1130         PR c++/65295
1131         * constexpr.c (cxx_eval_constant_expression): Remove assert in
1132         RESULT_DECL handling.
1134 2015-02-26  Marek Polacek  <polacek@redhat.com>
1136         PR c++/65202
1137         * constexpr.c (cxx_eval_constant_expression): Don't evaluate
1138         a RETURN_EXPR if its operand is null.
1140 2015-02-25  Jason Merrill  <jason@redhat.com>
1142         PR c++/65209
1143         * decl2.c (constrain_visibility) [VISIBILITY_ANON]: Clear
1144         DECL_COMDAT.
1145         (constrain_visibility_for_template): Handle reference arguments.
1147         PR debug/58315
1148         * decl.c (start_preparsed_function): Use create_artificial_label
1149         for cdtor_label.
1151 2015-02-17  Paolo Carlini  <paolo.carlini@oracle.com>
1152             Jakub Jelinek  <jakub@redhat.com>
1154         PR c++/65075
1155         * constexpr.c (check_constexpr_bind_expr_vars): Allow
1156         implicit typedefs for lambda types.
1158 2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
1160         PR c++/60894
1161         * decl.c (lookup_and_check_tag): Use strip_using_decl.
1163 2015-02-13  Jason Merrill  <jason@redhat.com>
1165         PR c++/65054
1166         * pt.c (template_args_equal): Look through conversions here.
1167         * tree.c (cp_tree_equal): Not here.
1169 2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
1171         PR c++/60211
1172         * parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
1173         pragma_external context.
1175 2015-02-13  Jason Merrill  <jason@redhat.com>
1177         PR c++/65051
1178         * call.c (reference_binding): Don't look for bad conversion
1179         if TO is incomplete.
1181 2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
1183         PR c++/64970
1184         * decl.c (make_typename_type): Pass tsubst_flags_t argument
1185         to lookup_template_class.
1187 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
1189         PR ipa/65034
1190         * decl.c (start_preparsed_function): Use void_type_node instead
1191         of NULL_TREE as LABEL_DECL type.
1193 2015-02-12  Jason Merrill  <jason@redhat.com>
1195         PR c++/64898
1196         * mangle.c (write_mangled_name): Fix test for variable template
1197         instantiation.
1199         * decl.c (begin_destructor_body): Condition clobber on
1200         -flifetime-dse.
1202 2015-02-12 Andrea Azzarone <azzaronea@gmail.com>
1204         PR c++/64959
1205         * parser.c (lookup_literal_operator): Return all candidates.
1206         (cp_parser_userdef_char_literal): Simplify error handling.
1207         (cp_parser_userdef_numeric_literal):  Pass tf_warning_or_error.
1208         (cp_parser_userdef_string_literal): Pass tf_warning_or_error.
1209         Also give higher priority to standard string UDL operator.
1211 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
1213         PR debug/55541
1214         * cp-tree.h (BLOCK_OUTER_CURLY_BRACE_P): Define.
1215         * decl.c (poplevel): If functionbody, try not to create an extra
1216         BLOCK for function body and use subblocks as that, if it is non-NULL
1217         and doesn't have siblings.  Set BLOCK_OUTER_CURLY_BRACE_P flag.
1218         (outer_curly_brace_block): Use BLOCK_OUTER_CURLY_BRACE_P flag.
1220         PR sanitizer/64984
1221         * except.c (check_noexcept_r): Return NULL for internal
1222         calls.
1224 2015-02-10  Jason Merrill  <jason@redhat.com>
1226         PR c++/64994
1227         * constexpr.c (cxx_eval_call_expression): Walk the clone list.
1229 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
1231         PR ipa/64982
1232         * method.c (use_thunk): Do not check for stdarg thunks.
1234 2015-02-06  Jason Merrill  <jason@redhat.com>
1236         PR c++/64899
1237         * init.c (build_vec_init): Handle default-initialized array with
1238         constexpr default constructor.
1240 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
1242         PR c/64824
1243         PR c/64868
1244         * parser.c (cp_parser_omp_atomic): Handle RDIV_EXPR.
1246 2015-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
1248         PR c++/64877
1249         * typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
1250         for generated expressions.
1252 2015-02-02  Ville Voutilainen  <ville.voutilainen@gmail.com>
1254         PR c++/64901
1255         * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
1256         DECL_OVERRIDE_P.
1258 2015-02-02  Jason Merrill  <jason@redhat.com>
1260         * tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
1262 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
1264         * class.c, except.c, parser.c, pt.c: All callers of fatal_error
1265         changed to pass input_location as first argument.
1267 2015-01-29  Jakub Jelinek  <jakub@redhat.com>
1269         PR c++/64717
1270         * cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
1271         into SAVE_EXPR.
1273 2015-01-29  Jason Merrill  <jason@redhat.com>
1275         PR c++/49508
1276         * semantics.c (finish_return_stmt): Suppress -Wreturn-type on
1277         erroneous return statement.
1279         PR c++/64521
1280         * repo.c (repo_emit_p): It's OK for a clone to be extern at this
1281         point.
1283 2015-01-27  Caroline Tice  <cmtice@google.com>
1285         Committing VTV Cywin/Ming patch for Patrick Wollgast
1286         * vtable-class-hierarchy.cc (vtv_generate_init_routine): Add
1287         check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
1289 2015-01-27  Jason Merrill  <jason@redhat.com>
1291         PR c++/58597
1292         * lambda.c (maybe_add_lambda_conv_op): Check cfun rather than
1293         current_function_decl.
1295         PR c++/63889
1296         * pt.c (finish_template_variable): Move from semantics.c.
1297         Handle multiple template arg levels.  Handle coercion here.
1298         (lookup_template_variable): Not here.
1300 2015-01-23  Jason Merrill  <jason@redhat.com>
1302         PR c++/64314
1303         PR c++/57510
1304         * typeck2.c (split_nonconstant_init_1): Remove a sub-CONSTRUCTOR
1305         that has been completely split out.
1307         PR c++/64701
1308         * constexpr.c (cxx_eval_constant_expression): Don't crash on C++
1309         statement codes.
1311         PR c++/64727
1312         * constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
1313         of CONST_DECL.
1315 2015-01-21  Jason Merrill  <jason@redhat.com>
1317         PR c++/64603
1318         * constexpr.c (cxx_eval_constant_expression): Only shortcut
1319         constant CONSTRUCTORs.
1321         PR c++/64647
1322         * constexpr.c (ensure_literal_type_for_constexpr_object): Don't
1323         give a hard error in a template instantiation.
1325 2015-01-21  Richard Biener  <rguenther@suse.de>
1327         PR middle-end/64313
1328         * decl.c (duplicate_decls): Call set_builtin_decl_declared_p
1329         for builtins the user declared correctly.
1331 2015-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
1333         PR c++/58614
1334         * pt.c (unify): When BRACE_ENCLOSED_INITIALIZER_P (arg), handle
1335         TREE_TYPE (elt) == error_mark_node.
1337 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
1339         PR tree-optimization/62053
1340         * tree.c (build_cplus_array_type): Layout type after variants are set.
1342 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
1344         * cp-gimplify.c (cp_genericize_r): Call
1345         cp_ubsan_maybe_instrument_member_call for member calls.
1346         (cp_ubsan_check_member_access_r): New function.
1347         (cp_genericize_tree): Call cp_ubsan_instrument_member_accesses.
1348         * cp-tree.h (cp_ubsan_maybe_instrument_member_call,
1349         cp_ubsan_instrument_member_accesses,
1350         cp_ubsan_maybe_instrument_downcast,
1351         cp_ubsan_maybe_instrument_cast_to_vbase): New prototypes.
1352         * cp-ubsan.c: New file.
1353         * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-ubsan.o.
1354         * constexpr.c (cxx_eval_call_expression): Return void_node
1355         for IFN_UBSAN_VPTR.
1356         (potential_constant_expression_1): Return true for
1357         UBSAN_NULL, UBSAN_BOUNDS and UBSAN_VPTR internal calls.
1358         * typeck.c (build_class_member_access_expr): Provide locus
1359         for COMPONENT_REFs.
1360         (build_static_cast_1): Instrument downcasts.
1361         * class.c (build_base_path): For -fsanitize=vptr and !fixed_type_p
1362         add ubsan instrumentation for virtual_access.
1363         * call.c: Include internal-fn.h.
1364         (set_flags_from_callee): Handle internal calls.
1366 2015-01-15  Momchil Velikov  <momchil.velikov@gmail.com>
1368         PR c++/59366
1369         * name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
1370         and function templates, declared only in the class.
1371         * decl.c (duplicate_decls): Reveal hidden friend functions or
1372         function templates, if they are redeclared outside the class.
1374 2015-01-15  Jason Merrill  <jason@redhat.com>
1376         PR c++/64356
1377         * constexpr.c (cxx_eval_binary_expression): Fix pasto.
1379         PR c++/63283
1380         * constexpr.c (potential_constant_expression_1): Handle reference
1381         args in templates.
1383 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
1384             James Norris  <jnorris@codesourcery.com>
1385             Cesar Philippidis  <cesar@codesourcery.com>
1386             Ilmir Usmanov  <i.usmanov@samsung.com>
1387             Jakub Jelinek  <jakub@redhat.com>
1389         * parser.c: Include "gomp-constants.h".
1390         (cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
1391         omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
1392         Use OMP_CLAUSE_SET_MAP_KIND.
1393         (cp_parser_omp_construct, cp_parser_pragma): Handle
1394         PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
1395         PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
1396         PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
1397         (cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
1398         "create", "delete", "deviceptr", "host", "num_gangs",
1399         "num_workers", "present", "present_or_copy", "pcopy",
1400         "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
1401         "present_or_create", "pcreate", "vector_length", "wait".
1402         (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
1403         (OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
1404         (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
1405         (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
1406         (cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
1407         (cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
1408         (cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
1409         (cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
1410         (cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
1411         (cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
1412         (cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
1413         (cp_parser_oacc_kernels, cp_parser_oacc_loop)
1414         (cp_parser_oacc_parallel, cp_parser_oacc_update)
1415         (cp_parser_oacc_wait): New functions.
1416         * cp-tree.h (finish_oacc_data, finish_oacc_kernels)
1417         (finish_oacc_parallel): New prototypes.
1418         * semantics.c: Include "gomp-constants.h".
1419         (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
1420         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
1421         OMP_CLAUSE_SET_MAP_KIND.
1422         (finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
1423         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
1424         Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
1425         (finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
1426         functions.
1428 2015-01-14  Paolo Carlini  <paolo.carlini@oracle.com>
1430         PR c++/58671
1431         * decl2.c (var_defined_without_dynamic_init): Handle gracefully
1432         self-initialization.
1434 2015-01-13  Jason Merrill  <jason@redhat.com>
1436         PR c++/64356
1437         PR libstdc++/58777
1438         * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
1439         pointer expressions.
1440         (cxx_eval_increment_expression): Likewise.
1442         PR c++/64514
1443         * pt.c (coerce_template_parameter_pack): Return NULL for a
1444         zero-length fixed parameter pack with a pack expansion arg.
1446         PR c++/64520
1447         * pt.c (unify): Don't try to deduce to std::initializer_list<T...>.
1449 2015-01-12  Jason Merrill  <jason@redhat.com>
1451         PR c++/64547
1452         * constexpr.c (cxx_eval_call_expression): A call to a void
1453         function doesn't need to return a value.
1455 2015-01-09  Michael Collison  <michael.collison@linaro.org>
1457         * call.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
1458         input.h, alias.h, symtab.h, options.h, fold-const.h,
1459         wide-int.h, and inchash.h due to flattening of tree.h.
1460         * class.c: Ditto.
1461         * constexpr.c: Ditto.
1462         * cp-array-notation.c: Ditto.
1463         * cp-gimplify.c: Ditto.
1464         * cp-lang.c: Ditto.
1465         * cp-objcp-common.c: Ditto.
1466         * cvt.c: Ditto.
1467         * decl2.c: Ditto.
1468         * decl.c: Ditto.
1469         * dump.c: Ditto.
1470         * error.c: Ditto.
1471         * except.c: Ditto.
1472         * expr.c: Ditto.
1473         * friend.c: Ditto.
1474         * init.c: Ditto.
1475         * lambda.c: Ditto.
1476         * lex.c: Ditto.
1477         * mangle.c: Ditto.
1478         * name-lookup.c: Ditto.
1479         * optimize.c: Ditto.
1480         * parser.c: Ditto.
1481         * pt.c: Ditto.
1482         * ptree.c: Ditto.
1483         * repo.c: Ditto.
1484         * rtti.c: Ditto.
1485         * search.c: Ditto.
1486         * semantics.c: Ditto.
1487         * tree.c: Ditto.
1488         * typeck2.c: Ditto.
1489         * typeck.c: Ditto.
1491 2015-01-08  Jason Merrill  <jason@redhat.com>
1493         * cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
1494         * decl.c (compute_array_index_type): Likewise.
1495         * init.c (build_vec_init): Likewise.
1496         * typeck.c (cp_build_binary_op): Likewise.
1498 2015-01-08  Jason Merrill  <jason@redhat.com>
1500         * init.c (build_vec_init): Call ubsan_instrument_bounds to check
1501         whether an initializer-list is too big for a VLA.
1502         (throw_bad_array_length): Remove.
1503         * cp-tree.h: Remove prototype.
1505 2015-01-08  Paolo Carlini  <paolo.carlini@oracle.com>
1507         PR c++/60753
1508         * decl.c (grokfndecl): Add bool parameter.
1509         (grokdeclarator): Adjust calls.
1510         (start_decl): Don't set DECL_DELETED_FN here.
1512 2015-01-06  Jason Merrill  <jason@redhat.com>
1514         * parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
1515         template-ids.
1517         PR c++/64455
1518         * pt.c (type_dependent_expression_p): Handle variable templates.
1519         * constexpr.c (potential_constant_expression_1): Use it.
1521         PR c++/64487
1522         * semantics.c (finish_offsetof): Handle templates here.
1523         * parser.c (cp_parser_builtin_offsetof): Not here.
1525         PR c++/64496
1526         * semantics.c (process_outer_var_ref): Diagnose lambda in local
1527         class NSDMI.
1529 2015-01-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
1531         PR c++/64489
1532         * class.c (check_field_decls): Make copy assignment operators
1533         complex only in c++98 mode.
1535 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
1537         PR c++/31397
1538         * class.c (check_for_override): Warn when a virtual function is an
1539         override not marked override.
1541 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
1543         * class.c (warn_hidden): Use auto_vec<tree> instead of tree_list to
1544         hold base_fndecls.
1545         (get_basefndecls): Adjust.
1547 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
1549         Update copyright years.
1551 2015-01-05  Marek Polacek  <polacek@redhat.com>
1553         PR c/64423
1554         * typeck.c (cp_build_array_ref): Pass loc down to
1555         warn_array_subscript_with_type_char.
1558 Copyright (C) 2015 Free Software Foundation, Inc.
1560 Copying and distribution of this file, with or without modification,
1561 are permitted in any medium without royalty provided the copyright
1562 notice and this notice are preserved.