From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-01-29 17:24:29
Four date_time library tests rely on undefined behaviour: 22.214.171.124 - Other
-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:
typedef std::multimap<char, string_parse_tree> ptree_coll;
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
bash-2.03$ aCC -c -I $STLPORT_ROOT/stlport x.cpp
bash-2.03$ g++ -c x.cpp
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk