[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#524064: Regression: compile failure on valid C++ code



Package: g++-4.3
Version: 4.3.3-7
Severity: normal

Compiling magics++, a new package for debian, I get:
/bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I../../src    -I../../src/MvObs -I../../src/terralib/kernel -I../../src -I../../src/basic -I../../src/common -I../../src/visualisers -I../../src/drivers -I../../src/drivers/OpenGL -I../../include -Iyes/include  -I/usr/include/freetype2 -I/usr/include -I/usr/X11R6/include -I/usr/local/include -fvisibility=hidden -DINTEGER_IS_INT -Dfortfloat=float -Dfortint=int -Dboolean=bool  -O2 -mtune=pentium4 -g -O2 -g -Wall -O2 -m32 -fno-gnu-keywords -ansi -std=c++98 -Wno-deprecated -c -o EpsBufr.lo EpsBufr.cc
 g++ -DHAVE_CONFIG_H -I. -I. -I../../src -I../../src/MvObs -I../../src/terralib/kernel -I../../src -I../../src/basic -I../../src/common -I../../src/visualisers -I../../src/drivers -I../../src/drivers/OpenGL -I../../include -Iyes/include -I/usr/include/freetype2 -I/usr/include -I/usr/X11R6/include -I/usr/local/include -fvisibility=hidden -DINTEGER_IS_INT -Dfortfloat=float -Dfortint=int -Dboolean=bool -O2 -mtune=pentium4 -g -O2 -g -Wall -O2 -m32 -fno-gnu-keywords -ansi -std=c++98 -Wno-deprecated -c EpsBufr.cc  -fPIC -DPIC -o .libs/EpsBufr.o
In file included from ../../src/common/Transformation.h:62,

..

../../src/common/GeoPoint.h:123: warning: suggest parentheses around && within ||
EpsBufr.cc: In member function 'virtual void magics::EpsBufr::decode()':
EpsBufr.cc:83: warning: unused variable 'subsets'
EpsBufr.cc:84: warning: unused variable 'subset'
EpsBufr.cc: In member function 'virtual void magics::EpsBufr::visit(magics::TextNode&)':
EpsBufr.cc:202: error: invalid use of incomplete type 'const struct std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >'
/usr/include/c++/4.3/bits/localefwd.h:162: error: declaration of 'const struct std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >'
/usr/include/c++/4.3/bits/locale_classes.tcc: In function 'const _Facet& std::use_facet(const std::locale&) [with _Facet = std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >]':
EpsBufr.cc:200:   instantiated from here
/usr/include/c++/4.3/bits/locale_classes.tcc:112: error: incomplete type 'std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >' used in nested name specifier
/usr/include/c++/4.3/bits/locale_classes.tcc:117: error: cannot dynamic_cast '* *(__facets + ((unsigned int)(((unsigned int)__i) * 4u)))' (of type 'const class std::locale::facet') to type 'const struct std::time_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >&' (target is not pointer or reference to complete type)
make[4]: *** [EpsBufr.lo] Error 1


Relevant code:
196                 ostringstream out;
197                 tm convert = base_;
198             locale loc("");
199             out.imbue(loc);
200             const std::time_put<char>& tfac = use_facet<time_put<char> >(loc);
201             string format = "Forecast VT %A %e %B %Y %H UTC";
202             tfac.put(out, out, ' ', &convert, format.c_str(), format.c_str()+format.length());


This code compiles fine with g++-4.1.

-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-3-686 (SMP w/1 CPU core)
Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to ga_IE.UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages g++-4.3 depends on:
ii  gcc-4.3                   4.3.3-7        The GNU C compiler
ii  gcc-4.3-base              4.3.3-7        The GNU Compiler Collection (base 
ii  libc6                     2.9-6          GNU C Library: Shared libraries
ii  libgmp3c2                 2:4.2.4+dfsg-2 Multiprecision arithmetic library
ii  libmpfr1ldbl              2.4.1-1        multiple precision floating-point 
pn  libstdc++6-4.3-dev        <none>         (no description available)

g++-4.3 recommends no packages.

Versions of packages g++-4.3 suggests:
pn  g++-4.3-multilib              <none>     (no description available)
pn  gcc-4.3-doc                   <none>     (no description available)
pn  libstdc++6-4.3-dbg            <none>     (no description available)



Reply to: