From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32421 invoked by alias); 12 Dec 2002 02:27:30 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 32411 invoked from network); 12 Dec 2002 02:27:29 -0000 Received: from unknown (HELO vlsi1.ultra.nyu.edu) (128.122.140.213) by sources.redhat.com with SMTP; 12 Dec 2002 02:27:29 -0000 Received: by vlsi1.ultra.nyu.edu (4.1/1.34) id AA08579; Wed, 11 Dec 02 21:29:16 EST Date: Wed, 11 Dec 2002 19:18:00 -0000 From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner) Message-Id: <10212120229.AA08579@vlsi1.ultra.nyu.edu> To: rth@redhat.com Subject: Re: Function clobber_return_register Cc: gcc@gcc.gnu.org X-SW-Source: 2002-12/txt/msg00613.txt.bz2 /* Before the return label (if any), clobber the return registers so that they are not propagated live to the rest of the function. This can only happen with functions that drop through; if there had been a return statement, there would have either been a return rtx, or a jump to the return label. But there *was* a jump to the return label and the clobbering was still done, so I'm confused. What we had was a CLOBBER, the return label, and a USE. Then something (so far undetermined) removed the return label and redirected the return jump, so that there was a CLOBBER immediately followed by the USE. I think you are saying that what's wrong is likely whatever did that redirection, however, most things after reload (where we are here) ignore standalone USE and CLOBBERs. Since this works for C++, I can only guess that the Ada front end isn't generating either returns or cleanups the way the back end is expecting. Well, it actually works fine in most Ada cases and indeed even in this case until a fix was made to prevent uses of SP from being scheduled after an assignment to the SP by adding a (clobber (mem:BLK SP)) when restoring the stack. So there's something very peculiar about the precise RTL here.