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