From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17882 invoked by alias); 27 Aug 2007 16:03:12 -0000 Received: (qmail 15305 invoked by uid 48); 27 Aug 2007 16:02:57 -0000 Date: Mon, 27 Aug 2007 16:03:00 -0000 Subject: [Bug c++/33205] New: bitfield optimizations causes corrupt bitfield expansion at runtime X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "xk-corpse at hotmail 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: 2007-08/txt/msg01970.txt.bz2 test.cxx ------------------------------------------------------ #include 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