[Bug libstdc++/51651] New: istream::ignore returns eof too early

2011-12-21 Thread claytongdavis at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51651

 Bug #: 51651
   Summary: istream::ignore returns eof too early
Classification: Unclassified
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: claytongda...@gmail.com


Created attachment 26165
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26165
Test program displaying the bug.  Output should be false for both methods of
reading the stream.

This bug was initially reported on the stack overflow forum.  Since it seems
never to have been reported, I am doing so now.

When istream::ignore is used to ignore the last character of a stream, it sets
the eof flag as though it had read past the end of the file.  Thus,
istream::read and istream::ignore show different behavior.


[Bug c++/49510] New: bitshift warnings

2011-06-22 Thread claytongdavis at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49510

   Summary: bitshift warnings
   Product: gcc
   Version: 4.5.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: claytongda...@gmail.com


This is a request to improve the warnings for bitshifts where the right operand
is negative or >= the size of the left operand.  I am aware that this is
undefined behavior, but a warning would be nice in a case like the one included
below.  GCC implements a cyclic bitshift instead.

$ more gcc_bitshift.C 
#include 

int main()
{
  int shift = 32;
  std::cout<<"0x>>32 = "<<(0x>>shift)<>(-1) = "<<(0x>>shift)<>32 = 4294967295
1<<32 = 1
0x>>(-1) = 1
1<<(-1) = -2147483648

$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.5 --enable-shared --enable-multiarch
--with-multiarch-defaults=x86_64-linux-gnu --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib/x86_64-linux-gnu
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/x86_64-linux-gnu
--enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default
--with-plugin-ld=ld.gold --enable-objc-gc --disable-werror --with-arch-32=i686
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)