public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/52286] New: wrong code bug
@ 2012-02-16 18:49 regehr at cs dot utah.edu
  2012-02-16 18:52 ` [Bug c/52286] " regehr at cs dot utah.edu
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: regehr at cs dot utah.edu @ 2012-02-16 18:49 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

             Bug #: 52286
           Summary: wrong code bug
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: regehr@cs.utah.edu


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug c/52286] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
@ 2012-02-16 18:52 ` regehr at cs dot utah.edu
  2012-02-16 18:54 ` regehr at cs dot utah.edu
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: regehr at cs dot utah.edu @ 2012-02-16 18:52 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

John Regehr <regehr at cs dot utah.edu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |chenyang at cs dot utah.edu

--- Comment #1 from John Regehr <regehr at cs dot utah.edu> 2012-02-16 18:48:18 UTC ---
[regehr@gamow 1]$ current-gcc -O0 small.c ; ./a.out 
1
[regehr@gamow 1]$ current-gcc -O1 small.c ; ./a.out 
0
[regehr@gamow 1]$ current-gcc -v
Using built-in specs.
COLLECT_GCC=current-gcc
COLLECT_LTO_WRAPPER=/uusoc/exports/scratch/regehr/z/compiler-install/gcc-r184311-install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --with-libelf=/usr/local --enable-lto
--prefix=/home/regehr/z/compiler-install/gcc-r184311-install
--program-prefix=r184311- --enable-languages=c,c++
Thread model: posix
gcc version 4.7.0 20120216 (experimental) (GCC) 
[regehr@gamow 1]$ cat small.c
int printf ( const char *, ... );

int c,
  a,
  b;

int
fn1 ( void )
{
  return c < 0;
}

int
main (  )
{
  b = ( ~a | 0 >= 0 ) & 0x98685255F;
  printf ( "%d\n", ( ( b ) < 0 ) );
  return 0;
}


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug c/52286] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
  2012-02-16 18:52 ` [Bug c/52286] " regehr at cs dot utah.edu
@ 2012-02-16 18:54 ` regehr at cs dot utah.edu
  2012-02-16 19:22 ` jakub at gcc dot gnu.org
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: regehr at cs dot utah.edu @ 2012-02-16 18:54 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

--- Comment #2 from John Regehr <regehr at cs dot utah.edu> 2012-02-16 18:51:50 UTC ---
Sorry, previous one wasn't quite reduced.


int printf ( const char *, ... );

int a, b;

int main (void)
{
  b = (~a | 0 >= 0) & 0x98685255F;
  printf ("%d\n", b < 0);
  return 0;
}


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug c/52286] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
  2012-02-16 18:52 ` [Bug c/52286] " regehr at cs dot utah.edu
  2012-02-16 18:54 ` regehr at cs dot utah.edu
@ 2012-02-16 19:22 ` jakub at gcc dot gnu.org
  2012-02-16 19:29 ` [Bug c/52286] [4.6/4.7 Regression] " jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-16 19:22 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-16 19:16:28 UTC ---
Started with http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162943

Slightly adjusted testcase:
extern void abort (void);

int
main ()
{
  int a, b;
  asm volatile ("" : "=r" (a) : "0" (0));
  b = (~a | 1) & -2038094497;
  if (b >= 0)
    abort ();
  return 0;
}


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug c/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (2 preceding siblings ...)
  2012-02-16 19:22 ` jakub at gcc dot gnu.org
@ 2012-02-16 19:29 ` jakub at gcc dot gnu.org
  2012-02-17  4:50 ` [Bug tree-optimization/52286] " pinskia at gcc dot gnu.org
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-16 19:29 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2012-02-16
         AssignedTo|unassigned at gcc dot       |jakub at gcc dot gnu.org
                   |gnu.org                     |
   Target Milestone|---                         |4.6.3
            Summary|wrong code bug              |[4.6/4.7 Regression] wrong
                   |                            |code bug
     Ever Confirmed|0                           |1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (3 preceding siblings ...)
  2012-02-16 19:29 ` [Bug c/52286] [4.6/4.7 Regression] " jakub at gcc dot gnu.org
@ 2012-02-17  4:50 ` pinskia at gcc dot gnu.org
  2012-02-17  4:53 ` pinskia at gcc dot gnu.org
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-02-17  4:50 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
          Component|c                           |tree-optimization
   Target Milestone|4.6.3                       |---

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-02-17 04:48:25 UTC ---
Confirmed.
D.1711_3 = D.1710_2 & 2256872798;
which is likely CONSTANT
Lattice value changed to CONSTANT Lattice value changed to CONSTANT
0x00000000000000000 (0x0000000008685255e).  Adding SSA edges to worklist.


The problem is obvious, 0x0000000008685255e should have its sign bit extended
to all the way to the end.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (4 preceding siblings ...)
  2012-02-17  4:50 ` [Bug tree-optimization/52286] " pinskia at gcc dot gnu.org
@ 2012-02-17  4:53 ` pinskia at gcc dot gnu.org
  2012-02-17  5:46 ` pinskia at gcc dot gnu.org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-02-17  4:53 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-02-17 04:50:20 UTC ---
double_int_negative_p is returning true because of that.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (5 preceding siblings ...)
  2012-02-17  4:53 ` pinskia at gcc dot gnu.org
@ 2012-02-17  5:46 ` pinskia at gcc dot gnu.org
  2012-02-17 10:46 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-02-17  5:46 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-02-17 04:52:36 UTC ---
Note VRP has the same issue.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (6 preceding siblings ...)
  2012-02-17  5:46 ` pinskia at gcc dot gnu.org
