From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3791 invoked by alias); 10 Sep 2009 08:50:51 -0000 Received: (qmail 3337 invoked by uid 48); 10 Sep 2009 08:50:26 -0000 Date: Thu, 10 Sep 2009 08:50:00 -0000 Message-ID: <20090910085026.3336.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/41089] [4.5 Regression] r147980 (New SRA) breaks stdargs 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: 2009-09/txt/msg01053.txt.bz2 ------- Comment #16 from ubizjak at gmail dot com 2009-09-10 08:50 ------- .optimized tree dump: ;; Function f4 (f4) f4 (int i) { long int D.2098; int * D.2097; long unsigned int D.2096; int * D.2095; int foo_arg.4; struct ap; long int x.3; double D.2080; int D.2079; double * D.2078; long int D.2076; long unsigned int iftmp.2; double * D.2072; long int D.2071; int D.2070; void * D.2069; : __builtin_va_start (&ap, 0); D.2069_2 = ap.__base; D.2070_3 = ap.__offset; D.2071_4 = (long int) D.2070_3; D.2072_5 = (double *) D.2069_2; if (D.2071_4 <= 47) goto ; else goto ; : D.2076_6 = D.2071_4 + -48; iftmp.2_7 = (long unsigned int) D.2076_6; goto ; : iftmp.2_8 = (long unsigned int) D.2071_4; : # iftmp.2_1 = PHI D.2078_9 = D.2072_5 + iftmp.2_1; D.2071_10 = D.2071_4 + 8; D.2079_11 = (int) D.2071_10; ap.__offset = D.2079_11; D.2080_12 = *D.2078_9; x.3_13 = (long int) D.2080_12; x = x.3_13; switch (i_14(D)) , case 5: > : D.2098_23 = (long int) D.2079_11; D.2097_24 = (int *) D.2069_2; D.2096_25 = (long unsigned int) D.2098_23; D.2095_26 = D.2097_24 + D.2096_25; foo_arg.4_27 = *D.2095_26; foo_arg = foo_arg.4_27; return; : abort (); } ;; Function main (main) main () { int foo_arg.1; long int x.0; : f4 (5, 1.6e+1, 128); x.0_1 = x; if (x.0_1 != 16) goto ; else goto ; : foo_arg.1_2 = foo_arg; if (foo_arg.1_2 != 128) goto ; else goto ; : abort (); : return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41089