From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31664 invoked by alias); 22 Jul 2003 22:59:42 -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 31657 invoked by uid 48); 22 Jul 2003 22:59:42 -0000 Date: Tue, 22 Jul 2003 22:59:00 -0000 Message-ID: <20030722225942.31656.qmail@sources.redhat.com> From: "pinskia at physics dot uc dot edu" To: gcc-bugs@gcc.gnu.org In-Reply-To: <20030722211610.11635.debian-gcc@lists.debian.org> References: <20030722211610.11635.debian-gcc@lists.debian.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug optimization/11635] [3.3/3.4 regression] Unnecessary store onto stack X-Bugzilla-Reason: CC X-SW-Source: 2003-07/txt/msg02656.txt.bz2 List-Id: PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11635 ------- Additional Comments From pinskia at physics dot uc dot edu 2003-07-22 22:59 ------- I forgot to attach the reduced sources: typedef unsigned int __uint32_t; typedef unsigned int __socklen_t; typedef __socklen_t socklen_t; typedef unsigned short int sa_family_t; struct sockaddr { sa_family_t sa_family; char sa_data[14]; }; struct sockaddr_storage { sa_family_t ss_family; __uint32_t __ss_align; char __ss_padding[(128 - (2 * sizeof (__uint32_t)))]; }; typedef union { struct sockaddr *__restrict __sockaddr__; struct sockaddr_at *__restrict __sockaddr_a t__; struct sockaddr_ax25 *__restrict __sockaddr_ax25__; struct sockaddr_dl *__restrict __sockaddr_dl __; struct sockaddr_eon *__restrict __sockaddr_eon__; struct sockaddr_in *__restrict __sockaddr_in__; struct sockaddr_in6 *__restrict __sockaddr_in6__; struct sockaddr_inarp *__restrict __sockaddr_inarp __; struct sockaddr_ipx *__restrict __sockaddr_ipx__; struct sockaddr_iso *__restrict __sockaddr_iso_ _; struct sockaddr_ns *__restrict __sockaddr_ns__; struct sockaddr_un *__restrict __sockaddr_un__; st ruct sockaddr_x25 *__restrict __sockaddr_x25__; } __SOCKADDR_ARG __attribute__ ((__transparent_union__)); extern int getpeername (int __fd, __SOCKADDR_ARG __addr, socklen_t *__restrict __len) ; int main(void) { struct sockaddr_storage from; struct sockaddr *const fromp = (void *)&from; socklen_t fromlen; fromlen = sizeof(from); if (getpeername(0, fromp, &fromlen) < 0) { return 1; } return 0; }