From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10059 invoked by alias); 17 Jan 2010 19:47:53 -0000 Received: (qmail 10016 invoked by uid 48); 17 Jan 2010 19:47:35 -0000 Date: Sun, 17 Jan 2010 19:47:00 -0000 Message-ID: <20100117194735.10015.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug target/42774] [4.4/4.5 Regression] ICE in get_aligned_mem, at config/alpha/alpha.c:1484 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ubizjak at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-01/txt/msg02089.txt.bz2 ------- Comment #3 from ubizjak at gmail dot com 2010-01-17 19:47 ------- Well, gcc would just generate invalid code without this assert. Reduced test: --cut here-- typedef unsigned short int uint16_t; typedef unsigned int uint32_t; typedef unsigned long int uint64_t; typedef uint16_t u16; typedef uint32_t u32; typedef uint64_t u64; enum { FSYSHEADKEY_NULL = 0, FSYSHEADKEY_FILESYSTEM, FSYSHEADKEY_MNTPATH, FSYSHEADKEY_BYTESTOTAL, FSYSHEADKEY_MINFSAVERSION, FSYSHEADKEY_MOUNTINFO, FSYSHEADKEY_ORIGDEV, FSYSHEADKEY_FSEXTEOPTRAIDSTRIDE }; typedef struct s_dico { } cdico; struct s_ntfsinfo { u32 bytes_per_sector; u64 uuid; }; enum { MSG_FORCE = 0, MSG_VERB1 = 1, MSG_VERB2 = 2, MSG_STACK = 3, MSG_DEBUG1 = 4, MSG_DEBUG2 = 5, MSG_DEBUG3 = 6, MSG_DEBUG4 = 7, MSG_DEBUG5 = 8 }; ntfs_getinfo (cdico * d, char *devname) { struct s_ntfsinfo info; char bootsect[512]; int fd = -1; info.bytes_per_sector = ((u16) (*((u16 *) (bootsect + 0xB)))); foo (info.bytes_per_sector); info.uuid = ((u64) (*((u64 *) (bootsect + 0x48)))); fsaprintf (MSG_VERB2, 0, MSG_VERB2 >= 3, "fs_ntfs.c", __FUNCTION__, 107, "bytes_per_sector=[%lld]\n", (long long) info.bytes_per_sector); fsaprintf (MSG_VERB2, 0, MSG_VERB2 >= 3, "fs_ntfs.c", __FUNCTION__, 109, "uuid=[%016llX]\n", (long long unsigned int) info.uuid); dico_add_u64 (d, 0, FSYSHEADKEY_MINFSAVERSION, ((u64) ((((u64) 0 & 0xFFFF) << 48) + (((u64) 6 & 0xFFFF) << 32) + (((u64) 4 & 0xFFFF) << 16) + (((u64) 0 & 0xFFFF) << 0)))); } --cut here-- Problematic line is bootsect + 0xB that crosses SImode aligned load. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42774