Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2008-08-25 17:47:44

With x86 linux gcc-4.0.1, I get this for the member_ccs test:

  member_ccs.cpp:17:5: error: #error "test not supported with this compiler/platform"

and the test is annotated thusly:

  Not all compilers/platforms implement nonstandard calling conventions.

  With GCC/x86 this failure reflects .

But the nonme the nonmember_ccs test *also* fails with the same error,
and this annotation:

  Not all compilers/platforms implement nonstandard calling conventions.

i.e. there is no reference to a GCC bug.


* The error message for member_ccs is inconsistent with the note about the
  gcc bug.

* The function types library documentation barely mentions "calling
  conventions" and doesn't explain what "nonstandard" means in this
  context. For example, does extern "C" count?

* Since I am running x86/GCC, the note about the GCC bug much more
  specific than the other part of the note, so I assumed that it
  applied. That would mean that my platform implements a nonstandard
  calling convention, but a compiler bug is causing the test to fail.

* However, that interpretation would be inconsistent with the annotation
  for nonmember_ccs.

* I suspect that my platform does not support nonstandard calling
  convention, and the bug only applies on platforms where GCC supports
  nonstandard calling conventions (e.g. Windows), and does not apply to
  me. If so, the annotation should be more specific about the platforms
  on which the note applies.

* The error message should be better, e.g.: "this platform does not
  support nonstandard calling conventions; the test is irrelevant here"

* A test that always succeeds when the platform doesn't support
  nonstandard calling conventions would yield far more reliable results
  than the overly general wildcard matching of failure annotations you
  have now, which makes a failure on any platform look as though it were
  expected in the testing chart.

Dave Abrahams
BoostPro Computing

Boost list run by bdawes at, gregod at, cpdaniel at, john at