2015-01-15 Jason Merrill PR c++/63283 * constexpr.c (potential_constant_expression_1): Handle reference args in templates. 2015-01-15 Thomas Schwinge James Norris Cesar Philippidis Ilmir Usmanov Jakub Jelinek * parser.c: Include "gomp-constants.h". (cp_parser_omp_clause_map): Use enum gomp_map_kind instead of enum omp_clause_map_kind. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND. (cp_parser_omp_construct, cp_parser_pragma): Handle PRAGMA_OACC_CACHE, PRAGMA_OACC_DATA, PRAGMA_OACC_ENTER_DATA, PRAGMA_OACC_EXIT_DATA, PRAGMA_OACC_KERNELS, PRAGMA_OACC_PARALLEL, PRAGMA_OACC_LOOP, PRAGMA_OACC_UPDATE, PRAGMA_OACC_WAIT. (cp_parser_omp_clause_name): Handle "async", "copy", "copyout", "create", "delete", "deviceptr", "host", "num_gangs", "num_workers", "present", "present_or_copy", "pcopy", "present_or_copyin", "pcopyin", "present_or_copyout", "pcopyout", "present_or_create", "pcreate", "vector_length", "wait". (OACC_DATA_CLAUSE_MASK, OACC_ENTER_DATA_CLAUSE_MASK) (OACC_EXIT_DATA_CLAUSE_MASK, OACC_KERNELS_CLAUSE_MASK) (OACC_LOOP_CLAUSE_MASK, OACC_PARALLEL_CLAUSE_MASK) (OACC_UPDATE_CLAUSE_MASK, OACC_WAIT_CLAUSE_MASK): New macros. (cp_parser_omp_var_list_no_open): Handle OMP_CLAUSE__CACHE_. (cp_parser_oacc_data_clause, cp_parser_oacc_data_clause_deviceptr) (cp_parser_oacc_clause_vector_length, cp_parser_oacc_wait_list) (cp_parser_oacc_clause_wait, cp_parser_omp_clause_num_gangs) (cp_parser_omp_clause_num_workers, cp_parser_oacc_clause_async) (cp_parser_oacc_all_clauses, cp_parser_oacc_cache) (cp_parser_oacc_data, cp_parser_oacc_enter_exit_data) (cp_parser_oacc_kernels, cp_parser_oacc_loop) (cp_parser_oacc_parallel, cp_parser_oacc_update) (cp_parser_oacc_wait): New functions. * cp-tree.h (finish_oacc_data, finish_oacc_kernels) (finish_oacc_parallel): New prototypes. * semantics.c: Include "gomp-constants.h". (handle_omp_array_sections): Handle GOMP_MAP_FORCE_DEVICEPTR. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND. (finish_omp_clauses): Handle OMP_CLAUSE_ASYNC, OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_WAIT, OMP_CLAUSE__CACHE_. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. (finish_oacc_data, finish_oacc_kernels, finish_oacc_parallel): New functions. 2015-01-14 Paolo Carlini PR c++/58671 * decl2.c (var_defined_without_dynamic_init): Handle gracefully self-initialization. 2015-01-13 Jason Merrill PR c++/64356 PR libstdc++/58777 * constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT pointer expressions. (cxx_eval_increment_expression): Likewise. PR c++/64514 * pt.c (coerce_template_parameter_pack): Return NULL for a zero-length fixed parameter pack with a pack expansion arg. PR c++/64520 * pt.c (unify): Don't try to deduce to std::initializer_list. 2015-01-12 Jason Merrill PR c++/64547 * constexpr.c (cxx_eval_call_expression): A call to a void function doesn't need to return a value. 2015-01-09 Michael Collison * call.c: Include hash-set.h, machmode.h, vec.h, double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and inchash.h due to flattening of tree.h. * class.c: Ditto. * constexpr.c: Ditto. * cp-array-notation.c: Ditto. * cp-gimplify.c: Ditto. * cp-lang.c: Ditto. * cp-objcp-common.c: Ditto. * cvt.c: Ditto. * decl2.c: Ditto. * decl.c: Ditto. * dump.c: Ditto. * error.c: Ditto. * except.c: Ditto. * expr.c: Ditto. * friend.c: Ditto. * init.c: Ditto. * lambda.c: Ditto. * lex.c: Ditto. * mangle.c: Ditto. * name-lookup.c: Ditto. * optimize.c: Ditto. * parser.c: Ditto. * pt.c: Ditto. * ptree.c: Ditto. * repo.c: Ditto. * rtti.c: Ditto. * search.c: Ditto. * semantics.c: Ditto. * tree.c: Ditto. * typeck2.c: Ditto. * typeck.c: Ditto. 2015-01-08 Jason Merrill * cp-gimplify.c (cp_genericize): Use do_ubsan_in_current_function. * decl.c (compute_array_index_type): Likewise. * init.c (build_vec_init): Likewise. * typeck.c (cp_build_binary_op): Likewise. 2015-01-08 Jason Merrill * init.c (build_vec_init): Call ubsan_instrument_bounds to check whether an initializer-list is too big for a VLA. (throw_bad_array_length): Remove. * cp-tree.h: Remove prototype. 2015-01-08 Paolo Carlini PR c++/60753 * decl.c (grokfndecl): Add bool parameter. (grokdeclarator): Adjust calls. (start_decl): Don't set DECL_DELETED_FN here. 2015-01-06 Jason Merrill * parser.c (cp_parser_nested_name_specifier_opt): Diagnose invalid template-ids. PR c++/64455 * pt.c (type_dependent_expression_p): Handle variable templates. * constexpr.c (potential_constant_expression_1): Use it. PR c++/64487 * semantics.c (finish_offsetof): Handle templates here. * parser.c (cp_parser_builtin_offsetof): Not here. PR c++/64496 * semantics.c (process_outer_var_ref): Diagnose lambda in local class NSDMI. 2015-01-06 Ville Voutilainen PR c++/64489 * class.c (check_field_decls): Make copy assignment operators complex only in c++98 mode. 2015-01-05 Trevor Saunders PR c++/31397 * class.c (check_for_override): Warn when a virtual function is an override not marked override. 2015-01-05 Trevor Saunders * class.c (warn_hidden): Use auto_vec instead of tree_list to hold base_fndecls. (get_basefndecls): Adjust. 2015-01-05 Jakub Jelinek Update copyright years. 2015-01-05 Marek Polacek PR c/64423 * typeck.c (cp_build_array_ref): Pass loc down to warn_array_subscript_with_type_char. Copyright (C) 2015 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.