public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/33205]  New: bitfield optimizations causes corrupt bitfield expansion at runtime
@ 2007-08-27 16:03 xk-corpse at hotmail dot com
  2007-08-28  8:45 ` [Bug c++/33205] optimization bug: unsigned bitfield expands with non-zero padding bits xk-corpse at hotmail dot com
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: xk-corpse at hotmail dot com @ 2007-08-27 16:03 UTC (permalink / raw)
  To: gcc-bugs

test.cxx
------------------------------------------------------
#include <iostream>

struct A
{
    unsigned short x:14;
    unsigned short y:14;
};


extern unsigned n;

int main()
{
    A a;

    a.x = n & 0x3FFF;
    a.y = (n>>14) & 0x3FFF;

    unsigned expected = n & 0x3FFF;

    if( a.x != expected )
    {
        std::cout << "test failed: "
            << " (x=" << a.x
            << ") != " << expected
            << ", y=" << a.y
            << std::endl;
        return 1;
    }

    std::cout << "test succedeed" << std::endl;

    return 0;
}

unsigned n = 0xFE7B4873U;
------------------------------------------------------

output:
test failed:  (x=18547) != 2163, y=14829

14-bit unsigned field expands with non-zero padding bits


appears with gcc-4.2.1, gcc-4.1.2, gcc-4.2-20070822
does not appear with gcc-3.4.6

gcc was configured and built with crosstool-0.43 (with glibc-2.3.2)

powerpc-603-linux-gnu-g++ -v
Using built-in specs.
Target: powerpc-603-linux-gnu
Configured with:
/home/corpse/tmp/interlink/crosstool-0.43/build/powerpc-603-linux-gnu/gcc-4.2.1-glibc-2.3.2/gcc-4.2.1/configure
--target=powerpc-603-linux-gnu --host=i686-host_pc-linux-gnu
--prefix=/opt/compilers/gcc-4.2.1-glibc-2.3.2/powerpc-603-linux-gnu
--with-cpu=603 --enable-cxx-flags=-mcpu=603
--with-headers=/opt/compilers/gcc-4.2.1-glibc-2.3.2/powerpc-603-linux-gnu/powerpc-603-linux-gnu/include
--with-local-prefix=/opt/compilers/gcc-4.2.1-glibc-2.3.2/powerpc-603-linux-gnu/powerpc-603-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit
--enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.2.1


-- 
           Summary: bitfield optimizations causes corrupt bitfield expansion
                    at runtime
           Product: gcc
           Version: 4.2.1
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: xk-corpse at hotmail dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: powerpc-603-linux-gnu


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


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

* [Bug c++/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
@ 2007-08-28  8:45 ` xk-corpse at hotmail dot com
  2007-08-28  9:39 ` [Bug target/33205] " rguenth at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: xk-corpse at hotmail dot com @ 2007-08-28  8:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from xk-corpse at hotmail dot com  2007-08-28 08:45 -------
i'm sorry, i forgot to say that bug appears with any optimization level enabled
(-O1, -O2, -O3) and does not appear with optimization disabled (-O0)


-- 

xk-corpse at hotmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|bitfield optimizations      |optimization bug: unsigned
                   |causes corrupt bitfield     |bitfield expands with non-
                   |expansion at runtime        |zero padding bits


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


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

* [Bug target/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
  2007-08-28  8:45 ` [Bug c++/33205] optimization bug: unsigned bitfield expands with non-zero padding bits xk-corpse at hotmail dot com
@ 2007-08-28  9:39 ` rguenth at gcc dot gnu dot org
  2007-08-28 11:25 ` xk-corpse at hotmail dot com
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2007-08-28  9:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from rguenth at gcc dot gnu dot org  2007-08-28 09:39 -------
This works for me on a x86_64 target.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|c++                         |target
           Keywords|                            |wrong-code


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


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