@ 2012-02-17 10:46 ` jakub at gcc dot gnu.org
  2012-02-17 11:37 ` jakub at gcc dot gnu.org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-17 10:46 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-17 10:31:14 UTC ---
Yeah, the bug is in fold-const.c, working on a fix already.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (7 preceding siblings ...)
  2012-02-17 10:46 ` jakub at gcc dot gnu.org
@ 2012-02-17 11:37 ` jakub at gcc dot gnu.org
  2012-02-20 12:02 ` rguenth at gcc dot gnu.org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-17 11:37 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-17 11:17:12 UTC ---
Created attachment 26694
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26694
gcc47-pr52286.patch

Untested fix.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (8 preceding siblings ...)
  2012-02-17 11:37 ` jakub at gcc dot gnu.org
@ 2012-02-20 12:02 ` rguenth at gcc dot gnu.org
  2012-02-20 12:54 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-02-20 12:02 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.6.3


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6/4.7 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (9 preceding siblings ...)
  2012-02-20 12:02 ` rguenth at gcc dot gnu.org
@ 2012-02-20 12:54 ` jakub at gcc dot gnu.org
  2012-02-20 12:59 ` [Bug tree-optimization/52286] [4.6 " jakub at gcc dot gnu.org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-20 12:54 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-20 12:19:54 UTC ---
Author: jakub
Date: Mon Feb 20 12:19:47 2012
New Revision: 184391

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184391
Log:
    PR tree-optimization/52286
    * fold-const.c (fold_binary_loc): For (X & C1) | C2
    optimization use double_int_to_tree instead of build_int_cst_wide,
    rewrite to use double_int vars.

    * gcc.c-torture/execute/pr52286.c: New test.

Added:
    trunk/gcc/testsuite/gcc.c-torture/execute/pr52286.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/fold-const.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (10 preceding siblings ...)
  2012-02-20 12:54 ` jakub at gcc dot gnu.org
@ 2012-02-20 12:59 ` jakub at gcc dot gnu.org
  2012-02-23 18:25 ` jakub at gcc dot gnu.org
  2012-02-23 21:53 ` jakub at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-20 12:59 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[4.6/4.7 Regression] wrong  |[4.6 Regression] wrong code
                   |code bug                    |bug

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-20 12:52:41 UTC ---
Fixed for 4.7 so far.


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (11 preceding siblings ...)
  2012-02-20 12:59 ` [Bug tree-optimization/52286] [4.6 " jakub at gcc dot gnu.org
@ 2012-02-23 18:25 ` jakub at gcc dot gnu.org
  2012-02-23 21:53 ` jakub at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-23 18:25 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

--- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-23 18:20:26 UTC ---
Author: jakub
Date: Thu Feb 23 18:20:19 2012
New Revision: 184520

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184520
Log:
    Backported from trunk
    2012-02-20  Georg-Johann Lay  <avr@gjlay.de>

    * gcc.c-torture/execute/pr52286.c: Fix FAIL on 16-bit int platforms.

    2012-02-20  Jakub Jelinek  <jakub@redhat.com>

    PR tree-optimization/52286
    * fold-const.c (fold_binary_loc): For (X & C1) | C2
    optimization use double_int_to_tree instead of build_int_cst_wide,
    rewrite to use double_int vars.

    * gcc.c-torture/execute/pr52286.c: New test.

Added:
    branches/gcc-4_6-branch/gcc/testsuite/gcc.c-torture/execute/pr52286.c
Modified:
    branches/gcc-4_6-branch/gcc/ChangeLog
    branches/gcc-4_6-branch/gcc/fold-const.c
    branches/gcc-4_6-branch/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Bug tree-optimization/52286] [4.6 Regression] wrong code bug
  2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
                   ` (12 preceding siblings ...)
  2012-02-23 18:25 ` jakub at gcc dot gnu.org
@ 2012-02-23 21:53 ` jakub at gcc dot gnu.org
  13 siblings, 0 replies; 15+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-02-23 21:53 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52286

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED

--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-23 21:29:10 UTC ---
Fixed.


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2012-02-23 21:30 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-16 18:49 [Bug c/52286] New: wrong code bug regehr at cs dot utah.edu
2012-02-16 18:52 ` [Bug c/52286] " regehr at cs dot utah.edu
2012-02-16 18:54 ` regehr at cs dot utah.edu
2012-02-16 19:22 ` jakub at gcc dot gnu.org
2012-02-16 19:29 ` [Bug c/52286] [4.6/4.7 Regression] " jakub at gcc dot gnu.org
2012-02-17  4:50 ` [Bug tree-optimization/52286] " pinskia at gcc dot gnu.org
2012-02-17  4:53 ` pinskia at gcc dot gnu.org
2012-02-17  5:46 ` pinskia at gcc dot gnu.org
2012-02-17 10:46 ` jakub at gcc dot gnu.org
2012-02-17 11:37 ` jakub at gcc dot gnu.org
2012-02-20 12:02 ` rguenth at gcc dot gnu.org
2012-02-20 12:54 ` jakub at gcc dot gnu.org
2012-02-20 12:59 ` [Bug tree-optimization/52286] [4.6 " jakub at gcc dot gnu.org
2012-02-23 18:25 ` jakub at gcc dot gnu.org
2012-02-23 21:53 ` jakub at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).