This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/80178] Class with deleted copy and move constructors uses wrong argument passing ABI
- From: "jason at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 08 May 2017 19:08:39 +0000
- Subject: [Bug c++/80178] Class with deleted copy and move constructors uses wrong argument passing ABI
- Auto-submitted: auto-generated
- References: <bug-80178-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80178
--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Mon May 8 19:08:07 2017
New Revision: 247757
URL: https://gcc.gnu.org/viewcvs?rev=247757&root=gcc&view=rev
Log:
PR c++/80178 - parameter passing for uncopyable classes
* tree.c (type_has_nontrivial_copy_init): True for classes with only
deleted copy/move ctors.
(remember_deleted_copy, maybe_warn_parm_abi): New.
* decl.c (require_complete_types_for_parms, check_function_type):
Call maybe_warn_parm_abi.
* call.c (convert_for_arg_passing, build_cxx_call): Likewise.
Added:
trunk/gcc/testsuite/g++.dg/abi/invisiref1.C
trunk/gcc/testsuite/g++.dg/abi/invisiref1a.C
Modified:
trunk/gcc/common.opt
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/tree.c