* [Bug target/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
  2007-08-28  8:45 ` [Bug c++/33205] optimization bug: unsigned bitfield expands with non-zero padding bits xk-corpse at hotmail dot com
  2007-08-28  9:39 ` [Bug target/33205] " rguenth at gcc dot gnu dot org
@ 2007-08-28 11:25 ` xk-corpse at hotmail dot com
  2007-08-30 21:21 ` pinskia at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: xk-corpse at hotmail dot com @ 2007-08-28 11:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from xk-corpse at hotmail dot com  2007-08-28 11:25 -------
(In reply to comment #2)
> This works for me on a x86_64 target.
> 

For me it works on i686-pc-linux (with cross-compiler, configured with the same
method as above - crosstool-0.43 + glibc-2.3.2), works on i386-mingw32 (with
cross-compiler linux->mingw32), but does not work on powerpc.


-- 


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


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

* [Bug target/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
                   ` (2 preceding siblings ...)
  2007-08-28 11:25 ` xk-corpse at hotmail dot com
@ 2007-08-30 21:21 ` pinskia at gcc dot gnu dot org
  2008-02-04 16:50 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2007-08-30 21:21 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |normal


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


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

* [Bug target/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
                   ` (3 preceding siblings ...)
  2007-08-30 21:21 ` pinskia at gcc dot gnu dot org
@ 2008-02-04 16:50 ` rguenth at gcc dot gnu dot org
  2008-02-05 16:46 ` bergner at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-02-04 16:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from rguenth at gcc dot gnu dot org  2008-02-04 16:49 -------
Still works for me on x86_64/i686.  Any ppc guys around to confirm this?


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bergner at gcc dot gnu dot
                   |                            |org


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


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

* [Bug target/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
                   ` (4 preceding siblings ...)
  2008-02-04 16:50 ` rguenth at gcc dot gnu dot org
@ 2008-02-05 16:46 ` bergner at gcc dot gnu dot org
  2008-02-07 17:33 ` janis at gcc dot gnu dot org
  2008-02-07 18:04 ` rguenth at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: bergner at gcc dot gnu dot org @ 2008-02-05 16:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from bergner at gcc dot gnu dot org  2008-02-05 16:45 -------
This works for me using latest mainline, but using a compiler built with
revision 131553, it fails.  I'll try and see if we're just getting lucky now or
whether it has been fixed since then.

Janis, in the meantime, can you run a reg hunt on the attached testcase
starting at revision 131553?


-- 

bergner at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |janis at gcc dot gnu dot org


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


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

* [Bug target/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
                   ` (5 preceding siblings ...)
  2008-02-05 16:46 ` bergner at gcc dot gnu dot org
@ 2008-02-07 17:33 ` janis at gcc dot gnu dot org
  2008-02-07 18:04 ` rguenth at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: janis at gcc dot gnu dot org @ 2008-02-07 17:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from janis at gcc dot gnu dot org  2008-02-07 17:32 -------
A regression hunt on powerpc-linux showed that the test starts passing with:

    http://gcc.gnu.org/viewcvs?view=rev&rev=131823
    r131823 | rguenth | 2008-01-25 12:06:31 +0000 (Fri, 25 Jan 2008)

That's a fix for 33887.


-- 


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


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

* [Bug target/33205] optimization bug: unsigned bitfield expands with non-zero padding bits
  2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
                   ` (6 preceding siblings ...)
  2008-02-07 17:33 ` janis at gcc dot gnu dot org
@ 2008-02-07 18:04 ` rguenth at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-02-07 18:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2008-02-07 18:03 -------
Ok, that's quite likely.

*** This bug has been marked as a duplicate of 33887 ***


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE


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


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

end of thread, other threads:[~2008-02-07 18:04 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-08-27 16:03 [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime xk-corpse at hotmail dot com
2007-08-28  8:45 ` [Bug c++/33205] optimization bug: unsigned bitfield expands with non-zero padding bits xk-corpse at hotmail dot com
2007-08-28  9:39 ` [Bug target/33205] " rguenth at gcc dot gnu dot org
2007-08-28 11:25 ` xk-corpse at hotmail dot com
2007-08-30 21:21 ` pinskia at gcc dot gnu dot org
2008-02-04 16:50 ` rguenth at gcc dot gnu dot org
2008-02-05 16:46 ` bergner at gcc dot gnu dot org
2008-02-07 17:33 ` janis at gcc dot gnu dot org
2008-02-07 18:04 ` rguenth at gcc dot gnu dot 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).