Fix spurious semicolons
[official-gcc.git] / gcc / cp / ChangeLog
blob14279fe91fc5419f61f0e269a91187fea461f996
1 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
3         * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove spurious
4         trailing semicolon.
6 2015-04-29  Jason Merrill  <jason@redhat.com>
8         PR c++/50800
9         * tree.c (apply_identity_attributes): Fix handling of classes.
11 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
13         * parser.c (cp_parser_oacc_enter_exit_data): Use
14         OMP_STANDALONE_CLAUSES.
16 2015-04-29  Paolo Carlini  <paolo.carlini@oracle.com>
18         PR c++/64667
19         * init.c (perform_member_init): Handle references for -Winit-self.
21 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23         * pt.c (tsubst_expr) <OMP_TARGET_UPDATE>: Use
24         OMP_TARGET_UPDATE_CLAUSES instead of OMP_CLAUSES.
26 2015-04-28  Jason Merrill  <jason@redhat.com>
28         PR c++/65896
29         * constexpr.c (cxx_eval_store_expression): Don't try to actually
30         store an empty class.
32         PR c++/65656
33         * constexpr.c (cxx_eval_builtin_function_call): Fix
34         __builtin_constant_p.
36         PR c++/50800
37         * tree.c (strip_typedefs): Add remove_attributes parm.
38         (strip_typedefs_expr): Likewise.
39         (apply_identity_attributes): New subroutine of strip_typedefs.
40         * pt.c (canonicalize_type_argument): Let strip_typedefs handle attrs.
41         (convert_nontype_argument, unify): Likewise.
42         * cp-tree.h: Adjust.
44         PR c++/65734
45         * class.c (fixup_attribute_variants): Respect TYPE_USER_ALIGN.
47 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
49         * class.c (layout_class_type): Remove check if
50         PCC_BITFIELD_TYPE_MATTERS is defined.
52 2015-04-27  Jim Wilson  <jim.wilson@linaro.org>
54         * Make-lang.in (c++.mostlyclean): Remove xg++, g++-cross, and cc1plus.
56 2015-04-24  Jason Merrill  <jason@redhat.com>
58         PR c++/50800
59         * typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL.
61         * constexpr.c (potential_constant_expression_1) [MINUS_EXPR]:
62         Remove obsolete code.
63         [NE_EXPR]: Likewise.
65 2015-04-23  Jason Merrill  <jason@redhat.com>
67         PR c++/65646
68         * pt.c (check_explicit_specialization): Don't
69         SET_DECL_TEMPLATE_SPECIALIZATION for a variable with no template
70         headers.
71         * decl.c (grokvardecl): Revert earlier fix.
73 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
75         PR c++/65801
76         * typeck2.c (check_narrowing): In C++11 mode too, -Wno-narrowing
77         suppresses the diagnostic.
79 2015-04-20  Ville Voutilainen  <ville.voutilainen@gmail.com>
81         Reject trailing return type for an operator auto().
82         * decl.c (grokdeclarator): Reject trailing return types for
83         all conversion operators, don't handle conversion operators
84         in the previous checks that deal with auto.
86 2015-04-20  Ilya Verbin  <ilya.verbin@intel.com>
88         * parser.c (cp_parser_omp_target_update): Add missed %> to error_at ().
90 2015-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
92         * class.c (resolve_address_of_overloaded_function, instantiate_type):
93         Rename tsubst_flags_t parameter flags -> complain.
95 2015-04-16  Paolo Carlini  <paolo.carlini@oracle.com>
97         * call.c (build_op_delete_call, build_over_call): Check mark_used
98         return value.
99         * class.c (resolve_address_of_overloaded_function): Likewise.
100         * decl.c (cxx_maybe_build_cleanup): Likewise.
101         * pt.c (gen_elem_of_pack_expansion_instantiation, tsubst_baselink,
102         tsubst_qualified_id, tsubst_copy, tsubst_copy_and_build): Likewise.
103         * rtti.c (build_dynamic_cast_1): Likewise.
104         * semantics.c (process_outer_var_ref): Likewise.
105         * typeck.c (build_class_member_access_expr,
106         cp_build_function_call_vec, cp_build_addr_expr_1): Likewise.
108 2015-04-15  Jason Merrill  <jason@redhat.com>
110         * constexpr.c (cxx_eval_store_expression): Ignore clobbers.
111         (build_constexpr_constructor_member_initializers): Loop to find
112         the BIND_EXPR.
113         * decl.c (start_preparsed_function): Clobber the object at the
114         beginning of a constructor.
116         * decl.c (grokmethod): Only set DECL_COMDAT if TREE_PUBLIC is set.
117         * method.c (implicitly_declare_fn): Likewise.
118         * decl2.c (vague_linkage_p): Check TREE_PUBLIC first.
120         * decl2.c (determine_visibility): Use get_template_info.
122 2015-04-15  Jason Merrill  <jason@redhat.com>
123             Marek Polacek  <polacek@redhat.com>
125         PR c++/65727
126         * lambda.c (lambda_expr_this_capture): In unevaluated context go
127         through the normal loop, just don't capture.
128         (maybe_resolve_dummy): Handle null return.
130 2015-04-15  Paolo Carlini  <paolo.carlini@oracle.com>
132         * call.c (enforce_access): Emit error + inform.
134 2015-04-15  Marek Polacek  <polacek@redhat.com>
136         * constexpr.c (use_new_call): Remove #define.
137         (lookup_parameter_binding): Remove function.
138         (cxx_bind_parameters_in_call): Remove unused code.
139         (cxx_eval_call_expression): Likewise.
140         (cxx_eval_constant_expression): Likewise.
142 2015-04-14  Mikhail Maltsev  <maltsevm@gmail.com>
144         * tree.c (replace_placeholders_t): Remove unused type.
145         (replace_placeholders): Remove unused pset.
147 2015-04-14  Jason Merrill  <jason@redhat.com>
149         * pt.c (lookup_template_class_1): Use coerce_innermost_template_parms.
151         PR c++/65695
152         * cvt.c (cp_fold_convert): Avoid wrapping PTRMEM_CST in NOP_EXPR.
154         PR c++/65721
155         * name-lookup.c (do_class_using_decl): Complain about specifying
156         the current class even if there are dependent bases.
158 2015-04-14  David Krauss  <david_work@me.com>
160         PR c++/59766
161         * decl.c (grokdeclarator): Do not flag friends with deduced return.
163 2015-04-14  Momchil Velikov  <momchil.velikov@gmail.com>
164             Jason Merrill  <jason@redhat.com>
166         PR c++/60994
167         * parser.c (cp_parser_class_name): Add enum_ok parameter.
168         (cp_parser_qualifying_entity): Use it instead of cp_parser_type_name.
169         (cp_parser_diagnose_invalid_type_name): Don't assume a template is
170         a class template.
172 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
174         PR c++/65736
175         * constexpr.c (cxx_eval_pointer_plus_expression): Don't fold for VLAs,
176         don't fold if op01 isn't divisible by TYPE_SIZE_UNIT.  Convert
177         the expression to the original type at the end.
179 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
181         PR c++/65690
182         * tree.c (cp_build_qualified_type_real): Copy TYPE_ALIGN and
183         TYPE_USER_ALIGN.
185         PR c++/65690
186         * tree.c (build_cplus_array_type): Layout type before variants are
187         set, but copy over TYPE_SIZE and TYPE_SIZE_UNIT from the main
188         variant.
190 2015-04-03  Paolo Carlini  <paolo.carlini@oracle.com>
192         PR c++/64085
193         * lambda.c (add_capture): Use dependent_type_p for capture by
194         reference too.
196 2015-04-02  Marek Polacek  <polacek@redhat.com>
198         PR c++/65642
199         * constexpr.c (cxx_eval_pointer_plus_expression): Call
200         cxx_eval_constant_expression on the first operand.
202 2015-04-01  Jason Merrill  <jason@redhat.com>
204         PR c++/65625
205         * decl.c (make_typename_type): Handle seeing a variable template.
207 2015-04-01  Paolo Carlini  <paolo.carlini@oracle.com>
209         PR c++/56100
210         * pt.c (instantiating_current_function_p): New.
211         * name-lookup.c (pushdecl_maybe_friend_1): Use it.
212         * cp-tree.h (instantiating_current_function_p): Declare.
214 2015-04-01  Jason Merrill  <jason@redhat.com>
216         PR c++/65646
217         * decl.c (grokvardecl): Don't call check_explicit_specialization
218         for non-template members of a class template.
220 2015-04-01  Marek Polacek  <polacek@redhat.com>
222         PR c++/65554
223         * class.c (finish_struct): Require that the second field of a
224         user-defined initializer_list be of size type.
226 2015-03-31  Marek Polacek  <polacek@redhat.com>
228         PR c++/65390
229         * tree.c (build_cplus_array_type): Use dependent_type_p rather than
230         checking for constness.
232 2015-03-30  Marek Polacek  <polacek@redhat.com>
234         PR c++/65398
235         * constexpr.c (cxx_fold_indirect_ref): Don't perform the
236          *(&A[i] p+ j) => A[i + j] transformation here.
237         (cxx_eval_pointer_plus_expression): New function.
238         (cxx_eval_constant_expression): Use it here.
240 2015-03-27  Tobias Burnus  <burnus@net-b.de>
242         PR c/65586
243         * parser.c (cp_parser_omp_for, cp_parser_omp_parallel,
244         cp_parser_omp_distribute, cp_parser_omp_teams, cp_parser_omp_target,
245         cp_parser_omp_declare): Don't show error for skipped omp pragmas with
246         -fopenmp-simd.
248 2015-03-27  Marek Polacek  <polacek@redhat.com>
250         PR c++/65556
251         * semantics.c (finish_switch_cond): If the unlowered type is not an
252         enum, use the type of the condition.
254 2015-03-27  Jason Merrill  <jason@redhat.com>
256         PR c++/65509
257         * decl.c (make_rtl_for_nonlocal_decl): Don't defer static
258         constants.
260 2015-03-26  Mikhail Maltsev  <maltsevm@gmail.com>
262         PR c++/65154
263         * init.c (build_vec_init): Fix initializing aggregates
264         with empty init list.
266 2015-03-26  Jason Merrill  <jason@redhat.com>
268         PR c++/65525
269         * constexpr.c (potential_constant_expression_1): Handle MEM_REF.
271 2015-03-25  Marek Polacek  <polacek@redhat.com>
273         PR c++/65558
274         * name-lookup.c (handle_namespace_attrs): Ignore abi_tag attribute
275         on an anonymous namespace.
277 2015-03-25  Marek Polacek  <polacek@redhat.com>
279         PR c++/61670
280         * class.c (remove_zero_width_bit_fields): Check for null DECL_SIZE.
282 2015-03-24  Jason Merrill  <jason@redhat.com>
284         PR c++/65046
285         * cp-tree.h (NAMESPACE_IS_INLINE): Remove.
286         * parser.c (cp_parser_namespace_definition): Don't set it.
287         * name-lookup.c (handle_namespace_attrs): Check
288         DECL_NAMESPACE_ASSOCIATIONS instead.
290         PR c++/65498
291         * pt.c (get_mostly_instantiated_function_type): Just return the
292         type of the partially instantiated template in DECL_TI_TEMPLATE.
294 2015-03-20  Marek Polacek  <polacek@redhat.com>
296         PR c++/65398
297         * constexpr.c (cxx_fold_indirect_ref): Transform *(&A[i] p+ j) into
298         A[i + j].
300 2015-03-20  Marek Polacek  <polacek@redhat.com>
302         PR c++/65072
303         * typeck.c (lookup_anon_field): Make sure we're dealing with the main
304         variant.
306 2015-03-19  Jason Merrill  <jason@redhat.com>
308         PR c++/65046
309         Automatically propagate ABI tags to variables and functions
310         from their (return) type.
311         * class.c (check_tag): Handle variables and functions.
312         (mark_or_check_attr_tags): Split out from find_abi_tags_r.
313         (mark_or_check_tags): Likewise.
314         (mark_abi_tags): Use it.  Rename from mark_type_abi_tags.
315         (check_abi_tags): Add single argument overload for decls.
316         Handle inheriting tags for decls.
317         * mangle.c (write_mangled_name): Call it.
318         (mangle_return_type_p): Split out from write_encoding.
319         (unmangled_name_p): Split out from write_mangled_name.
320         (write_mangled_name): Ignore abi_tag on namespace.
321         * cp-tree.h (NAMESPACE_IS_INLINE): Replace NAMESPACE_ABI_TAG.
322         * parser.c (cp_parser_namespace_definition): Set it.
323         * name-lookup.c (handle_namespace_attrs): Use arguments. Warn
324         about abi_tag attribute on non-inline namespace.
325         * tree.c (check_abi_tag_args): Split out from handle_abi_tag_attribute.
326         (handle_abi_tag_attribute): Allow tags on variables.
328 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
330         * decl2.c (cplus_decl_attributes): Also add "omp declare target"
331         attribute for DECL_EXTERNAL VAR_DECLs.
333 2015-03-18  Paolo Carlini  <paolo.carlini@oracle.com>
335         PR c++/65340
336         * call.c (build_over_call): Pass the tsubst_flags_t argument to
337         mark_used.
338         * decl2.c (mark_used): Inline the require_deduced_type call and
339         guard the error call.
341 2015-03-16  Jason Merrill  <jason@redhat.com>
343         PR c++/65061
344         * parser.c (cp_parser_template_name): Call strip_using_decl.
346 2015-03-16  Marek Polacek  <polacek@redhat.com>
348         DR 1688
349         PR c++/65327
350         * decl.c (grokdeclarator): Allow volatile and constexpr together.
352 2015-03-12  Paolo Carlini  <paolo.carlini@oracle.com>
354         PR c++/65323
355         * decl.c (check_default_argument): Don't call
356         maybe_warn_zero_as_null_pointer_constant.
358 2015-03-11  Aldy Hernandez  <aldyh@redhat.com>
360         * cp-gimplify.c (simple_empty_class_p): New.
361         * cp-gimplify.c (cp_gimplify_expr): Handle RETURN_EXPR.  Abstract
362         the code for empty class copies into simple_empty_class_p, and
363         adapt it to handle COMPOUND_EXPRs.
365 2015-03-10  Paolo Carlini  <paolo.carlini@oracle.com>
367         PR c++/65370
368         * decl.c (duplicate_decls): Call check_redeclaration_no_default_args
369         only if the location of newdecl doesn't match the location of olddecl.
371 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
373         PR c++/65127
374         * parser.c (parsing_nsdmi): Don't return true if current_class_ptr
375         is not a PARM_DECL.
377 2015-03-10  Jason Merrill  <jason@redhat.com>
379         PR c++/65333
380         DR 1558
381         * pt.c (dependent_type_p_r): Check both class and alias template args.
383 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
385         PR c/65120
386         * parser.c (cp_parser_binary_expression): Check for tcc_comparison
387         before preparing arguments to warn_logical_not_parentheses.
388         Use maybe_constant_value on rhs.
390 2015-03-09  Jason Merrill  <jason@redhat.com>
392         PR c++/65339
393         * call.c: Don't call maybe_resolve_dummy when calling a constructor.
395 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
397         PR c/65120
398         * parser.c (cp_parser_binary_expression): Don't warn for
399         !!x == y or !b == y where b is bool.
401 2015-03-06  Aldy Hernandez  <aldyh@redhat.com>
403         * ptree.c (cxx_print_lambda_node): New.
404         (cxx_print_xnode): Handle LAMBDA_EXPR.
406 2015-03-03  Aldy Hernandez  <aldyh@redhat.com>
408         PR c++/65295
409         * constexpr.c (cxx_eval_constant_expression): Remove assert in
410         RESULT_DECL handling.
412 2015-02-26  Marek Polacek  <polacek@redhat.com>
414         PR c++/65202
415         * constexpr.c (cxx_eval_constant_expression): Don't evaluate
416         a RETURN_EXPR if its operand is null.
418 2015-02-25  Jason Merrill  <jason@redhat.com>
420         PR c++/65209
421         * decl2.c (constrain_visibility) [VISIBILITY_ANON]: Clear
422         DECL_COMDAT.
423         (constrain_visibility_for_template): Handle reference arguments.
425         PR debug/58315
426         * decl.c (start_preparsed_function): Use create_artificial_label
427         for cdtor_label.
429 2015-02-17  Paolo Carlini  <paolo.carlini@oracle.com>
430             Jakub Jelinek  <jakub@redhat.com>
432         PR c++/65075
433         * constexpr.c (check_constexpr_bind_expr_vars): Allow
434         implicit typedefs for lambda types.
436 2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
438         PR c++/60894
439         * decl.c (lookup_and_check_tag): Use strip_using_decl.
441 2015-02-13  Jason Merrill  <jason@redhat.com>
443         PR c++/65054
444         * pt.c (template_args_equal): Look through conversions here.
445         * tree.c (cp_tree_equal): Not here.
447 2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
449         PR c++/60211
450         * parser.c (cp_parser_pragma): Diagnose PRAGMA_IVDEP at
451         pragma_external context.
453 2015-02-13  Jason Merrill  <jason@redhat.com>
455         PR c++/65051
456         * call.c (reference_binding): Don't look for bad conversion
457         if TO is incomplete.
459 2015-02-13  Paolo Carlini  <paolo.carlini@oracle.com>
461         PR c++/64970
462         * decl.c (make_typename_type): Pass tsubst_flags_t argument
463         to lookup_template_class.
465 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
467         PR ipa/65034
468         * decl.c (start_preparsed_function): Use void_type_node instead
469         of NULL_TREE as LABEL_DECL type.
471 2015-02-12  Jason Merrill  <jason@redhat.com>
473         PR c++/64898
474         * mangle.c (write_mangled_name): Fix test for variable template
475         instantiation.
477         * decl.c (begin_destructor_body): Condition clobber on
478         -flifetime-dse.
480 2015-02-12 Andrea Azzarone <azzaronea@gmail.com>
482         PR c++/64959
483         * parser.c (lookup_literal_operator): Return all candidates.
484         (cp_parser_userdef_char_literal): Simplify error handling.
485         (cp_parser_userdef_numeric_literal):  Pass tf_warning_or_error.
486         (cp_parser_userdef_string_literal): Pass tf_warning_or_error.
487         Also give higher priority to standard string UDL operator.
489 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
491         PR debug/55541
492         * cp-tree.h (BLOCK_OUTER_CURLY_BRACE_P): Define.
493         * decl.c (poplevel): If functionbody, try not to create an extra
494         BLOCK for function body and use subblocks as that, if it is non-NULL
495         and doesn't have siblings.  Set BLOCK_OUTER_CURLY_BRACE_P flag.
496         (outer_curly_brace_block): Use BLOCK_OUTER_CURLY_BRACE_P flag.
498         PR sanitizer/64984
499         * except.c (check_noexcept_r): Return NULL for internal
500         calls.
502 2015-02-10  Jason Merrill  <jason@redhat.com>
504         PR c++/64994
505         * constexpr.c (cxx_eval_call_expression): Walk the clone list.
507 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
509         PR ipa/64982
510         * method.c (use_thunk): Do not check for stdarg thunks.
512 2015-02-06  Jason Merrill  <jason@redhat.com>
514         PR c++/64899
515         * init.c (build_vec_init): Handle default-initialized array with
516         constexpr default constructor.
518 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
520         PR c/64824
521         PR c/64868
522         * parser.c (cp_parser_omp_atomic): Handle RDIV_EXPR.
524 2015-02-03  Paolo Carlini  <paolo.carlini@oracle.com>
526         PR c++/64877
527         * typeck.c (cp_build_binary_op): Avoid spurious -Waddress warnings
528         for generated expressions.
530 2015-02-02  Ville Voutilainen  <ville.voutilainen@gmail.com>
532         PR c++/64901
533         * decl.c (duplicate_decls): Also duplicate DECL_FINAL_P and
534         DECL_OVERRIDE_P.
536 2015-02-02  Jason Merrill  <jason@redhat.com>
538         * tree.c (handle_abi_tag_attribute): Diagnose invalid arguments.
540 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
542         * class.c, except.c, parser.c, pt.c: All callers of fatal_error
543         changed to pass input_location as first argument.
545 2015-01-29  Jakub Jelinek  <jakub@redhat.com>
547         PR c++/64717
548         * cp-ubsan.c (cp_ubsan_instrument_vptr): Don't wrap vptr
549         into SAVE_EXPR.
551 2015-01-29  Jason Merrill  <jason@redhat.com>
553         PR c++/49508
554         * semantics.c (finish_return_stmt): Suppress -Wreturn-type on
555         erroneous return statement.
557         PR c++/64521
558         * repo.c (repo_emit_p): It's OK for a clone to be extern at this
559         point.
561 2015-01-27  Caroline Tice  <cmtice@google.com>
563         Committing VTV Cywin/Ming patch for Patrick Wollgast
564         * vtable-class-hierarchy.cc (vtv_generate_init_routine): Add
565         check for not TARGET_PECOFF at the VTV_PREINIT_PRIORITY checks.
567 2015-01-27  Jason Merrill  <jason@redhat.com>
569         PR c++/58597
570         * lambda.c (maybe_add_lambda_conv_op): Check cfun rather than
571         current_function_decl.
573         PR c++/63889
574         * pt.c (finish_template_variable): Move from semantics.c.
575         Handle multiple template arg levels.  Handle coercion here.
576         (lookup_template_variable): Not here.
578 2015-01-23  Jason Merrill  <jason@redhat.com>
580         PR c++/64314
581         PR c++/57510
582         * typeck2.c (split_nonconstant_init_1): Remove a sub-CONSTRUCTOR
583         that has been completely split out.
585         PR c++/64701
586         * constexpr.c (cxx_eval_constant_expression): Don't crash on C++
587         statement codes.
589         PR c++/64727
590         * constexpr.c (cxx_eval_constant_expression): Allow for lvalue use
591         of CONST_DECL.
593 2015-01-21  Jason Merrill  <jason@redhat.com>
595         PR c++/64603
596         * constexpr.c (cxx_eval_constant_expression): Only shortcut
597         constant CONSTRUCTORs.
599         PR c++/64647
600         * constexpr.c (ensure_literal_type_for_constexpr_object): Don't
601         give a hard error in a template instantiation.
603 2015-01-21  Richard Biener  <rguenther@suse.de>
605         PR middle-end/64313
606         * decl.c (duplicate_decls): Call set_builtin_decl_declared_p
607         for builtins the user declared correctly.
609 2015-01-16  Paolo Carlini  <paolo.carlini@oracle.com>
611         PR c++/58614
612         * pt.c (unify): When BRACE_ENCLOSED_INITIALIZER_P (arg), handle
613         TREE_TYPE (elt) == error_mark_node.
615 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
617         PR tree-optimization/62053
618         * tree.c (build_cplus_array_type): Layout type after variants are set.
620 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
622         * cp-gimplify.c (cp_genericize_r): Call
623         cp_ubsan_maybe_instrument_member_call for member calls.
624         (cp_ubsan_check_member_access_r): New function.
625         (cp_genericize_tree): Call cp_ubsan_instrument_member_accesses.
626         * cp-tree.h (cp_ubsan_maybe_instrument_member_call,
627         cp_ubsan_instrument_member_accesses,
628         cp_ubsan_maybe_instrument_downcast,
629         cp_ubsan_maybe_instrument_cast_to_vbase): New prototypes.
630         * cp-ubsan.c: New file.
631         * Make-lang.in (CXX_AND_OBJCXX_OBJS): Add cp/cp-ubsan.o.
632         * constexpr.c (cxx_eval_call_expression): Return void_node
633         for IFN_UBSAN_VPTR.
634         (potential_constant_expression_1): Return true for
635         UBSAN_NULL, UBSAN_BOUNDS and UBSAN_VPTR internal calls.
636         * typeck.c (build_class_member_access_expr): Provide locus
637         for COMPONENT_REFs.
638         (build_static_cast_1): Instrument downcasts.
639         * class.c (build_base_path): For -fsanitize=vptr and !fixed_type_p
640         add ubsan instrumentation for virtual_access.
641         * call.c: Include internal-fn.h.
642         (set_flags_from_callee): Handle internal calls.
644 2015-01-15  Momchil Velikov  <momchil.velikov@gmail.com>
646         PR c++/59366
647         * name-lookup.c (pushdecl_maybe_friend_1): Hide friend functions
648         and function templates, declared only in the class.
649         * decl.c (duplicate_decls): Reveal hidden friend functions or
650         function templates, if they are redeclared outside the class.
652 2015-01-15  Jason Merrill  <jason@redhat.com>
654         PR c++/64356
655         * constexpr.c (cxx_eval_binary_expression): Fix pasto.
657         PR c++/63283
658         * constexpr.c (potential_constant_expression_1): Handle reference
659         args in templates.
661 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
662             James Norris  <jnorris@codesourcery.com>
663             Cesar Philippidis  <cesar@codesourcery.com>
664             Ilmir Usmanov  <i.usmanov@samsung.com>
665             Jakub Jelinek  <jakub@redhat.com>
667         * parser.c: Include "gomp-constants.h".
668         (cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum
669         omp_clause_map_kind.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
670         Use OMP_CLAUSE_SET_MAP_KIND.
671         (cp_parser_omp_construct, cp_parser_pragma): Handle
672         PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA,
673         PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL,
674         PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT.
675         (cp_parser_omp_clause_name): Handle "async", "copy", "copyout",
676         "create", "delete", "deviceptr", "host", "num_gangs",
677         "num_workers", "present", "present_or_copy", "pcopy",
678         "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout",
679         "present_or_create", "pcreate", "vector_length", "wait".
680         (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK)
681         (OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK)
682         (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK)
683         (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros.
684         (cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_.
685         (cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr)
686         (cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list)
687         (cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs)
688         (cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async)
689         (cp_parser_oacc_all_clauses, cp_parser_oacc_cache)
690         (cp_parser_oacc_data, cp_parser_oacc_enter_exit_data)
691         (cp_parser_oacc_kernels, cp_parser_oacc_loop)
692         (cp_parser_oacc_parallel, cp_parser_oacc_update)
693         (cp_parser_oacc_wait): New functions.
694         * cp-tree.h (finish_oacc_data, finish_oacc_kernels)
695         (finish_oacc_parallel): New prototypes.
696         * semantics.c: Include "gomp-constants.h".
697         (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR.  Use
698         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
699         OMP_CLAUSE_SET_MAP_KIND.
700         (finish_omp_clauses): Handle OMP_CLAUSE_ASYNC,
701         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_.
702         Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.
703         (finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New
704         functions.
706 2015-01-14  Paolo Carlini  <paolo.carlini@oracle.com>
708         PR c++/58671
709         * decl2.c (var_defined_without_dynamic_init): Handle gracefully
710         self-initialization.
712 2015-01-13  Jason Merrill  <jason@redhat.com>
714         PR c++/64356
715         PR libstdc++/58777
716         * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
717         pointer expressions.
718         (cxx_eval_increment_expression): Likewise.
720         PR c++/64514
721         * pt.c (coerce_template_parameter_pack): Return NULL for a
722         zero-length fixed parameter pack with a pack expansion arg.
724         PR c++/64520
725         * pt.c (unify): Don't try to deduce to std::initializer_list<T...>.
727 2015-01-12  Jason Merrill  <jason@redhat.com>
729         PR c++/64547
730         * constexpr.c (cxx_eval_call_expression): A call to a void
731         function doesn't need to return a value.
733 2015-01-09  Michael Collison  <michael.collison@linaro.org>
735         * call.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
736         input.h, alias.h, symtab.h, options.h, fold-const.h,
737         wide-int.h, and inchash.h due to flattening of tree.h.
738         * class.c: Ditto.
739         * constexpr.c: Ditto.
740         * cp-array-notation.c: Ditto.
741         * cp-gimplify.c: Ditto.
742         * cp-lang.c: Ditto.
743         * cp-objcp-common.c: Ditto.
744         * cvt.c: Ditto.
745         * decl2.c: Ditto.
746         * decl.c: Ditto.
747         * dump.c: Ditto.
748         * error.c: Ditto.
749         * except.c: Ditto.
750         * expr.c: Ditto.
751         * friend.c: Ditto.
752         * init.c: Ditto.
753         * lambda.c: Ditto.
754         * lex.c: Ditto.
755         * mangle.c: Ditto.
756         * name-lookup.c: Ditto.
757         * optimize.c: Ditto.
758         * parser.c: Ditto.
759         * pt.c: Ditto.
760         * ptree.c: Ditto.
761         * repo.c: Ditto.
762         * rtti.c: Ditto.
763         * search.c: Ditto.
764         * semantics.c: Ditto.
765         * tree.c: Ditto.
766         * typeck2.c: Ditto.
767         * typeck.c: Ditto.
769 2015-01-08  Jason Merrill  <jason@redhat.com>
771         * cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function.
772         * decl.c (compute_array_index_type): Likewise.
773         * init.c (build_vec_init): Likewise.
774         * typeck.c (cp_build_binary_op): Likewise.
776 2015-01-08  Jason Merrill  <jason@redhat.com>
778         * init.c (build_vec_init): Call ubsan_instrument_bounds to check
779         whether an initializer-list is too big for a VLA.
780         (throw_bad_array_length): Remove.
781         * cp-tree.h: Remove prototype.
783 2015-01-08  Paolo Carlini  <paolo.carlini@oracle.com>
785         PR c++/60753
786         * decl.c (grokfndecl): Add bool parameter.
787         (grokdeclarator): Adjust calls.
788         (start_decl): Don't set DECL_DELETED_FN here.
790 2015-01-06  Jason Merrill  <jason@redhat.com>
792         * parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid
793         template-ids.
795         PR c++/64455
796         * pt.c (type_dependent_expression_p): Handle variable templates.
797         * constexpr.c (potential_constant_expression_1): Use it.
799         PR c++/64487
800         * semantics.c (finish_offsetof): Handle templates here.
801         * parser.c (cp_parser_builtin_offsetof): Not here.
803         PR c++/64496
804         * semantics.c (process_outer_var_ref): Diagnose lambda in local
805         class NSDMI.
807 2015-01-06  Ville Voutilainen  <ville.voutilainen@gmail.com>
809         PR c++/64489
810         * class.c (check_field_decls): Make copy assignment operators
811         complex only in c++98 mode.
813 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
815         PR c++/31397
816         * class.c (check_for_override): Warn when a virtual function is an
817         override not marked override.
819 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
821         * class.c (warn_hidden): Use auto_vec<tree> instead of tree_list to
822         hold base_fndecls.
823         (get_basefndecls): Adjust.
825 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
827         Update copyright years.
829 2015-01-05  Marek Polacek  <polacek@redhat.com>
831         PR c/64423
832         * typeck.c (cp_build_array_ref): Pass loc down to
833         warn_array_subscript_with_type_char.
836 Copyright (C) 2015 Free Software Foundation, Inc.
838 Copying and distribution of this file, with or without modification,
839 are permitted in any medium without royalty provided the copyright
840 notice and this notice are preserved.