From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4131 invoked by alias); 14 Nov 2002 21:46:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 4111 invoked by uid 71); 14 Nov 2002 21:46:03 -0000 Date: Thu, 21 Nov 2002 03:08:00 -0000 Message-ID: <20021114214603.4110.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Wolfgang Bangerth Subject: Re: c++/2182: -fpic flag gives: ICE instantiate_virtual_regs_1, at function.c:3897 Reply-To: Wolfgang Bangerth X-SW-Source: 2002-11/txt/msg00736.txt.bz2 List-Id: The following reply was made to PR c++/2182; it has been noted by GNATS. From: Wolfgang Bangerth To: gcc-gnats@gcc.gnu.org Cc: Subject: Re: c++/2182: -fpic flag gives: ICE instantiate_virtual_regs_1, at function.c:3897 Date: Thu, 14 Nov 2002 15:48:10 -0600 (CST) Here are 4 variations that generate various internal errors. Please don't ask me whether they make sense, I just tried to trim this down to a minimum and discovered that one can trigger more than one ICE. Some can be reproduced with a plain C compiler, at least one needs the C++ compiler. --------------1-------------------- void foo(unsigned char * destination, const unsigned char * Y, const unsigned char * Cb, const unsigned char * Cr, int width, int height, int stride) { static const unsigned short delta[] = {1}; static const short scale[] = {1}; asm volatile( "emms\n" : : "r" (destination), "r" (Cb), "r" (Cr), "r" (stride), "m" (delta) ); -----------------2-------------------- void foo(unsigned char * destination, const unsigned char * Y, const unsigned char * Cb, const unsigned char * Cr, int width, int height, int stride) { static const unsigned short delta[] = {1}; static const short scale[] = {1}; asm volatile( "emms\n" : : "r" (destination), "r" (Cb), "r" (Cr), "r" (stride), "m" (delta), "m" (scale) ); } -------------3-------------------------- void foo(unsigned char * destination, const unsigned char * Y, const unsigned char * Cb, const unsigned char * Cr, int width, int height, int stride) { static const unsigned short delta[] = {1}; static const short scale[] = {1}; asm volatile( "emms\n" : : "r" (destination), "r" (Cb), "r" (Cr), "r" (stride), "m" (delta), "m" (scale), "m" (width) ); } ------------4-------------------------- void foo(unsigned char * destination, const unsigned char * Y, const unsigned char * Cb, const unsigned char * Cr, int width, int height, int stride) { static const unsigned short delta[]; static const short scale[]; asm volatile( "emms\n" : : "r" (destination), "r" (Cb), "r" (Cr), "r" (stride), "m" (delta), "m" (scale), "m" (width) ); } ------------------------------------------------------------------------- Wolfgang Bangerth email: bangerth@ticam.utexas.edu www: http://www.ticam.utexas.edu/~bangerth