From 180d63457b8288c3d3672510a6ac977d5b2d05fc Mon Sep 17 00:00:00 2001 From: John Maddock Date: Wed, 13 Nov 2002 12:19:31 +0000 Subject: [PATCH] Added new config macro test cases, removed old testing script (use bjam instead). [SVN r16222] --- configure | 176 +++++++++++++-------------------- test/Jamfile | 8 +- test/boost_has_nrvo.ipp | 52 ++++++++++ test/boost_no_ded_typename.ipp | 38 +++++++ test/config_test.cpp | 14 ++- test/has_nrvo_fail.cpp | 35 +++++++ test/has_nrvo_pass.cpp | 35 +++++++ test/no_ded_typename_fail.cpp | 35 +++++++ test/no_ded_typename_pass.cpp | 35 +++++++ test/regression.cfg | 153 ---------------------------- tools/configure.in | 31 +++--- 11 files changed, 332 insertions(+), 280 deletions(-) create mode 100644 test/boost_has_nrvo.ipp create mode 100644 test/boost_no_ded_typename.ipp create mode 100644 test/has_nrvo_fail.cpp create mode 100644 test/has_nrvo_pass.cpp create mode 100644 test/no_ded_typename_fail.cpp create mode 100644 test/no_ded_typename_pass.cpp delete mode 100644 test/regression.cfg diff --git a/configure b/configure index a02fd1a9..152b3569 100644 --- a/configure +++ b/configure @@ -2020,7 +2020,12 @@ echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6 echo "$as_me:$LINENO: checking $title " >&5 echo $ECHO_N "checking $title ... $ECHO_C" >&6 fi - cat >conftest.$ac_ext <<_ACEOF + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" @@ -2033,30 +2038,15 @@ echo $ECHO_N "checking $title ... $ECHO_C" >&6 namespace ${namespace} = empty_boost; #endif +int main(){ return ${namespace}::test(); } - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ - return ${namespace}::test(); - - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2066,21 +2056,29 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 echo "${ECHO_T}OK" >&6 else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 +( exit $ac_status ) echo "$as_me:$LINENO: result: Failed" >&5 echo "${ECHO_T}Failed" >&6 required_defs="$macroname $required_defs" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi if test $enable_test = 'yes'; then ac_ext=$use_ac_ext echo "$as_me:$LINENO: checking $title (fail expected) " >&5 echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" @@ -2093,30 +2091,15 @@ echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6 #error "this file should not compile" #endif +int main() { return ${namespace}::test(); } - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -return ${namespace}::test(); - - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2127,13 +2110,16 @@ echo "${ECHO_T}failed" >&6 required_undefs="$macroname $required_undefs" else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 +( exit $ac_status ) echo "$as_me:$LINENO: result: OK" >&5 echo "${ECHO_T}OK" >&6 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi fi @@ -2158,7 +2144,12 @@ for file in $boost_base/libs/config/test/boost_has*.cxx; do if test $enable_test = 'yes'; then echo "$as_me:$LINENO: checking $title (pass expected) " >&5 echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" @@ -2171,30 +2162,15 @@ echo $ECHO_N "checking $title (pass expected) ... $ECHO_C" >&6 namespace ${namespace} = empty_boost; #endif +int main(){ return ${namespace}::test(); } - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -return ${namespace}::test(); - - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2204,18 +2180,26 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 echo "${ECHO_T}OK" >&6 else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 +( exit $ac_status ) echo "$as_me:$LINENO: result: Failed" >&5 echo "${ECHO_T}Failed" >&6 required_undefs="$macroname $required_undefs" fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi echo "$as_me:$LINENO: checking $title (fail expected) " >&5 echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" @@ -2228,30 +2212,15 @@ echo $ECHO_N "checking $title (fail expected) ... $ECHO_C" >&6 #error "this file should not compile" #endif +int main(){ return ${namespace}::test(); } - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -return ${namespace}::test(); - - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2264,22 +2233,30 @@ echo "${ECHO_T}failed" >&6 else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 +( exit $ac_status ) echo "$as_me:$LINENO: result: OK" >&5 echo "${ECHO_T}OK" >&6 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi else ac_ext=$use_ac_ext echo "$as_me:$LINENO: checking $title" >&5 echo $ECHO_N "checking $title... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF + if test "$cross_compiling" = yes; then + { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling" >&5 +echo "$as_me: error: cannot run test program while cross compiling" >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" #include "confdefs.h" @@ -2288,30 +2265,15 @@ echo $ECHO_N "checking $title... $ECHO_C" >&6 #include "boost_$basename.cxx" +int main(){ return ${namespace}::test(); } - -#ifdef F77_DUMMY_MAIN -# ifdef __cplusplus - extern "C" -# endif - int F77_DUMMY_MAIN() { return 1; } -#endif -int -main () -{ -return ${namespace}::test(); - - ; - return 0; -} _ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext +rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? @@ -2324,15 +2286,18 @@ echo "${ECHO_T}Yes" >&6 else - echo "$as_me: failed program was:" >&5 + echo "$as_me: program exited with status $ac_status" >&5 +echo "$as_me: failed program was:" >&5 cat conftest.$ac_ext >&5 +( exit $ac_status ) echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi fi @@ -3054,4 +3019,5 @@ fi + diff --git a/test/Jamfile b/test/Jamfile index 3945832d..7685e532 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -1,6 +1,6 @@ # # Regression test Jamfile for boost configuration setup. -# This file was automatically generated on Fri Sep 13 12:04:55 2002, +# This file was automatically generated on Tue Nov 12 11:07:30 2002, # do not edit by hand... # subproject libs/config/test ; @@ -36,6 +36,9 @@ test-suite "BOOST_NO_CWCHAR" : test-suite "BOOST_NO_CWCTYPE" : [ run no_cwctype_pass.cpp ../../test/build/prg_exec_monitor ] [ link-fail no_cwctype_fail.cpp ../../test/build/prg_exec_monitor ] ; +test-suite "BOOST_DEDUCED_TYPENAME" : +[ run no_ded_typename_pass.cpp ../../test/build/prg_exec_monitor ] +[ link-fail no_ded_typename_fail.cpp ../../test/build/prg_exec_monitor ] ; test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" : [ run no_dep_nested_class_pass.cpp ../../test/build/prg_exec_monitor ] [ link-fail no_dep_nested_class_fail.cpp ../../test/build/prg_exec_monitor ] ; @@ -189,6 +192,9 @@ test-suite "BOOST_HAS_NANOSLEEP" : test-suite "BOOST_HAS_NL_TYPES_H" : [ run has_nl_types_h_pass.cpp ../../test/build/prg_exec_monitor ] [ link-fail has_nl_types_h_fail.cpp ../../test/build/prg_exec_monitor ] ; +test-suite "BOOST_HAS_NRVO" : +[ run has_nrvo_pass.cpp ../../test/build/prg_exec_monitor ] +[ link-fail has_nrvo_fail.cpp ../../test/build/prg_exec_monitor ] ; test-suite "BOOST_HAS_PARTIAL_STD_ALLOCATOR" : [ run has_part_alloc_pass.cpp ../../test/build/prg_exec_monitor ] [ link-fail has_part_alloc_fail.cpp ../../test/build/prg_exec_monitor ] ; diff --git a/test/boost_has_nrvo.ipp b/test/boost_has_nrvo.ipp new file mode 100644 index 00000000..49ee1348 --- /dev/null +++ b/test/boost_has_nrvo.ipp @@ -0,0 +1,52 @@ +// (C) Copyright John Maddock 2001. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// MACRO: BOOST_HAS_NRVO +// TITLE: Named return value optimisation. +// DESCRIPTION: Named return value optimisation. + + +namespace boost_has_nrvo +{ + +class test_class +{ +public: + test_class() {} + test_class(const test_class &other) + { + ++copy_count; + } + + static int copy_count; +}; + +int test_class::copy_count; + +test_class f() +{ + test_class nrv; + + return nrv; +} + +int test() +{ + test_class::copy_count=0; + + f(); + + return test_class::copy_count; +} + +} // namespace boost_has_nrvo + + + + + + + + diff --git a/test/boost_no_ded_typename.ipp b/test/boost_no_ded_typename.ipp new file mode 100644 index 00000000..d1136c46 --- /dev/null +++ b/test/boost_no_ded_typename.ipp @@ -0,0 +1,38 @@ +// (C) Copyright John Maddock and David Abrahams 2002. Permission to +// copy, use, modify, sell and distribute this software is granted +// provided this copyright notice appears in all copies. This +// software is provided "as is" without express or implied warranty, +// and with no claim as to its suitability for any purpose. + +// MACRO: BOOST_DEDUCED_TYPENAME +// TITLE: deduced typenames +// DESCRIPTION: Some compilers can't use the typename keyword in deduced contexts. + +#ifndef BOOST_DEDUCED_TYPENAME +#define BOOST_DEDUCED_TYPENAME typename +#endif + + +namespace boost_deduced_typename{ + +template +int f(T const volatile*, BOOST_DEDUCED_TYPENAME T::type* = 0) +{ + return 0; +} + +struct X { typedef int type; }; + +int test() +{ + return f((X*)0); +} + +} + + + + + + + diff --git a/test/config_test.cpp b/test/config_test.cpp index 104f5ec8..24e8db59 100644 --- a/test/config_test.cpp +++ b/test/config_test.cpp @@ -10,7 +10,7 @@ // Do not edit this file, it was generated automatically by // ../tools/generate from boost_*.cxx on -// Fri Sep 13 12:04:55 2002 +// Tue Nov 12 11:07:30 2002 #include #define BOOST_INCLUDE_MAIN @@ -57,6 +57,11 @@ namespace boost_no_cwchar = empty_boost; #else namespace boost_no_cwctype = empty_boost; #endif +#ifndef BOOST_DEDUCED_TYPENAME +#include "boost_no_ded_typename.cxx" +#else +namespace boost_deduced_typename = empty_boost; +#endif #ifndef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS #include "boost_no_dep_nested_class.cxx" #else @@ -312,6 +317,11 @@ namespace boost_has_nanosleep = empty_boost; #else namespace boost_has_nl_types_h = empty_boost; #endif +#ifdef BOOST_HAS_NRVO +#include "boost_has_nrvo.cxx" +#else +namespace boost_has_nrvo = empty_boost; +#endif #ifdef BOOST_HAS_PARTIAL_STD_ALLOCATOR #include "boost_has_part_alloc.cxx" #else @@ -424,6 +434,7 @@ int test_main( int, char *[] ) BOOST_TEST(0 == boost_no_exception_std_namespace::test()); BOOST_TEST(0 == boost_no_dependent_types_in_template_value_parameters::test()); BOOST_TEST(0 == boost_no_dependent_nested_derivations::test()); + BOOST_TEST(0 == boost_deduced_typename::test()); BOOST_TEST(0 == boost_no_cwctype::test()); BOOST_TEST(0 == boost_no_cwchar::test()); BOOST_TEST(0 == boost_no_cv_void_specializations::test()); @@ -446,6 +457,7 @@ int test_main( int, char *[] ) BOOST_TEST(0 == boost_has_pthread_mutexattr_settype::test()); BOOST_TEST(0 == boost_has_pthread_delay_np::test()); BOOST_TEST(0 == boost_has_partial_std_allocator::test()); + BOOST_TEST(0 == boost_has_nrvo::test()); BOOST_TEST(0 == boost_has_nl_types_h::test()); BOOST_TEST(0 == boost_has_nanosleep::test()); BOOST_TEST(0 == boost_has_ms_int64::test()); diff --git a/test/has_nrvo_fail.cpp b/test/has_nrvo_fail.cpp new file mode 100644 index 00000000..3c655362 --- /dev/null +++ b/test/has_nrvo_fail.cpp @@ -0,0 +1,35 @@ + +// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// Test file for macro BOOST_HAS_NRVO +// This file should not compile, if it does then +// BOOST_HAS_NRVO may be defined. +// see boost_has_nrvo.cxx for more details + +// Do not edit this file, it was generated automatically by +// ../tools/generate from boost_has_nrvo.cxx on +// Tue Nov 12 11:07:30 2002 + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_HAS_NRVO +#include "boost_has_nrvo.cxx" +#else +#error "this file should not compile" +#endif + +int cpp_main( int, char *[] ) +{ + return boost_has_nrvo::test(); +} + diff --git a/test/has_nrvo_pass.cpp b/test/has_nrvo_pass.cpp new file mode 100644 index 00000000..907d0a02 --- /dev/null +++ b/test/has_nrvo_pass.cpp @@ -0,0 +1,35 @@ + +// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// Test file for macro BOOST_HAS_NRVO +// This file should compile, if it does not then +// BOOST_HAS_NRVO should not be defined. +// see boost_has_nrvo.cxx for more details + +// Do not edit this file, it was generated automatically by +// ../tools/generate from boost_has_nrvo.cxx on +// Tue Nov 12 11:07:30 2002 + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifdef BOOST_HAS_NRVO +#include "boost_has_nrvo.cxx" +#else +namespace boost_has_nrvo = empty_boost; +#endif + +int cpp_main( int, char *[] ) +{ + return boost_has_nrvo::test(); +} + diff --git a/test/no_ded_typename_fail.cpp b/test/no_ded_typename_fail.cpp new file mode 100644 index 00000000..49cdb4f5 --- /dev/null +++ b/test/no_ded_typename_fail.cpp @@ -0,0 +1,35 @@ + +// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// Test file for macro BOOST_DEDUCED_TYPENAME +// This file should not compile, if it does then +// BOOST_DEDUCED_TYPENAME need not be defined. +// see boost_no_ded_typename.cxx for more details + +// Do not edit this file, it was generated automatically by +// ../tools/generate from boost_no_ded_typename.cxx on +// Tue Nov 12 11:07:30 2002 + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifdef BOOST_DEDUCED_TYPENAME +#include "boost_no_ded_typename.cxx" +#else +#error "this file should not compile" +#endif + +int cpp_main( int, char *[] ) +{ + return boost_deduced_typename::test(); +} + diff --git a/test/no_ded_typename_pass.cpp b/test/no_ded_typename_pass.cpp new file mode 100644 index 00000000..5f333966 --- /dev/null +++ b/test/no_ded_typename_pass.cpp @@ -0,0 +1,35 @@ + +// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and +// distribute this software is granted provided this copyright notice appears +// in all copies. This software is provided "as is" without express or implied +// warranty, and with no claim as to its suitability for any purpose. + +// Test file for macro BOOST_DEDUCED_TYPENAME +// This file should compile, if it does not then +// BOOST_DEDUCED_TYPENAME needs to be defined. +// see boost_no_ded_typename.cxx for more details + +// Do not edit this file, it was generated automatically by +// ../tools/generate from boost_no_ded_typename.cxx on +// Tue Nov 12 11:07:30 2002 + +// Must not have BOOST_ASSERT_CONFIG set; it defeats +// the objective of this file: +#ifdef BOOST_ASSERT_CONFIG +# undef BOOST_ASSERT_CONFIG +#endif + +#include +#include "test.hpp" + +#ifndef BOOST_DEDUCED_TYPENAME +#include "boost_no_ded_typename.cxx" +#else +namespace boost_deduced_typename = empty_boost; +#endif + +int cpp_main( int, char *[] ) +{ + return boost_deduced_typename::test(); +} + diff --git a/test/regression.cfg b/test/regression.cfg deleted file mode 100644 index cc9a4a07..00000000 --- a/test/regression.cfg +++ /dev/null @@ -1,153 +0,0 @@ -// -// regression test script for boost configuration setup -// -run libs/config/test/config_info.cpp -run libs/config/test/config_test.cpp -run libs/config/test/limits_test.cpp - -run libs/config/test/no_arg_dep_lookup_pass.cpp -link-fail libs/config/test/no_arg_dep_lookup_fail.cpp -run libs/config/test/no_auto_ptr_pass.cpp -link-fail libs/config/test/no_auto_ptr_fail.cpp -run libs/config/test/no_bcb_partial_spec_pass.cpp -link-fail libs/config/test/no_bcb_partial_spec_fail.cpp -run libs/config/test/no_ctype_functions_pass.cpp -link-fail libs/config/test/no_ctype_functions_fail.cpp -run libs/config/test/no_cv_spec_pass.cpp -link-fail libs/config/test/no_cv_spec_fail.cpp -run libs/config/test/no_cv_void_spec_pass.cpp -link-fail libs/config/test/no_cv_void_spec_fail.cpp -run libs/config/test/no_cwchar_pass.cpp -link-fail libs/config/test/no_cwchar_fail.cpp -run libs/config/test/no_cwctype_pass.cpp -link-fail libs/config/test/no_cwctype_fail.cpp -run libs/config/test/no_dep_nested_class_pass.cpp -link-fail libs/config/test/no_dep_nested_class_fail.cpp -run libs/config/test/no_dep_val_param_pass.cpp -link-fail libs/config/test/no_dep_val_param_fail.cpp -run libs/config/test/no_excep_std_pass.cpp -link-fail libs/config/test/no_excep_std_fail.cpp -run libs/config/test/no_exceptions_pass.cpp -link-fail libs/config/test/no_exceptions_fail.cpp -run libs/config/test/no_exp_func_tem_arg_pass.cpp -link-fail libs/config/test/no_exp_func_tem_arg_fail.cpp -run libs/config/test/no_func_tmp_order_pass.cpp -link-fail libs/config/test/no_func_tmp_order_fail.cpp -run libs/config/test/no_i64_limits_pass.cpp -link-fail libs/config/test/no_i64_limits_fail.cpp -run libs/config/test/no_inline_memb_init_pass.cpp -link-fail libs/config/test/no_inline_memb_init_fail.cpp -run libs/config/test/no_integral_int64_t_pass.cpp -link-fail libs/config/test/no_integral_int64_t_fail.cpp -run libs/config/test/no_iter_construct_pass.cpp -link-fail libs/config/test/no_iter_construct_fail.cpp -run libs/config/test/no_limits_pass.cpp -link-fail libs/config/test/no_limits_fail.cpp -run libs/config/test/no_limits_const_exp_pass.cpp -link-fail libs/config/test/no_limits_const_exp_fail.cpp -run libs/config/test/no_ll_limits_pass.cpp -link-fail libs/config/test/no_ll_limits_fail.cpp -run libs/config/test/no_mem_func_spec_pass.cpp -link-fail libs/config/test/no_mem_func_spec_fail.cpp -run libs/config/test/no_mem_tem_keyword_pass.cpp -link-fail libs/config/test/no_mem_tem_keyword_fail.cpp -run libs/config/test/no_mem_templ_frnds_pass.cpp -link-fail libs/config/test/no_mem_templ_frnds_fail.cpp -run libs/config/test/no_mem_templates_pass.cpp -link-fail libs/config/test/no_mem_templates_fail.cpp -run libs/config/test/no_ops_in_namespace_pass.cpp -link-fail libs/config/test/no_ops_in_namespace_fail.cpp -run libs/config/test/no_partial_spec_pass.cpp -link-fail libs/config/test/no_partial_spec_fail.cpp -run libs/config/test/no_priv_aggregate_pass.cpp -link-fail libs/config/test/no_priv_aggregate_fail.cpp -run libs/config/test/no_ptr_mem_const_pass.cpp -link-fail libs/config/test/no_ptr_mem_const_fail.cpp -run libs/config/test/no_sstream_pass.cpp -link-fail libs/config/test/no_sstream_fail.cpp -run libs/config/test/no_std_allocator_pass.cpp -link-fail libs/config/test/no_std_allocator_fail.cpp -run libs/config/test/no_std_distance_pass.cpp -link-fail libs/config/test/no_std_distance_fail.cpp -run libs/config/test/no_std_iter_traits_pass.cpp -link-fail libs/config/test/no_std_iter_traits_fail.cpp -run libs/config/test/no_std_iterator_pass.cpp -link-fail libs/config/test/no_std_iterator_fail.cpp -run libs/config/test/no_std_locale_pass.cpp -link-fail libs/config/test/no_std_locale_fail.cpp -run libs/config/test/no_std_messages_pass.cpp -link-fail libs/config/test/no_std_messages_fail.cpp -run libs/config/test/no_std_min_max_pass.cpp -link-fail libs/config/test/no_std_min_max_fail.cpp -run libs/config/test/no_std_oi_assign_pass.cpp -link-fail libs/config/test/no_std_oi_assign_fail.cpp -run libs/config/test/no_std_use_facet_pass.cpp -link-fail libs/config/test/no_std_use_facet_fail.cpp -run libs/config/test/no_std_wstreambuf_pass.cpp -link-fail libs/config/test/no_std_wstreambuf_fail.cpp -run libs/config/test/no_std_wstring_pass.cpp -link-fail libs/config/test/no_std_wstring_fail.cpp -run libs/config/test/no_stdc_namespace_pass.cpp -link-fail libs/config/test/no_stdc_namespace_fail.cpp -run libs/config/test/no_swprintf_pass.cpp -link-fail libs/config/test/no_swprintf_fail.cpp -run libs/config/test/no_template_template_pass.cpp -link-fail libs/config/test/no_template_template_fail.cpp -run libs/config/test/no_using_template_pass.cpp -link-fail libs/config/test/no_using_template_fail.cpp -run libs/config/test/no_void_returns_pass.cpp -link-fail libs/config/test/no_void_returns_fail.cpp -run libs/config/test/no_wchar_t_pass.cpp -link-fail libs/config/test/no_wchar_t_fail.cpp -run libs/config/test/has_2arg_use_facet_pass.cpp -link-fail libs/config/test/has_2arg_use_facet_fail.cpp -run libs/config/test/has_bethreads_pass.cpp -link-fail libs/config/test/has_bethreads_fail.cpp -run libs/config/test/has_clock_gettime_pass.cpp -link-fail libs/config/test/has_clock_gettime_fail.cpp -run libs/config/test/has_dirent_h_pass.cpp -link-fail libs/config/test/has_dirent_h_fail.cpp -run libs/config/test/has_ftime_pass.cpp -link-fail libs/config/test/has_ftime_fail.cpp -run libs/config/test/has_gettimeofday_pass.cpp -link-fail libs/config/test/has_gettimeofday_fail.cpp -run libs/config/test/has_hash_pass.cpp -link-fail libs/config/test/has_hash_fail.cpp -run libs/config/test/has_long_long_pass.cpp -link-fail libs/config/test/has_long_long_fail.cpp -run libs/config/test/has_macro_use_facet_pass.cpp -link-fail libs/config/test/has_macro_use_facet_fail.cpp -run libs/config/test/has_ms_int64_pass.cpp -link-fail libs/config/test/has_ms_int64_fail.cpp -run libs/config/test/has_nanosleep_pass.cpp -link-fail libs/config/test/has_nanosleep_fail.cpp -run libs/config/test/has_nl_types_h_pass.cpp -link-fail libs/config/test/has_nl_types_h_fail.cpp -run libs/config/test/has_part_alloc_pass.cpp -link-fail libs/config/test/has_part_alloc_fail.cpp -run libs/config/test/has_pthread_delay_np_pass.cpp -link-fail libs/config/test/has_pthread_delay_np_fail.cpp -run libs/config/test/has_pthread_ma_st_pass.cpp -link-fail libs/config/test/has_pthread_ma_st_fail.cpp -run libs/config/test/has_pthread_yield_pass.cpp -link-fail libs/config/test/has_pthread_yield_fail.cpp -run libs/config/test/has_pthreads_pass.cpp -link-fail libs/config/test/has_pthreads_fail.cpp -run libs/config/test/has_sched_yield_pass.cpp -link-fail libs/config/test/has_sched_yield_fail.cpp -run libs/config/test/has_sgi_type_traits_pass.cpp -link-fail libs/config/test/has_sgi_type_traits_fail.cpp -run libs/config/test/has_slist_pass.cpp -link-fail libs/config/test/has_slist_fail.cpp -run libs/config/test/has_stdint_h_pass.cpp -link-fail libs/config/test/has_stdint_h_fail.cpp -run libs/config/test/has_stlp_use_facet_pass.cpp -link-fail libs/config/test/has_stlp_use_facet_fail.cpp -run libs/config/test/has_unistd_h_pass.cpp -link-fail libs/config/test/has_unistd_h_fail.cpp -run libs/config/test/has_vc6_mem_templ_pass.cpp -link-fail libs/config/test/has_vc6_mem_templ_fail.cpp -run libs/config/test/has_vc_iterator_pass.cpp -link-fail libs/config/test/has_vc_iterator_fail.cpp -run libs/config/test/has_winthreads_pass.cpp -link-fail libs/config/test/has_winthreads_fail.cpp diff --git a/tools/configure.in b/tools/configure.in index 2df5de30..07cbbef0 100644 --- a/tools/configure.in +++ b/tools/configure.in @@ -155,7 +155,7 @@ for file in $boost_base/libs/config/test/boost_no*.cxx; do else AC_MSG_CHECKING($title ) fi - AC_TRY_LINK( + AC_TRY_RUN( [ #include #include "test.hpp" @@ -166,9 +166,7 @@ for file in $boost_base/libs/config/test/boost_no*.cxx; do namespace ${namespace} = empty_boost; #endif - ] - , - [ return ${namespace}::test(); ] +int main(){ return ${namespace}::test(); } ] , [AC_MSG_RESULT(OK)] , @@ -180,7 +178,7 @@ namespace ${namespace} = empty_boost; ac_ext=$use_ac_ext AC_MSG_CHECKING($title (fail expected) ) - AC_TRY_LINK( + AC_TRY_RUN( [ #include #include "test.hpp" @@ -191,9 +189,7 @@ namespace ${namespace} = empty_boost; #error "this file should not compile" #endif - ] - , - [return ${namespace}::test();] +int main() { return ${namespace}::test(); }] , [AC_MSG_RESULT(failed) required_undefs="$macroname $required_undefs"] @@ -223,7 +219,7 @@ for file in $boost_base/libs/config/test/boost_has*.cxx; do ac_ext=$use_ac_ext if test $enable_test = 'yes'; then AC_MSG_CHECKING($title (pass expected) ) - AC_TRY_LINK( + AC_TRY_RUN( [ #include #include "test.hpp" @@ -234,9 +230,7 @@ for file in $boost_base/libs/config/test/boost_has*.cxx; do namespace ${namespace} = empty_boost; #endif - ] - , - [return ${namespace}::test();] +int main(){ return ${namespace}::test(); }] , [AC_MSG_RESULT(OK)] , @@ -245,7 +239,7 @@ namespace ${namespace} = empty_boost; ) AC_MSG_CHECKING($title (fail expected) ) - AC_TRY_LINK( + AC_TRY_RUN( [ #include #include "test.hpp" @@ -256,9 +250,7 @@ namespace ${namespace} = empty_boost; #error "this file should not compile" #endif - ] - , - [return ${namespace}::test();] +int main(){ return ${namespace}::test(); }] , [ AC_MSG_RESULT(failed) @@ -274,16 +266,14 @@ namespace ${namespace} = empty_boost; ac_ext=$use_ac_ext AC_MSG_CHECKING($title) - AC_TRY_LINK( + AC_TRY_RUN( [ #include #include "test.hpp" #include "boost_$basename.cxx" - ] - , - [return ${namespace}::test();] +int main(){ return ${namespace}::test(); }] , [ AC_MSG_RESULT(Yes) @@ -416,4 +406,5 @@ fi +