From patchwork Tue Nov 16 19:46:01 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Schwab X-Patchwork-Id: 71447 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id C47EDB713B for ; Wed, 17 Nov 2010 06:46:17 +1100 (EST) Received: (qmail 10114 invoked by alias); 16 Nov 2010 19:46:12 -0000 Received: (qmail 10105 invoked by uid 22791); 16 Nov 2010 19:46:11 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mail-out.m-online.net (HELO mail-out.m-online.net) (212.18.0.9) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 16 Nov 2010 19:46:05 +0000 Received: from frontend1.mail.m-online.net (unknown [192.168.8.180]) by mail-out.m-online.net (Postfix) with ESMTP id 8ABB11C08DE0 for ; Tue, 16 Nov 2010 20:46:02 +0100 (CET) Received: from igel.home (ppp-88-217-112-223.dynamic.mnet-online.de [88.217.112.223]) by mail.mnet-online.de (Postfix) with ESMTP id 668681C0034D for ; Tue, 16 Nov 2010 20:46:02 +0100 (CET) Received: by igel.home (Postfix, from userid 501) id 04BD5CA2A0; Tue, 16 Nov 2010 20:46:01 +0100 (CET) From: Andreas Schwab To: gcc-patches@gcc.gnu.org Subject: Fix ICE in m68k_delegitimize_address X-Yow: .. hubub, hubub, HUBUB, hubub, hubub, hubub, HUBUB, hubub, hubub, hubub. Date: Tue, 16 Nov 2010 20:46:01 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2.90 (gnu/linux) MIME-Version: 1.0 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org The operand of the RELOC{16,32} UNSPEC can also contain a LABEL_REF. Andreas. 2010-11-16 Andreas Schwab * config/m68k/m68k.c (m68k_delegitimize_address): Also expect LABEL_REF in UNSPEC operand. Index: gcc/config/m68k/m68k.c =================================================================== --- gcc/config/m68k/m68k.c (revision 166814) +++ gcc/config/m68k/m68k.c (working copy) @@ -4684,7 +4684,7 @@ m68k_delegitimize_address (rtx orig_x) && XINT (unspec, 1) != UNSPEC_RELOC32)) return orig_x; x = XVECEXP (unspec, 0, 0); - gcc_assert (GET_CODE (x) == SYMBOL_REF); + gcc_assert (GET_CODE (x) == SYMBOL_REF || GET_CODE (x) == LABEL_REF); if (unspec != XEXP (addr.offset, 0)) x = gen_rtx_PLUS (Pmode, x, XEXP (XEXP (addr.offset, 0), 1)); if (addr.index)