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).