Boost logo

Boost Testing :

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

Four date_time library tests rely on undefined behaviour: - 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:



#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
      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$> cxx -V
Compaq C++ V7.1-006 for Compaq Tru64 UNIX V5.1B (Rev. 2650)
Compiler Driver V7.1-006 (cxx) cxx Driver> cxx -c x.cpp>

Boost-testing list run by mbergal at