Menu

#5 gcc 3.2.1 fails to compile ddd 3.3.1 and 3.3

closed-fixed
nobody
None
5
2003-10-01
2003-01-08
Anonymous
No

Same error for both version :

strclass.C: In function `std::istream&
operator>>(std::istream&, string&)':
strclass.C:1439: invalid conversion from `int' to
`std::_Ios_Iostate'
strclass.C:1439: initializing argument 1 of `void
std::basic_ios<_CharT,
_Traits>::clear(std::_Ios_Iostate) [with _CharT =
char, _Traits =
std::char_traits<char>]'
make[1]: *** [strclass.o] Error 1
make[1]: Leaving directory `/home/clo/ddd-3.3/ddd'
make: *** [all-recursive] Error 1

Discussion

  • Tom Williams

    Tom Williams - 2003-03-20

    Logged In: YES
    user_id=417062

    This problem looks like a configure script issue. The "config.
    log" file in the 'ddd' directory indicates that the test program
    used to determine if Iostate is available doesn't compile
    because the test program tries to include <iostream.h> which
    gives a warning message about that header include style
    being obsolete:

    configure:6205: checking for ios::iostate

    configure:6226: c++ -c -g -O2 -Werror conftest.C 1>&5

    In file included from /usr/include/c++/3.2.
    2/backward/iostream.h:31,

    from configure:6220:

    /usr/include/c++/3.2.2/backward/backward_warning.h:32:2:
    #warning This file includes at least on

    e deprecated or antiquated header. Please consider using one
    of the 32 headers found in section

    17.4.1.2 of the C++ standard. Examples include substituting
    the <X> header for the <X.h> header

    for C++ includes, or <sstream> instead of the deprecated
    header <strstream.h>. To disable this warning use
    -Wno-deprecated.

    configure: failed program was:

    #line 6219 "configure"

    #include "confdefs.h"

    #include <iostream.h>

    int main() {

    ios::iostate new_state;

    ; return 0; }

    configure:6273: checking whether the C++ compiler (c++)
    accepts -fpermissive

    configure:6330: checking for X

    When I try to compile the test program standalone with the
    "correct" include style, it STILL doesn't compile:

    [tomw@linux tomw]$ cat test.C

    #include <iostream>

    int main() {

    ios::iostate new_state;

    ; return 0; }

    [tomw@linux tomw]$ c++ -c -g -O2 -Werror test.C

    test.C: In function `int main()':

    test.C:3: `ios' undeclared (first use this function)

    test.C:3: (Each undeclared identifier is reported only once for
    each function

    it appears in.)

    test.C:3: parse error before `::' token

    [tomw@linuxcertify tomw]$ c++ --version

    c++ (GCC) 3.2.2

    Copyright (C) 2002 Free Software Foundation, Inc.

    This is free software; see the source for copying conditions.
    There is NO

    warranty; not even for MERCHANTABILITY or FITNESS FOR A
    PARTICULAR PURPOSE.

    [tomw@linux tomw]$

    So, this is what I've been able to determine thus far.

    Peace....

    Tom

     
  • Arnaud Desitter

    Arnaud Desitter - 2003-10-01
    • status: open --> open
     
  • Arnaud Desitter

    Arnaud Desitter - 2003-10-01

    Logged In: YES
    user_id=566665

    Fixed in ddd post 3.3.1.

     
  • Arnaud Desitter

    Arnaud Desitter - 2003-10-01
    • status: open --> open
     
  • Arnaud Desitter

    Arnaud Desitter - 2003-10-01
    • status: open --> closed
     
  • Arnaud Desitter

    Arnaud Desitter - 2003-10-01

    Logged In: YES
    user_id=566665

    Fixed in ddd post 3.3.1.

     
  • Arnaud Desitter

    Arnaud Desitter - 2003-10-01
    • status: closed --> closed-fixed