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

Bug#345550: g++-4.0: Fails to compile C++ with -frepo



Package: g++-4.0
Version: 4.0.2-5
Severity: normal

Hi, given this trivial C++ code:

#include <iostream>
#include <boost/format.hpp>

int main(void)
{
  std::cout << boost::format("Hello %1%!\n%2%\n") % "world" % 343
	    << std::flush;
  return 0;
}

It fails to compile:

$ g++ -frepo -c test.cc
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::integral_c<unsigned int, 0u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from ‘boost::integral_constant<unsigned int, 0u>’
/usr/include/boost/type_traits/alignment_of.hpp:81:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error: ‘(((unsigned int)mpl_::integral_c<unsigned int, 0u>::value) + 1u)’ is not a valid template argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::integral_c<unsigned int, 0u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from ‘boost::integral_constant<unsigned int, 0u>’
/usr/include/boost/type_traits/alignment_of.hpp:81:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error: ‘(((unsigned int)mpl_::integral_c<unsigned int, 0u>::value) - 1u)’ is not a valid template argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<3>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error: ‘(((int)mpl_::int_<3>::value) + 1)’ is not a valid template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<3>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error: ‘(((int)mpl_::int_<3>::value) - 1)’ is not a valid template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<-0x00000000000000001>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error: ‘(((int)mpl_::int_<-0x00000000000000001>::value) + 1)’ is not a valid template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<-0x00000000000000001>’:
/usr/include/boost/mpl/if.hpp:131:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error: ‘(((int)mpl_::int_<-0x00000000000000001>::value) - 1)’ is not a valid template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<1>’:
/usr/include/boost/mpl/not.hpp:47:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error: ‘(((int)mpl_::int_<1>::value) + 1)’ is not a valid template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<1>’:
/usr/include/boost/mpl/not.hpp:47:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error: ‘(((int)mpl_::int_<1>::value) - 1)’ is not a valid template argument for type ‘int’ because it is a non-constant expression
/usr/include/boost/mpl/if.hpp: In instantiation of ‘boost::mpl::if_<boost::integral_constant<bool, false>, boost::optional_detail::types_when_is_ref<std::locale>, boost::optional_detail::types_when_isnt_ref<std::locale> >’:
/usr/include/boost/optional/optional.hpp:152:   instantiated from ‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from ‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/if.hpp:67: error: ‘mpl_::bool_<false>::value’ is not a valid template argument for type ‘bool’ because it is a non-constant expression
/usr/include/boost/mpl/if.hpp: In instantiation of ‘boost::mpl::if_<boost::integral_constant<bool, false>, boost::optional_detail::types_when_is_ref<std::locale>, boost::optional_detail::types_when_isnt_ref<std::locale> >’:
/usr/include/boost/optional/optional.hpp:152:   instantiated from ‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from ‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/if.hpp:70: error: ‘mpl_::bool_<false>::value’ is not a valid template argument for type ‘bool’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::integral_c<unsigned int, 4u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from ‘boost::integral_constant<unsigned int, 4u>’
/usr/include/boost/type_traits/alignment_of.hpp:61:   instantiated from ‘boost::alignment_of<std::locale>’
/usr/include/boost/optional/optional.hpp:97:   instantiated from ‘boost::optional_detail::aligned_storage<std::locale>::dummy_u’
/usr/include/boost/optional/optional.hpp:98:   instantiated from ‘boost::optional_detail::aligned_storage<std::locale>’
/usr/include/boost/optional/optional.hpp:400:   instantiated from ‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from ‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:72: error: ‘(((unsigned int)mpl_::integral_c<unsigned int, 4u>::value) + 1u)’ is not a valid template argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::integral_c<unsigned int, 4u>’:
/usr/include/boost/type_traits/integral_constant.hpp:21:   instantiated from ‘boost::integral_constant<unsigned int, 4u>’
/usr/include/boost/type_traits/alignment_of.hpp:61:   instantiated from ‘boost::alignment_of<std::locale>’
/usr/include/boost/optional/optional.hpp:97:   instantiated from ‘boost::optional_detail::aligned_storage<std::locale>::dummy_u’
/usr/include/boost/optional/optional.hpp:98:   instantiated from ‘boost::optional_detail::aligned_storage<std::locale>’
/usr/include/boost/optional/optional.hpp:400:   instantiated from ‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from ‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/mpl/aux_/integral_wrapper.hpp:73: error: ‘(((unsigned int)mpl_::integral_c<unsigned int, 4u>::value) - 1u)’ is not a valid template argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/optional/optional.hpp: In instantiation of ‘boost::optional_detail::aligned_storage<std::locale>::dummy_u’:
/usr/include/boost/optional/optional.hpp:98:   instantiated from ‘boost::optional_detail::aligned_storage<std::locale>’
/usr/include/boost/optional/optional.hpp:400:   instantiated from ‘boost::optional_detail::optional_base<std::locale>’
/usr/include/boost/optional/optional.hpp:407:   instantiated from ‘boost::optional<std::locale>’
/usr/include/boost/format/internals.hpp:56:   instantiated from here
/usr/include/boost/optional/optional.hpp:97: error: ‘mpl_::integral_c<unsigned int, 4u>::value’ is not a valid template argument for type ‘unsigned int’ because it is a non-constant expression
/usr/include/boost/format/internals.hpp: In member function ‘void boost::io::detail::stream_format_state<Ch, Tr>::apply_on(std::basic_ios<_CharT, _Traits>&, boost::io::detail::locale_t*) const’:
/usr/include/boost/format/internals.hpp:119: error: ‘const class boost::optional<std::locale>’ has no member named ‘get’
/usr/include/boost/format/format_implementation.hpp: In member function ‘boost::io::detail::locale_t boost::basic_format<Ch, Tr, Alloc>::getloc() const’:
/usr/include/boost/format/format_implementation.hpp:56: error: ‘const class boost::optional<std::locale>’ has no member named ‘get’
/usr/include/boost/optional/optional.hpp: In member function ‘void boost::optional_detail::optional_base<T>::destroy_impl(mpl_::false_) [with T = std::locale]’:
/usr/include/boost/optional/optional.hpp:362:   instantiated from ‘void boost::optional_detail::optional_base<T>::destroy() [with T = std::locale]’
/usr/include/boost/optional/optional.hpp:208:   instantiated from ‘boost::optional_detail::optional_base<T>::~optional_base() [with T = std::locale]’
/usr/include/boost/optional/optional.hpp:471:   instantiated from ‘boost::optional<T>::~optional() [with T = std::locale]’
/usr/include/boost/format/format_fwd.hpp:30:   instantiated from here
/usr/include/boost/optional/optional.hpp:388: error: ‘get_ptr_impl’ was not declared in this scope


Regards,
Roger

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: powerpc (ppc)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.14.5
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)

Versions of packages g++-4.0 depends on:
ii  gcc-4.0                       4.0.2-5    The GNU C compiler
ii  gcc-4.0-base                  4.0.2-5    The GNU Compiler Collection (base 
ii  libc6                         2.3.5-9    GNU C Library: Shared libraries an
ii  libstdc++6-4.0-dev            4.0.2-5    The GNU Standard C++ Library v3 (d

g++-4.0 recommends no packages.

-- no debconf information



Reply to: