From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7197 invoked by alias); 24 Nov 2004 16:53:34 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 7173 invoked by uid 48); 24 Nov 2004 16:53:24 -0000 Date: Wed, 24 Nov 2004 16:53:00 -0000 Message-ID: <20041124165324.7172.qmail@sourceware.org> From: "janis187 at us dot ibm dot com" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20041123164757.18631.janis187@us.ibm.com> References: <20041123164757.18631.janis187@us.ibm.com> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug target/18631] [4.0 Regression] missing error messages passing vectors with -mno-altivec -mabi=altivec X-Bugzilla-Reason: CC X-SW-Source: 2004-11/txt/msg02888.txt.bz2 List-Id: ------- Additional Comments From janis187 at us dot ibm dot com 2004-11-24 16:53 ------- Oops, in the submission I said "There used to be error messages for passing vectors by value or returning vectors from functions if AltiVec support was on but the non-AltiVec ABI was used." That should be: There used to be error messages ... if AltiVec support was not on and the AltiVec ABI was used. The AltiVec ABI says that vectors that map to hardware vectors are passed in vector registers. That variant of the ABI is the default but can be turned off with -mabi=no-altivec, which is useful for binary compatibility with modules that will be used on multiple types of PowerPC-64 hardware. The ABI doesn't cover generic vectors that don't map to hardware vectors, but GCC passes them by reference for either variant of the ABI. It probably doesn't specifically cover the case of generic vectors that map to hardware vectors when AltiVec support isn't enabled, but that seems surprising enough that it ought to continue to be an error. I personally think it ought to be an error to pass any synthetic vector by value unless it is specifically covered by the ABI, but that's another mess that no one wants to touch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18631