public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/23317] New: operator>>( istream&, int& ) does not work for enum values
@ 2005-08-10 15:26 peter at gamelogic dot com
2005-08-10 15:27 ` [Bug c++/23317] " peter at gamelogic dot com
2005-08-10 15:37 ` [Bug libstdc++/23317] " pinskia at gcc dot gnu dot org
0 siblings, 2 replies; 3+ messages in thread
From: peter at gamelogic dot com @ 2005-08-10 15:26 UTC (permalink / raw)
To: gcc-bugs
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/23317] operator>>( istream&, int& ) does not work for enum values
2005-08-10 15:26 [Bug c++/23317] New: operator>>( istream&, int& ) does not work for enum values peter at gamelogic dot com
@ 2005-08-10 15:27 ` peter at gamelogic dot com
2005-08-10 15:37 ` [Bug libstdc++/23317] " pinskia at gcc dot gnu dot org
1 sibling, 0 replies; 3+ messages in thread
From: peter at gamelogic dot com @ 2005-08-10 15:27 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From peter at gamelogic dot com 2005-08-10 15:27 -------
Created an attachment (id=9463)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=9463&action=view)
Test case which shows failing and successful examples of this bug.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23317
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug libstdc++/23317] operator>>( istream&, int& ) does not work for enum values
2005-08-10 15:26 [Bug c++/23317] New: operator>>( istream&, int& ) does not work for enum values peter at gamelogic dot com
2005-08-10 15:27 ` [Bug c++/23317] " peter at gamelogic dot com
@ 2005-08-10 15:37 ` pinskia at gcc dot gnu dot org
1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-08-10 15:37 UTC (permalink / raw)
To: gcc-bugs
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2114 bytes --]
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-08-10 15:37 -------
In 3.4 and above, I get:
t4.cc:16: error: ambiguous overload for operator>> in Temp >> (int)Val
/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream:
131: note: candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::
operator>>(std::basic_istream<_CharT, _Traits>& (*)(std::basic_istream<_CharT, _Traits>&)) [with
_CharT = char, _Traits = std::char_traits<char>] <near match>
/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream:
134: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::
operator>>(std::basic_ios<_CharT, _Traits>& (*)(std::basic_ios<_CharT, _Traits>&)) [with _CharT =
char, _Traits = std::char_traits<char>] <near match>
/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream:
137: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::
operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char, _Traits = std::char_traits<char>]
<near match>
/home/gates/pinskia/linux/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/istream:
230: note: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::
operator>>(std::basic_streambuf<_CharT, _Traits>*) [with _CharT = char, _Traits = std::
char_traits<char>] <near match>
I don't think this is valid code.
Actually it is not, you are invoking one of the bad extensions in GCC which was removed for 3.4 called
the lvalue extension.
So this was fixed to reject the code in 3.4.0.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Component|c++ |libstdc++
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23317
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-08-10 15:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-08-10 15:26 [Bug c++/23317] New: operator>>( istream&, int& ) does not work for enum values peter at gamelogic dot com
2005-08-10 15:27 ` [Bug c++/23317] " peter at gamelogic dot com
2005-08-10 15:37 ` [Bug libstdc++/23317] " pinskia 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).