Assigning to an enum value from, for example, an istringstream fails, but the 
failure bit on the istream 
is not set.  Using an int temporary works just fine.

The .ii file is attached.  The output of g++ -v -save-temps Test.cpp is:

Reading specs from /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Configured with: ../src/configure -v 
--enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --
prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info 
--with-gxx-include-dir=/usr/
include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib 
--enable-nls --without-
included-gettext --enable-clocale=gnu --enable-debug --enable-java-gc=boehm 
--enable-java-
awt=xlib --enable-objc-gc i486-linux
Thread model: posix
gcc version 3.3.5 (Debian 1:3.3.5-13)
 /usr/lib/gcc-lib/i486-linux/3.3.5/cc1plus -E -D__GNUG__=3 -quiet -v 
-D__GNUC__=3 
-D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=5 -D_GNU_SOURCE Test.cpp Test.ii
ignoring nonexistent directory "/usr/i486-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/3.3
 /usr/include/c++/3.3/i486-linux
 /usr/include/c++/3.3/backward
 /usr/local/include
 /usr/lib/gcc-lib/i486-linux/3.3.5/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i486-linux/3.3.5/cc1plus -fpreprocessed Test.ii -quiet 
-dumpbase Test.cpp 
-auxbase Test -version -o Test.s
GNU C++ version 3.3.5 (Debian 1:3.3.5-13) (i486-linux)
        compiled by GNU C version 3.3.5 (Debian 1:3.3.5-13).
GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=129009
 as -V -Qy -o Test.o Test.s
GNU assembler version 2.15 (i386-linux) using BFD version 2.15
 /usr/lib/gcc-lib/i486-linux/3.3.5/collect2 --eh-frame-hdr -m elf_i386 
-dynamic-linker /lib/ld-
linux.so.2 /usr/lib/gcc-lib/i486-linux/3.3.5/../../../crt1.o 
/usr/lib/gcc-lib/i486-linux/3.3.5/../../../
crti.o /usr/lib/gcc-lib/i486-linux/3.3.5/crtbegin.o 
-L/usr/lib/gcc-lib/i486-linux/3.3.5 -L/usr/lib/
gcc-lib/i486-linux/3.3.5/../../.. Test.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s 
-lgcc /usr/lib/gcc-lib/
i486-linux/3.3.5/crtend.o /usr/lib/gcc-lib/i486-linux/3.3.5/../../../crtn.o

Release:
g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)

Environment:
(Debian) Linux 2.4.26, i686 pc

-- 
           Summary: operator>>( istream&, int& ) does not work for enum
                    values
           Product: gcc
           Version: 3.3.5
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: peter at gamelogic dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i486-linux
  GCC host triplet: i486-linux
GCC target triplet: i486-linux


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

Reply via email to