|
Boost Testing : |
From: Boris Gubenko (Boris.Gubenko_at_[hidden])
Date: 2007-02-27 18:51:14
Can the test be marked expected failure before 1.34 completely
freezes? Is there anything I can do to expedite the process?
Thanks,
Boris
----- Original Message -----
From: "Boris Gubenko" <Boris.Gubenko_at_[hidden]>
To: "Running Boost regression tests" <boost-testing_at_[hidden]>
Cc: "Dave Abrahams" <dave_at_[hidden]>; "Boris Gubenko"
<Boris.Gubenko_at_[hidden]>
Sent: Friday, February 16, 2007 6:55 PM
Subject: [Boost-testing] [python] marking data_members expected failure
onHP-UX/aCC6
>I realize that regardless of whether the aCC6-specific patch for
> [python]data_members.hpp in the attached mail is acceptable, it is,
> probably, too late for 1.34 for a non-release platform.
>
> Given this, can python library test data_members be marked as expected
> failure for HP-UX/aCC6 (toolset "acc") in both 1.34 and HEAD with the
> following remark (feel free to edit it as you see fit):
>
> "This test assumes standard-compliant dependent template name lookup which
> is available with aCC6 only in strict ansi mode. Since on HP-UX/aCC6 boost
> testing is done in the default compilation mode, this test fails to
> compile on this platform."
>
> Thanks,
> Boris
>
> ----- Original Message -----
> From: "Boris Gubenko" <Boris.Gubenko_at_[hidden]>
> To: <boost_at_[hidden]>
> Cc: "Boris Gubenko" <Boris.Gubenko_at_[hidden]>
> Sent: Wednesday, January 10, 2007 8:32 PM
> Subject: [boost] [python] patch for data_members.hpp for HP-UX
>
>
>> With aCC6 on HP-UX, python library test data_members.cpp fails to compile
>> with "more than one instance of overloaded function matches the argument
>> list" error. x.cpp below is a reduced reproducer derived from
>> data_members.cpp.
>>
>> The reason it fails to compile is that by default, aCC6 disables standard-
>> compliant dependent template name lookup implemented by EDG in Version
>> 2.44. The program does compile, with both aCC6 and "bare" EDG Front End
>> Version 3.5, in strict ansi mode where "the 2-phase lookup of template
>> names is performed as required by the standard" or when standard lookup
>> is explicitly requested via -dep_name option -- see below. Other EDG-based
>> compilers exhibit similar behaviour, in particular, Comeau C/C++ 4.3.8
>> and Intel's icc 9.0.
>>
>> Attached aCC6-specific patch for data_members.hpp disambigues function
>> call in question by casting the argument, similar to the cast under the
>> WORKAROUND macro in x.cpp below.
>>
>> With the attached patch, test data_members passes on HP-UX. I also
>> verified, that the patch does not cause any regressions. Please apply it
>> to CVS HEAD and the RC branch.
>>
>> Thanks,
>> Boris
>>
>> x.cpp
>> -----
>> namespace detail
>> {
>> struct not_specified {};
>>
>> template <class D, class Policies>
>> void make_getter(D* d, Policies const& policies, int);
>>
>> template <class D>
>> void make_getter(D* d, not_specified policy, long)
>> {
>> #ifdef WORKAROUND
>> detail::make_getter(d, static_cast<not_specified const&>(policy), 0);
>> #else
>> detail::make_getter(d, policy, 0);
>> #endif
>> }
>>
>> template <class D, class P>
>> void make_getter(D& d, P& p, ...);
>> } // namespace detail
>>
>> template <class D>
>> inline void make_getter(D const& d)
>> {
>> detail::make_getter(d, detail::not_specified(), 0L);
>> }
>>
>> const int i = 0;
>>
>> void compilability_test()
>> {
>> make_getter(&i);
>> }
>>
>> cxxosf.zko.hp.com> eccp --version -c x.cpp
>> Edison Design Group C/C++ Front End, version 3.5 (Dec 20 2004 13:57:48)
>> Copyright 1988-2004 Edison Design Group, Inc.
>>
>> "x.cpp", line 11: error: more than one instance of overloaded function
>> "detail::make_getter" matches the argument list:
>> function template
>> "void detail::make_getter(D *, const Policies &, int)"
>> function template "void detail::make_getter(D *,
>> detail::not_specified, long)"
>> function template "void detail::make_getter(D &, P &, ...)"
>> argument types are: (const int *, detail::not_specified, int)
>> detail::make_getter(d, policy, 0);
>> ^
>> detected during instantiation of "void detail::make_getter(D *,
>> detail::not_specified, long) [with D=const int]"
>>
>> 1 error detected in the compilation of "x.cpp".
>> cxxosf.zko.hp.com> eccp -c --dep_name x.cpp
>> cxxosf.zko.hp.com>
>>
>> bash-2.03$ aCC -V
>> aCC: HP C/aC++ B3910B A.06.14 [Dec 21 2006]
>> bash-2.03$ aCC -c x.cpp
>> "x.cpp", line 11: error #2308: more than one instance of overloaded function
>> "detail::make_getter" matches the argument list:
>> function template
>> "void detail::make_getter(D *, const Policies &, int)"
>> function template "void detail::make_getter(D *,
>> detail::not_specified, long)"
>> function template "void detail::make_getter(D &, P &, ...)"
>> argument types are: (const int *, detail::not_specified, int)
>> detail::make_getter(d, policy, 0);
>> ^
>> detected during instantiation of "void detail::make_getter(D *,
>> detail::not_specified, long) [with D=const int]" at line
>> 21
>>
>> 1 error detected in the compilation of "x.cpp".
>> bash-2.03$ aCC -c +dep_name x.cpp
>> bash-2.03$
>>
>
>
> --------------------------------------------------------------------------------
>
>
>> _______________________________________________
>> Unsubscribe & other changes:
>> http://lists.boost.org/mailman/listinfo.cgi/boost
>
>
> _______________________________________________
> Boost-Testing mailing list
> Boost-Testing_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-testing
>
>