load_lib libvtv-dg.exp load_gcc_lib scanlang.exp load_gcc_lib gcc-dg.exp global VTV_FLAGS set VTV_FLAGS [list {-O0} {-O2}] libvtv_init c++ set shlib_ext [get_shlib_extension] set lang_link_flags "-shared-libgcc -lstdc++" set lang_test_file_found 0 set lang_library_path "../libstdc++-v3/src/.libs" dg-init set blddir [lookfor_file [get_multilibs] libvtv] # Find the correct libstdc++ library to use. if { $blddir != "" } { # Look for a static libstdc++ first. if [file exists "${blddir}/${lang_library_path}/libstdc++.a"] { set lang_test_file "${lang_library_path}/libstdc++.a" set lang_test_file_found 1 # We may have a shared only build, so look for a shared libstdc++. } elseif [file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] { set lang_test_file "${lang_library_path}/libstdc++.${shlib_ext}" set lang_test_file_found 1 } else { puts "looking for ${blddir}/${lang_library_path}/libstdc++.${shlib_ext}" puts "No libstdc++ library found, will not execute c++ tests" } } elseif { [info exists GXX_UNDER_TEST] } { set lang_test_file_found 1 # Needs to exist for libvtv.exp. set lang_test_file "" } else { puts "GXX_UNDER_TEST not defined, will not execute c++ tests" } global srcdir if { $lang_test_file_found } { # Set the path for finding libstdc++. if { $blddir != "" } { set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}" } else { set ld_library_path "$always_ld_library_path" } append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST] set_ld_library_path_env_vars # Make sure we can find the libstdc++ header files. set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags" if { [file exists $flags_file] } { set libstdcxx_includes [exec sh $flags_file --build-includes] } else { set libstdcxx_includes "" } # Run the tests with -fvtable-verify=std foreach flags $VTV_FLAGS { foreach srcfile [lsort [glob -nocomplain ${srcdir}/libvtv.cc/*.cc]] { dg-runtest $srcfile "$flags -fvtable-verify=std" $libstdcxx_includes } foreach srcfile [lsort [glob -nocomplain ${srcdir}/libvtv.cc/@*.list]] { dg-runtest $srcfile "$flags -fvtable-verify=std" $libstdcxx_includes } } # Run the tests with -fvtable-verify=preinit foreach flags $VTV_FLAGS { foreach srcfile [lsort [glob -nocomplain ${srcdir}/libvtv.cc/*.cc]] { dg-runtest $srcfile "$flags -fvtable-verify=preinit" $libstdcxx_includes } foreach srcfile [lsort [glob -nocomplain ${srcdir}/libvtv.cc/@*.list]] { dg-runtest $srcfile "$flags -fvtable-verify=preinit" $libstdcxx_includes } } }