From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28570 invoked by alias); 24 Jul 2010 02:43:08 -0000 Received: (qmail 26428 invoked by uid 48); 24 Jul 2010 02:42:50 -0000 Date: Sat, 24 Jul 2010 02:43:00 -0000 Subject: [Bug rtl-optimization/45051] New: [4.6 Regression]: gcc.c-torture/execute/builtins/abs-2.c and abs-3.c due to "track subwords of DImode allocnos" X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "hp at gcc dot gnu dot org" 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-07/txt/msg02587.txt.bz2 With revision 162417 this test passed. >>From revision 162418 and on, these tests (or "this test" as abs-3.c is effectively the same as abs-2.c) has failed as follows: Running /tmp/badabs/gcc/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ... FAIL: gcc.c-torture/execute/builtins/abs-2.c execution, -O2 FAIL: gcc.c-torture/execute/builtins/abs-2.c execution, -O3 -fomit-frame-pointer FAIL: gcc.c-torture/execute/builtins/abs-2.c execution, -O3 -g FAIL: gcc.c-torture/execute/builtins/abs-2.c execution, -Os FAIL: gcc.c-torture/execute/builtins/abs-2.c execution, -O2 -flto FAIL: gcc.c-torture/execute/builtins/abs-2.c execution, -O2 -fwhopr FAIL: gcc.c-torture/execute/builtins/abs-3.c execution, -O2 FAIL: gcc.c-torture/execute/builtins/abs-3.c execution, -O3 -fomit-frame-pointer FAIL: gcc.c-torture/execute/builtins/abs-3.c execution, -O3 -g FAIL: gcc.c-torture/execute/builtins/abs-3.c execution, -Os FAIL: gcc.c-torture/execute/builtins/abs-3.c execution, -O2 -flto FAIL: gcc.c-torture/execute/builtins/abs-3.c execution, -O2 -fwhopr With the message in the logfile being: ... PASS: gcc.c-torture/execute/builtins/abs-2.c compilation, -O2 program stopped with signal 6. FAIL: gcc.c-torture/execute/builtins/abs-2.c execution, -O2 ... (i.e. abort being called) Author of patch in suspect revision range CC:ed. At a glance, the code change causes a register containing 0 to be used as containing 0xffffffff for the low-part of 9223372036854775807LL ((1<<63)-1), i.e. a mis-tracking of a DImode subreg. I'll attach a smaller test-case and an assembly diff pointing out the wrong code. -- Summary: [4.6 Regression]: gcc.c-torture/execute/builtins/abs-2.c and abs-3.c due to "track subwords of DImode allocnos" Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hp at gcc dot gnu dot org GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: cris-axis-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45051