Boost logo

Boost :

From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-01-29 17:24:29


Four date_time library tests rely on undefined behaviour: 17.4.3.6 - Other
functions [lib.res.on.functions]

-2- In particular, the effects are undefined in the following cases:
...
    o if an incomplete type (basic.types) is used as a template argument
      when instantiating a template component.

These tests fail on HP-UX/aCC because default STL on this platform -- Rogue
Wave library rw libstd v2.2 -- does not allow this usage (Rogue Wave library
on Tru64: rw libstd v2.0, as well as gnu libstdc++ and STLport, allow this).
Attached a reproducer.

In June 2006, I discussed this issue with Jeff Garland. I was going to look
at creating a patch, but did not have any chance. According to Jeff, "it
sounds like a major bit of work" and now it is, obviously, too late for
1.34. Besides, there is an enhancement request for Rogue Wave library (now
Apache stdcxx) to allow this usage, so, perhaps, there will be no need to
mess with the boost date_time library at all.

My understanding from a mail from the 1.34 release manager is that while
boost libraries' code is frozen for non-essential fixes, explicit failures
markup file can be updated. So, can the four date_time library tests below
be marked as expected failures on HP-UX/aCC (toolset name="acc") in both
1.34 and the HEAD:

    testdate_input_facet_dll
    testtime_input_facet
    testlocal_time_input_facet
    testdate_input_facet

Thanks,
  Boris

x.cpp
-----
#include <map>

struct string_parse_tree
{
  typedef std::multimap<char, string_parse_tree> ptree_coll;
  ptree_coll m_next_chars;
};

string_parse_tree x;

bash-2.03$ aCC -V
aCC: HP aC++/ANSI C B3910B A.06.10 [Mar 22 2006]
bash-2.03$ aCC -c x.cpp
"/opt/aCC/include_std/utility", line 100: error #2070: incomplete type is not
          allowed
      second_type second;
                  ^
          detected during:
...
bash-2.03$ aCC -c -I $STLPORT_ROOT/stlport x.cpp
bash-2.03$ g++ -c x.cpp
bash-2.03$

cxxosf.zko.hp.com> cxx -V
Compaq C++ V7.1-006 for Compaq Tru64 UNIX V5.1B (Rev. 2650)
Compiler Driver V7.1-006 (cxx) cxx Driver
cxxosf.zko.hp.com> cxx -c x.cpp
cxxosf.zko.hp.com>


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk