aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-01-14Implement P0482R5, char8_t: A type for UTF-8 characters and stringsTom Honermann74-142/+1132
gcc/cp/ * cvt.c (type_promotes_to): Handle char8_t promotion. * decl.c (grokdeclarator): Handle invalid type specifier combinations involving char8_t. * lex.c (init_reswords): Add char8_t as a reserved word. * mangle.c (write_builtin_type): Add name mangling for char8_t (Du). * parser.c (cp_keyword_starts_decl_specifier_p) (cp_parser_simple_type_specifier): Recognize char8_t as a simple type specifier. (cp_parser_string_literal): Use char8_array_type_node for the type of CPP_UTF8STRING. (cp_parser_set_decl_spec_type): Tolerate char8_t typedefs in system headers. * rtti.c (emit_support_tinfos): type_info support for char8_t. * tree.c (char_type_p): Recognize char8_t as a character type. * typeck.c (string_conv_p): Handle conversions of u8 string literals of char8_t type. (check_literal_operator_args): Handle UDLs with u8 string literals of char8_t type. * typeck2.c (ordinary_char_type_p): New. (digest_init_r): Disallow initializing a char array with a u8 string literal. gcc/c-family/ * c-common.c (c_common_reswords): Add char8_t. (fix_string_type): Use char8_t for the type of u8 string literals. (c_common_get_alias_set): char8_t doesn't alias. (c_common_nodes_and_builtins): Define char8_t as a builtin type in C++. (c_stddef_cpp_builtins): Add __CHAR8_TYPE__. (keyword_begins_type_specifier): Add RID_CHAR8. * c-common.h (rid): Add RID_CHAR8. (c_tree_index): Add CTI_CHAR8_TYPE and CTI_CHAR8_ARRAY_TYPE. Define D_CXX_CHAR8_T and D_CXX_CHAR8_T_FLAGS. Define char8_type_node and char8_array_type_node. * c-cppbuiltin.c (cpp_atomic_builtins): Predefine __GCC_ATOMIC_CHAR8_T_LOCK_FREE. (c_cpp_builtins): Predefine __cpp_char8_t. * c-lex.c (lex_string): Use char8_array_type_node as the type of CPP_UTF8STRING. (lex_charconst): Use char8_type_node as the type of CPP_UTF8CHAR. * c-opts.c: If not otherwise specified, enable -fchar8_t when targeting C++2a. * c.opt: Add the -fchar8_t command line option. libiberty/ * cp-demangle.c (cplus_demangle_builtin_types) (cplus_demangle_type): Add name demangling for char8_t (Du). * cp-demangle.h: Increase D_BUILTIN_TYPE_COUNT to accommodate the new char8_t type. From-SVN: r267923
2019-01-14PR target/88638 - FAIL: fsf-nsstring-format-1.s on darwinMartin Sebor12-32/+117
gcc/c-family/ChangeLog: PR target/88638 * c-attribs.c (positional_argument): Call valid_format_string_type_p and issue errors if it fails. * c-common.h (valid_format_string_type_p): Declare. * c-format.c (valid_stringptr_type_p): Rename... (valid_format_string_type_p): ...to this and make extern. (handle_format_arg_attribute): Adjust to new name. (check_format_string): Same. gcc/testsuite/ChangeLog: PR target/88638 * gcc.dg/format/attr-8.c: New test. * gcc.dg/darwin-cfstring-format-1.c: Adjust diagnostics. * gcc.dg/format/attr-3.c: Same. * obj-c++.dg/fsf-nsstring-format-1.mm: Same. * objc.dg/fsf-nsstring-format-1.m: Same. gcc/ChangeLog: PR target/88638 * doc/extend.texi (Darwin Format Checks): Clarify. From-SVN: r267922
2019-01-14Fix location of tls_wrapper_fn (PR gcov-profile/88263).Martin Liska4-1/+39
2019-01-14 Martin Liska <mliska@suse.cz> PR gcov-profile/88263 * decl2.c (get_tls_wrapper_fn): Use DECL_SOURCE_LOCATION as location of the TLS wrapper. 2019-01-14 Martin Liska <mliska@suse.cz> PR gcov-profile/88263 * g++.dg/gcov/pr88263-2.C: New test. From-SVN: r267921
2019-01-14invoke.texi (-Wmemset-transposed-args): Fix typos, adjust wording.Martin Sebor1-8/+9
gcc/ChangeLog: * invoke.texi (-Wmemset-transposed-args): Fix typos, adjust wording. From-SVN: r267920
2019-01-14genmatch.c (dt_simplify::gen_1): Change dumping dependent on whether we are ↵Richard Biener2-1/+8
in (simplify ...) or (match ...) context. 2019-01-14 Richard Biener <rguenther@suse.de> * genmatch.c (dt_simplify::gen_1): Change dumping dependent on whether we are in (simplify ...) or (match ...) context. From-SVN: r267917
2019-01-14re PR rtl-optimization/88796 (-fstack-protector* kills RTL DSE opportunities)Jakub Jelinek8-2/+56
PR rtl-optimization/88796 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field. * cfgexpand.c (stack_protect_prologue): Initialize crtl->stack_protect_guard_decl. * function.c (stack_protect_epilogue): Use it instead of calling targetm.stack_protect_guard again. * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from MEMs with MEM_EXPR equal to crtl->stack_protect_guard or crtl->stack_protect_guard_decl. * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE on the returned MEM_EXPR. * gcc.target/i386/pr88796.c: New test. From-SVN: r267916
2019-01-14Undo undesirable part of r267850 2019-01-11 commit.Jakub Jelinek1-1/+1
From-SVN: r267914
2019-01-14[D] Merge upstream dmd cd2034cd7Iain Buclaw39-877/+216
One fix in the asm statement parser to stop parsing if the end of the statement has been reached, and moves all inline asm tests to gdc.dg. These being adjusted where necessary to test the GCC style instead. gcc/testsuite/ChangeLog: 2019-01-14 Iain Buclaw <ibuclaw@gdcproject.org> * gdc.dg/asm1.d: New test. * gdc.dg/asm2.d: New test. * gdc.dg/asm3.d: New test. * gdc.dg/asm4.d: New test. * lib/gdc.exp (gdc_init): Set gcc_error_prefix and gcc_warning_prefix. From-SVN: r267913
2019-01-14re PR libfortran/88776 (Namelist read from stdin: loss of data)Jerry DeLisle4-4/+61
2019-01-13 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/88776 * io/open.c (newunit): Free format buffer if the unit specified is for stdin, stdout, or stderr. * gfortran.dg/namelist_96.f90: New test. From-SVN: r267910
2019-01-14Daily bump.GCC Administrator1-1/+1
From-SVN: r267909
2019-01-13re PR fortran/88803 (gfortran documentation warning: '.' or ',' must follow ↵Dominique d'Humieres2-2/+7
@xref) 2019-01-13 Dominique d'Humieres <dominiq@gcc.gnu.org> PR fortran/88803 * gfortran.texi: Replace @xref with @ref and adjust the sentence. From-SVN: r267906
2019-01-13re PR fortran/57992 (Pointless packing of contiguous arrays for simply ↵Thomas Koenig4-1/+29
contiguous functions results as actual arguments) 2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/57992 * trans-array.c (gfc_conv_array_parameter): Do not pack/unpack functions with contiguous results. 2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/59345 * gfortran.dg/internal_pack_18.f90: New test. From-SVN: r267905
2019-01-13C-family: Replace "may may" with "may" in warning messageH.J. Lu6-4/+15
gcc/c-family/ * c-warn.c (warn_for_address_or_pointer_of_packed_member): Replace "may may" with "may" in warning message. gcc/testsuite/ * gcc.dg/pr51628-20.c: Updated. * gcc.dg/pr51628-21.c: Likewise. * gcc.dg/pr51628-25.c: Likewise. From-SVN: r267904
2019-01-13re PR fortran/59345 (_gfortran_internal_pack on compiler generated temps)Thomas Koenig5-6/+55
2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/59345 * trans-array.c (gfc_conv_array_parameter): Remove TODO. Do not pack/unpack results of functions which return an explicit-shaped or allocatable array. 2019-01-13 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/59345 * gfortran.dg/internal_pack_17.f90: New test. * gfortran.dg/alloc_comp_auto_array_3.f90: Adjust number of calls to builtin_free. From-SVN: r267903
2019-01-13re PR fortran/61765 ([F03] Rejects valid BIND(C) ENTRY)Steven G. Kargl4-11/+41
2019-01-12 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/61765 * resolve.c (gfc_verify_binding_labels): Break if-elseif-elseif structure into independent if's with a return to simplify logic. Avoid a check for ENTRY name with bind(c). 2019-01-12 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/61765 * gfortran.dg/pr61765.f90: New test. From-SVN: r267902
2019-01-13Daily bump.GCC Administrator1-1/+1
From-SVN: r267901
2019-01-12re PR libfortran/88776 (Namelist read from stdin: loss of data)Jerry DeLisle2-5/+7
2019-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libfortran/88776 * io/list_read.c (namelist_read): Use nml_err_ret path on read error not based on stdin_unit. From-SVN: r267898
2019-01-12[nvptx] Enable setting vector length using -fopenacc-dim -- testcasesTom de Vries5-0/+219
Add some test-cases that set vector length using -fopenacc-dim. 2019-01-12 Tom de Vries <tdevries@suse.de> * testsuite/libgomp.oacc-c-c++-common/pr85486-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-5.c: New test. * testsuite/libgomp.oacc-fortran/gemm-2.f90: New test. From-SVN: r267897
2019-01-12[nvptx] Enable setting vector length using -fopenacc-dimTom de Vries4-2/+12
Enable setting vector length using -fopenacc-dim, f.i. -fopenacc-dim=::128. 2019-01-12 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting vector length using -fopenacc-dim. * plugin/plugin-nvptx.c (nvptx_exec): Update error message. From-SVN: r267896
2019-01-12[nvptx] Add vector_length 64 test-casesTom de Vries4-0/+61
Add some test-cases using vector_length 64. 2019-01-12 Tom de Vries <tdevries@suse.de> * testsuite/libgomp.oacc-c-c++-common/vector-length-64-1.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-64-2.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-64-3.c: New test. From-SVN: r267895
2019-01-12[nvptx] Force vl32 if calling vector-partitionable routines -- test-casesTom de Vries3-0/+111
Add test-cases for "[nvptx] Force vl32 if calling vector-partitionable routines". 2019-01-12 Tom de Vries <tdevries@suse.de> PR target/85486 * testsuite/libgomp.oacc-c-c++-common/pr85486-3.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr85486.c: New test. From-SVN: r267894
2019-01-12[nvptx] Don't emit barriers for empty loops -- test-casesTom de Vries3-0/+48
Add test-cases for PR85381. 2019-01-12 Tom de Vries <tdevries@suse.de> PR target/85381 * testsuite/libgomp.oacc-c-c++-common/pr85381-5.c: New test. * testsuite/libgomp.oacc-c-c++-common/pr85381.c: New test. From-SVN: r267893
2019-01-12[nvptx] Enable large vectors -- reduction testcasesTom de Vries4-0/+179
Add various reduction test-cases with vector length 128. 2019-01-12 Tom de Vries <tdevries@suse.de> * testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: New test. * testsuite/libgomp.oacc-fortran/gemm.f90: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-10.c: New test. From-SVN: r267892
2019-01-12[nvptx] Enable large vectors -- test-casesTom de Vries4-0/+127
Add various test-cases with vector length 128. 2019-01-12 Tom de Vries <tdevries@suse.de> * testsuite/libgomp.oacc-c-c++-common/vector-length-128-7.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-4.c: New test. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-6.c: New test. From-SVN: r267891
2019-01-12[nvptx] Update insufficient launch message for variable vector_lengthTom de Vries2-8/+15
Update message in nvptx libgomp plugin about insufficient resources to launch kernel, to accommodate for the fact the vector_length can now be variable. 2019-01-12 Tom de Vries <tdevries@suse.de> * plugin/plugin-nvptx.c (nvptx_exec): Update insufficient hardware resources diagnostic. From-SVN: r267890
2019-01-12[nvptx] Enable large vectorsTom de Vries5-6/+17
Allow vector_length clauses to accept values larger than warp size. Note that this does not enable setting vector_length to values larger than warp size using -fopenacc-dim. 2019-01-12 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector lengths into account. * testsuite/libgomp.oacc-c-c++-common/vector-length-128-1.c: Expect vector length to be 128. * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Expect vector length 2097152 to be reduced to 1024 instead of 32. From-SVN: r267889
2019-01-12decl.c (cp_finish_decl): Improve error location.Paolo Carlini1-5/+6
/cp 2019-01-12 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (cp_finish_decl): Improve error location. * decl2.c (grokfield): Likewise, improve two locations. /testsuite 2019-01-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/pr62101.C: Test locations too. * g++.dg/inherit/pure1.C: Likewise. From-SVN: r267888
2019-01-12decl.c (cp_finish_decl): Improve error location.Paolo Carlini5-6/+21
/cp 2019-01-12 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (cp_finish_decl): Improve error location. * decl2.c (grokfield): Likewise, improve two locations. /testsuite 2019-01-12 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp0x/pr62101.C: Test locations too. * g++.dg/inherit/pure1.C: Likewise. From-SVN: r267887
2019-01-12gnu.h (TARGET_THREAD_SSP_OFFSET): Define.Svante Signell2-6/+15
* config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define. (TARGET_CAN_SPLIT_STACK): Define. (TARGET_THREAD_SPLIT_STACK_OFFSET): Define. From-SVN: r267886
2019-01-12Document merge process for dmd, druntime and phobos.Iain Buclaw4-0/+45
gcc/d/ChangeLog: * README.gcc: New file. libphobos/ChangeLog: * README.gcc: New file. From-SVN: r267885
2019-01-12ISO_Fortran_binding_2.f90: Remove because of reports of ICEs.Paul Thomas3-309/+16
2019-01-12 Paul Thomas <pault@gcc.gnu.org> * gfortran.dg/ISO_Fortran_binding_2.f90 : Remove because of reports of ICEs. * gfortran.dg/ISO_Fortran_binding_2.c : Ditto. From-SVN: r267884
2019-01-12* params.def (inline-unit-growth): Set to 40.Jan Hubicka2-1/+5
From-SVN: r267883
2019-01-12tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.Jakub Jelinek4-2/+10
* tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo. * c-typeck.c (convert_for_assignment): Fix a comment typo. From-SVN: r267882
2019-01-12gfortran.texi: Add description in sections on TS 29113 and further ↵Paul Thomas19-117/+2161
interoperability with C. 2019-01-12 Paul Thomas <pault@gcc.gnu.org> * gfortran.texi : Add description in sections on TS 29113 and further interoperability with C. * trans-array.c (gfc_conv_descriptor_attribute): New function. (gfc_get_dataptr_offset): Remove static function attribute. * trans-array.h : Add prototypes for above functions. * trans-decl.c : Add declarations for the library functions cfi_desc_to_gfc_desc and gfc_desc_to_cfi_desc. * trans-expr.c (gfc_conv_gfc_desc_to_cfi_desc): New function. (gfc_conv_procedure_call): Call it for scalar and array actual arguments, when the formal arguments are bind_c with assumed shape or assumed rank. * trans.h : External declarations for gfor_fndecl_cfi_to_gfc and gfor_fndecl_gfc_to_cfi. 2019-01-12 Paul Thomas <pault@gcc.gnu.org> * gfortran.dg/ISO_Fortran_binding_1.f90 : New test. * gfortran.dg/ISO_Fortran_binding_1.c : Auxilliary file for test. * gfortran.dg/ISO_Fortran_binding_2.f90 : New test. * gfortran.dg/ISO_Fortran_binding_2.c : Auxilliary file for test. * gfortran.dg/bind_c_array_params_2.f90 : Change search string for dump tree scan. 2019-01-12 Paul Thomas <pault@gcc.gnu.org> * ISO_Fortran_binding.h : New file. * Makefile.am : Include ISO_Fortran_binding.c in the list of files to compile. * Makefile.in : Regenerated. * gfortran.map : Add _gfortran_cfi_desc_to_gfc_desc, _gfortran_gfc_desc_to_cfi_desc and the CFI API functions. * runtime/ISO_Fortran_binding.c : New file containing the new functions added to the map. From-SVN: r267881
2019-01-12[nvptx] Apply vector-partitionable routines workaround to default vlTom de Vries2-0/+8
Make "[nvptx] Force vl32 if calling vector-partitionable routines" work as well if vector length is set by modifying PTX_DEFAULT_VECTOR_LENGTH. 2019-01-12 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading region calling vector-partitionable routine, set default_vector_length to WARP_SIZE. From-SVN: r267879
2019-01-12[nvptx] Allow default vl to be overridden in nvptx_goacc_validate_dims_1Tom de Vries2-4/+18
In nvptx_goacc_validate_dims_1, allow oacc_default_dims[DIM_VECTOR] to be overridden, by assigning it to a new variable default_vector_length at the start, and using it at the end. 2019-01-12 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new variable default_vector_length. From-SVN: r267878
2019-01-12[nvptx] Verify dimension limits after applying defaultsTom de Vries2-0/+24
There's a problem in oacc_validate_dims that when f.i. the worker dimension is set using -fopenacc-dim=:32, and the vector_length is set using a "vector_length (128)" clause, the compiler combines, accepts and emits the values, while the combination of the two is invalid. The reason for this is that while oacc_validate_dims validates the dimensions using targetm.goacc.validate_dims before applying default or minimum values, it does not do so afterwards. Work around this in the nvptx port by applying the defaults from oacc_default_dims at the end of nvptx_goacc_validate_dims_1, as oacc_validate_dims would do it, and then apply the dimensions limits. 2019-01-12 Tom de Vries <tdevries@suse.de> PR middle-end/88703 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults from oacc_default_dims, as oacc_validate_dims would do it, and apply dimensions limits. From-SVN: r267877
2019-01-12[openacc] Add used parameter to TARGET_GOACC_VALIDATE_DIMSTom de Vries6-10/+23
Add a used parameter to TARGET_GOACC_VALIDATE_DIMS, allowing a target to make decisions in the hook implementation based on whether a dimension is used or not. 2019-01-12 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1) (nvptx_goacc_validate_dims): Add used parameter. * doc/tm.texi: Regenerate. * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add argument to call to targetm.goacc.validate_dims. (default_goacc_validate_dims): Add used parameter. * target.def (validate_dims): Add used parameter in DEFHOOK. * targhooks.h (default_goacc_validate_dims): Add used parameter. From-SVN: r267876
2019-01-12re PR libfortran/88807 (misleading indentation warnings building libgfortran)Jakub Jelinek29-590/+622
PR libfortran/88807 * m4/minloc0.m4: Reindent to avoid -Wmisleading-indentation warnings. * generated/minloc0_4_i1.c: Regenerated. * generated/minloc0_4_i2.c: Regenerated. * generated/minloc0_4_i4.c: Regenerated. * generated/minloc0_4_i8.c: Regenerated. * generated/minloc0_4_i16.c: Regenerated. * generated/minloc0_4_r4.c: Regenerated. * generated/minloc0_4_r8.c: Regenerated. * generated/minloc0_4_r10.c: Regenerated. * generated/minloc0_4_r16.c: Regenerated. * generated/minloc0_8_i1.c: Regenerated. * generated/minloc0_8_i2.c: Regenerated. * generated/minloc0_8_i4.c: Regenerated. * generated/minloc0_8_i8.c: Regenerated. * generated/minloc0_8_i16.c: Regenerated. * generated/minloc0_8_r4.c: Regenerated. * generated/minloc0_8_r8.c: Regenerated. * generated/minloc0_8_r10.c: Regenerated. * generated/minloc0_8_r16.c: Regenerated. * generated/minloc0_16_i1.c: Regenerated. * generated/minloc0_16_i2.c: Regenerated. * generated/minloc0_16_i4.c: Regenerated. * generated/minloc0_16_i8.c: Regenerated. * generated/minloc0_16_i16.c: Regenerated. * generated/minloc0_16_r4.c: Regenerated. * generated/minloc0_16_r8.c: Regenerated. * generated/minloc0_16_r10.c: Regenerated. * generated/minloc0_16_r16.c: Regenerated. From-SVN: r267875
2019-01-12Remove svn:executable property from a couple of text filesJakub Jelinek19-0/+0
which shouldn't be executable. From-SVN: r267873
2019-01-12Daily bump.GCC Administrator1-1/+1
From-SVN: r267872
2019-01-12PR libstdc++/88811 fix typo introduced in r266569Jonathan Wakely3-2/+103
PR libstdc++/88811 PR libstdc++/83306 * src/filesystem/path.cc: Fix typo. If first path is empty, show [] before second path. * testsuite/experimental/filesystem/filesystem_error/cons.cc: New test. From-SVN: r267868
2019-01-11Document C++20 library statusJonathan Wakely8-26/+1411
* doc/xml/manual/intro.xml: Include new section. * doc/xml/manual/status_cxx2017.xml: Document more implementation-defined properties of the library. * doc/xml/manual/status_cxx2020.xml: Document C++2a status. * doc/html/*: Regenerate. From-SVN: r267867
2019-01-11P0357R3 reference_wrapper for incomplete typesJonathan Wakely3-0/+53
This patch implements the C++2a proposal to allow incomplete types in std::reference_wrapper, which was previously undefined. The change cannot be implemented for earlier standards, because prior to C++2a std::reference_wrapper has a weak result type, so must inspect the template argument to see if it defines a nested result_type member. That is deprecated (but still required) in C++17, and removed from C++2a. The removal of the base class from reference_wrapper is a potential ABI change, as it could alter the layout of a type which derives from reference_wrapper<T> and from an empty type with _Weak_result_type<T> as a base class. Previously the repeated _Weak_result_type<T> base class would have prevented the empty base-class optimization, but if reference_wrapper<T> no longer derives from it, the empty class could be placed at the same address as the reference_wrapper<T> base. In practice, the only types which derive from _Weak_result_type or from _Reference_wrapper_base_memfun or any of its base classes are non-empty types defined in libstdc++: std::reference_wrapper, std::function, and std::_Bind. As they are non-empty types, they are not eligible for EBO anyway. * include/bits/refwrap.h [__cplusplus > 201703L] (_Refwrap_base_arg1, _Refwrap_base_arg2, _Reference_wrapper_base) (_Reference_wrapper_base_memfun): Do not define for C++2a. (reference_wrapper): Do not derive from _Reference_wrapper_base_memfun for C++2a. (reference_wrapper::operator()): Add static assertion. * testsuite/20_util/reference_wrapper/incomplete.cc: New test. From-SVN: r267866
2019-01-11P0972R0 <chrono> zero(), min(), and max() should be noexceptJonathan Wakely4-8/+99
This paper has been included in the C++20 draft, but the changes to add noexcept can be made unconditionally, to apply for C++11 too. * include/std/chrono (duration_values::zero(), duration_values::min()) (duration_values::max()): Add noexcept. (duration::zero(), duration::min(), duration::max()): Likewise. (time_point::zero(), time_point::min(), time_point::max()): Likewise. * testsuite/20_util/duration/requirements/noexcept.cc: New test. * testsuite/20_util/time_point/requirements/noexcept.cc: New test. From-SVN: r267865
2019-01-11re PR fortran/35031 (ELEMENTAL procedure with BIND(C))Steven G. Kargl4-3/+34
2019-01-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/35031 * decl.c (gfc_match_entry): Check for F2018:C1546. Fix nearby mis-indentation. 2019-01-11 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/35031 * gfortran.dg/pr35031.f90: new test. From-SVN: r267864
2019-01-11Fix location of __cpp_lib_erase_if macroJonathan Wakely2-1/+5
This macro should only be defined for C++2a, not C++17. * include/std/version (__cpp_lib_erase_if): Move to C++20 group. From-SVN: r267863
2019-01-11PR c++/88692, c++/87882 - -Wredundant-move false positive with *this.Marek Polacek5-2/+111
* typeck.c (maybe_warn_pessimizing_move): Return if ARG isn't ADDR_EXPR. * g++.dg/cpp0x/Wredundant-move5.C: New test. * g++.dg/cpp0x/Wredundant-move6.C: New test. From-SVN: r267862
2019-01-11compiler: pad structs ending with zero-sized fieldIan Lance Taylor4-11/+46
For a struct with zero-sized last field, the address of the field falls out of the object boundary, which confuses the garbage collector. Pad an extra byte in this case. Reviewed-on: https://go-review.googlesource.com/c/157557 From-SVN: r267861
2019-01-11PR c++/88312 - pack expansion of decltype.Jason Merrill3-0/+17
The standard doesn't really talk about an expression depending on the number of elements of a pack, but that's definitely an important form of template argument dependence. * pt.c (instantiation_dependent_r): A template non-type parameter pack is instantiation-dependent. From-SVN: r267860