Commit 033eb567 by David Malcolm Committed by David Malcolm

Run selftests for C++ as well as C

gcc/ChangeLog:
	* Makefile.in (SELFTEST_TARGETS): New.
	(selftest) Change from s-selftest-c to $(SELFTEST_TARGETS).
	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to
	c/Make-lang.in.
	(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
	(selftest-c++-gdb, selftest-c++-valgrind): Move to
	cp/Make-lang.in.
	* configure: Regenerate.
	* configure.ac (selftest_languages): New.

gcc/brig/ChangeLog:
	* Make-lang.in (selftest-brig): New.

gcc/c/ChangeLog:
	* Make-lang.in (selftest-c): New.
	(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
	(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
	from gcc/Makefile.in.

gcc/cp/ChangeLog:
	* Make-lang.in (selftest-c++): New.
	(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
	(selftest-c++-gdb, selftest-c++-valgrind): Move here from
	gcc/Makefile.in.

gcc/fortran/ChangeLog:
	* Make-lang.in (selftest-fortran): New.

gcc/go/ChangeLog:
	* Make-lang.in (selftest-go): New.

gcc/jit/ChangeLog:
	* Make-lang.in (selftest-jit): New.

gcc/lto/ChangeLog:
	* Make-lang.in (selftest-lto): New.

gcc/objc/ChangeLog:
	* Make-lang.in (selftest-objc): New.

gcc/objcp/ChangeLog:
	* Make-lang.in (selftest-obj-c++): New.

From-SVN: r265240
parent e8f1d5cb
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Makefile.in (SELFTEST_TARGETS): New.
(selftest) Change from s-selftest-c to $(SELFTEST_TARGETS).
(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to
c/Make-lang.in.
(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
(selftest-c++-gdb, selftest-c++-valgrind): Move to
cp/Make-lang.in.
* configure: Regenerate.
* configure.ac (selftest_languages): New.
2018-10-17 Aldy Hernandez <aldyh@redhat.com> 2018-10-17 Aldy Hernandez <aldyh@redhat.com>
* tree-vrp.c (extract_range_from_multiplicative_op): Remove * tree-vrp.c (extract_range_from_multiplicative_op): Remove
...@@ -1935,62 +1935,20 @@ DEVNULL=$(if $(findstring mingw,$(build)),nul,/dev/null) ...@@ -1935,62 +1935,20 @@ DEVNULL=$(if $(findstring mingw,$(build)),nul,/dev/null)
SELFTEST_FLAGS = -nostdinc $(DEVNULL) -S -o $(DEVNULL) \ SELFTEST_FLAGS = -nostdinc $(DEVNULL) -S -o $(DEVNULL) \
-fself-test=$(srcdir)/testsuite/selftests -fself-test=$(srcdir)/testsuite/selftests
C_SELFTEST_FLAGS = -xc $(SELFTEST_FLAGS)
CPP_SELFTEST_FLAGS = -xc++ $(SELFTEST_FLAGS)
SELFTEST_DEPS = $(GCC_PASSES) stmp-int-hdrs $(srcdir)/testsuite/selftests SELFTEST_DEPS = $(GCC_PASSES) stmp-int-hdrs $(srcdir)/testsuite/selftests
C_SELFTEST_DEPS = cc1$(exeext) $(SELFTEST_DEPS)
CPP_SELFTEST_DEPS = cc1plus$(exeext) $(SELFTEST_DEPS)
# Run the selftests during the build once we have a driver and the frontend, # Run the selftests during the build once we have a driver and the frontend,
# so that self-test failures are caught as early as possible. # so that self-test failures are caught as early as possible.
# Use "s-selftest-FE" to ensure that we only run the selftests if the # Use "s-selftest-FE" to ensure that we only run the selftests if the
# driver, frontend, or selftest data change. # driver, frontend, or selftest data change.
.PHONY: selftest .PHONY: selftest
# By default, only run the selftests within the C frontend # Potentially run all selftest-<LANG>. The various <LANG>/Make-lang.in can
selftest: s-selftest-c # require the selftests to be run by defining their selftest-<LANG> as
# s-selftest-<LANG>. Otherwise, they should define it as empty.
# C selftests
s-selftest-c: $(C_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS)
$(STAMP) $@
# Convenience methods for running C selftests under gdb:
.PHONY: selftest-c-gdb
selftest-c-gdb: $(C_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS) \
-wrapper gdb,--args
.PHONY: selftest-gdb
selftest-gdb: selftest-c-gdb
# Convenience methods for running C selftests under valgrind:
.PHONY: selftest-c-valgrind
selftest-c-valgrind: $(C_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS) \
-wrapper valgrind,--leak-check=full
.PHONY: selftest-valgrind
selftest-valgrind: selftest-c-valgrind
# C++ selftests
s-selftest-c++: $(CPP_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(CPP_SELFTEST_FLAGS)
$(STAMP) $@
# Convenience method for running C++ selftests under gdb: SELFTEST_TARGETS = @selftest_languages@
.PHONY: selftest-c++-gdb selftest: $(SELFTEST_TARGETS)
selftest-c++-gdb: $(CPP_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(CPP_SELFTEST_FLAGS) \
-wrapper gdb,--args
# Convenience method for running C++ selftests under valgrind:
.PHONY: selftest-c++-valgrind
selftest-c++-valgrind: $(CPP_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(CPP_SELFTEST_FLAGS) \
-wrapper valgrind,--leak-check=full
# Recompile all the language-independent object files. # Recompile all the language-independent object files.
# This is used only if the user explicitly asks for it. # This is used only if the user explicitly asks for it.
......
...@@ -930,6 +930,9 @@ check_gnat_parallelize = 1000 ...@@ -930,6 +930,9 @@ check_gnat_parallelize = 1000
check-ada: check-acats check-gnat check-ada: check-acats check-gnat
check-ada-subtargets: check-acats-subtargets check-gnat-subtargets check-ada-subtargets: check-acats-subtargets check-gnat-subtargets
# No ada-specific selftests
selftest-ada:
ACATSDIR = $(TESTSUITEDIR)/ada/acats ACATSDIR = $(TESTSUITEDIR)/ada/acats
ACATSCMD = run_acats.sh ACATSCMD = run_acats.sh
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-brig): New.
2018-07-20 Martin Sebor <msebor@redhat.com> 2018-07-20 Martin Sebor <msebor@redhat.com>
PR middle-end/82063 PR middle-end/82063
......
...@@ -148,6 +148,9 @@ brig.srcman: doc/gccbrig.1 ...@@ -148,6 +148,9 @@ brig.srcman: doc/gccbrig.1
lang_checks += check-brig lang_checks += check-brig
# No brig-specific selftests
selftest-brig:
# Install hooks. # Install hooks.
brig.install-common: installdirs brig.install-common: installdirs
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-c): New.
(C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb)
(selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move here
from gcc/Makefile.in.
2018-10-02 Richard Biener <rguenther@suse.de> 2018-10-02 Richard Biener <rguenther@suse.de>
* c-decl.c (warn_if_shadowing): Do not test DECL_FROM_INLINE. * c-decl.c (warn_if_shadowing): Do not test DECL_FROM_INLINE.
......
...@@ -110,6 +110,38 @@ c.tags: force ...@@ -110,6 +110,38 @@ c.tags: force
c.man: c.man:
c.srcman: c.srcman:
# C selftests
# If C is enabled, require the selftests to be run for it
# at each stage of the build:
selftest-c: s-selftest-c
C_SELFTEST_FLAGS = -xc $(SELFTEST_FLAGS)
C_SELFTEST_DEPS = cc1$(exeext) $(SELFTEST_DEPS)
# Run the C selftests:
s-selftest-c: $(C_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS)
$(STAMP) $@
# Convenience methods for running C selftests under gdb:
.PHONY: selftest-c-gdb
selftest-c-gdb: $(C_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS) \
-wrapper gdb,--args
.PHONY: selftest-gdb
selftest-gdb: selftest-c-gdb
# Convenience methods for running C selftests under valgrind:
.PHONY: selftest-c-valgrind
selftest-c-valgrind: $(C_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(C_SELFTEST_FLAGS) \
-wrapper valgrind,--leak-check=full
.PHONY: selftest-valgrind
selftest-valgrind: selftest-c-valgrind
# List of targets that can use the generic check- rule and its // variant. # List of targets that can use the generic check- rule and its // variant.
lang_checks += check-gcc lang_checks += check-gcc
lang_checks_parallelized += check-gcc lang_checks_parallelized += check-gcc
......
...@@ -656,6 +656,7 @@ TM_ENDIAN_CONFIG ...@@ -656,6 +656,7 @@ TM_ENDIAN_CONFIG
tmake_file tmake_file
xmake_file xmake_file
cpp_install_dir cpp_install_dir
selftest_languages
check_languages check_languages
build_file_translate build_file_translate
build_xm_defines build_xm_defines
...@@ -18509,7 +18510,7 @@ else ...@@ -18509,7 +18510,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 18512 "configure" #line 18513 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
...@@ -18615,7 +18616,7 @@ else ...@@ -18615,7 +18616,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF cat > conftest.$ac_ext <<_LT_EOF
#line 18618 "configure" #line 18619 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
...@@ -29344,6 +29345,12 @@ do ...@@ -29344,6 +29345,12 @@ do
check_languages="$check_languages check-$language" check_languages="$check_languages check-$language"
done done
selftest_languages=
for language in $all_selected_languages
do
selftest_languages="$selftest_languages selftest-$language"
done
# We link each language in with a set of hooks, reached indirectly via # We link each language in with a set of hooks, reached indirectly via
# lang.${target}. Only do so for selected languages. # lang.${target}. Only do so for selected languages.
...@@ -29476,6 +29483,7 @@ fi ...@@ -29476,6 +29483,7 @@ fi
# Echo link setup. # Echo link setup.
if test x${build} = x${host} ; then if test x${build} = x${host} ; then
if test x${host} = x${target} ; then if test x${host} = x${target} ; then
......
...@@ -6194,6 +6194,12 @@ do ...@@ -6194,6 +6194,12 @@ do
check_languages="$check_languages check-$language" check_languages="$check_languages check-$language"
done done
selftest_languages=
for language in $all_selected_languages
do
selftest_languages="$selftest_languages selftest-$language"
done
# We link each language in with a set of hooks, reached indirectly via # We link each language in with a set of hooks, reached indirectly via
# lang.${target}. Only do so for selected languages. # lang.${target}. Only do so for selected languages.
...@@ -6277,6 +6283,7 @@ AC_SUBST(build_xm_include_list) ...@@ -6277,6 +6283,7 @@ AC_SUBST(build_xm_include_list)
AC_SUBST(build_xm_defines) AC_SUBST(build_xm_defines)
AC_SUBST(build_file_translate) AC_SUBST(build_file_translate)
AC_SUBST(check_languages) AC_SUBST(check_languages)
AC_SUBST(selftest_languages)
AC_SUBST(cpp_install_dir) AC_SUBST(cpp_install_dir)
AC_SUBST(xmake_file) AC_SUBST(xmake_file)
AC_SUBST(tmake_file) AC_SUBST(tmake_file)
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-c++): New.
(CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++)
(selftest-c++-gdb, selftest-c++-valgrind): Move here from
gcc/Makefile.in.
2018-10-17 Paolo Carlini <paolo.carlini@oracle.com> 2018-10-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/84705 PR c++/84705
......
...@@ -164,6 +164,32 @@ c++.man: doc/g++.1 ...@@ -164,6 +164,32 @@ c++.man: doc/g++.1
c++.srcman: doc/g++.1 c++.srcman: doc/g++.1
-cp -p $^ $(srcdir)/doc -cp -p $^ $(srcdir)/doc
# C++ selftests
# If C++ is enabled, require the selftests to be run for it
# at each stage of the build:
selftest-c++: s-selftest-c++
CPP_SELFTEST_DEPS = cc1plus$(exeext) $(SELFTEST_DEPS)
CPP_SELFTEST_FLAGS = -xc++ $(SELFTEST_FLAGS)
# Run the C++ selftests
s-selftest-c++: $(CPP_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(CPP_SELFTEST_FLAGS)
$(STAMP) $@
# Convenience method for running C++ selftests under gdb:
.PHONY: selftest-c++-gdb
selftest-c++-gdb: $(CPP_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(CPP_SELFTEST_FLAGS) \
-wrapper gdb,--args
# Convenience method for running C++ selftests under valgrind:
.PHONY: selftest-c++-valgrind
selftest-c++-valgrind: $(CPP_SELFTEST_DEPS)
$(GCC_FOR_TARGET) $(CPP_SELFTEST_FLAGS) \
-wrapper valgrind,--leak-check=full
# 'make check' in gcc/ looks for check-c++, as do all toplevel C++-related # 'make check' in gcc/ looks for check-c++, as do all toplevel C++-related
# check targets. However, our DejaGNU framework requires 'check-g++' as its # check targets. However, our DejaGNU framework requires 'check-g++' as its
# entry point. We feed the former to the latter here. # entry point. We feed the former to the latter here.
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-fortran): New.
2018-10-17 Paul Thomas <pault@gcc.gnu.org> 2018-10-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/56386 PR fortran/56386
......
...@@ -170,6 +170,9 @@ lang_checks_parallelized += check-gfortran ...@@ -170,6 +170,9 @@ lang_checks_parallelized += check-gfortran
# For description see the check_$lang_parallelize comment in gcc/Makefile.in. # For description see the check_$lang_parallelize comment in gcc/Makefile.in.
check_gfortran_parallelize = 10000 check_gfortran_parallelize = 10000
# No fortran-specific selftests
selftest-fortran:
# GFORTRAN documentation. # GFORTRAN documentation.
GFORTRAN_TEXI = \ GFORTRAN_TEXI = \
$(srcdir)/fortran/gfortran.texi \ $(srcdir)/fortran/gfortran.texi \
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-go): New.
2018-09-25 Martin Liska <mliska@suse.cz> 2018-09-25 Martin Liska <mliska@suse.cz>
* gofrontend/escape.cc (Gogo::analyze_escape): Remove * gofrontend/escape.cc (Gogo::analyze_escape): Remove
......
...@@ -139,6 +139,9 @@ lang_checks += check-go ...@@ -139,6 +139,9 @@ lang_checks += check-go
lang_checks_parallelized += check-go lang_checks_parallelized += check-go
check_go_parallelize = 10 check_go_parallelize = 10
# No go-specific selftests
selftest-go:
# Install hooks. # Install hooks.
go.install-common: installdirs go.install-common: installdirs
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-jit): New.
2018-06-28 Martin Liska <mliska@suse.cz> 2018-06-28 Martin Liska <mliska@suse.cz>
* jit-playback.c: Include opt-suggestions.h. * jit-playback.c: Include opt-suggestions.h.
......
...@@ -270,6 +270,9 @@ lang_checks_parallelized += check-jit ...@@ -270,6 +270,9 @@ lang_checks_parallelized += check-jit
# we want them to be placed in different "buckets". # we want them to be placed in different "buckets".
check_jit_parallelize = 10 check_jit_parallelize = 10
# No jit-specific selftests
selftest-jit:
# #
# Install hooks: # Install hooks:
jit.install-common: installdirs jit.install-common: installdirs
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-lto): New.
2018-08-29 Martin Liska <mliska@suse.cz> 2018-08-29 Martin Liska <mliska@suse.cz>
PR bootstrap/87130 PR bootstrap/87130
......
...@@ -86,3 +86,6 @@ lto1.fda: ../prev-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA) ...@@ -86,3 +86,6 @@ lto1.fda: ../prev-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA)
# LTO testing is done as part of C/C++/Fortran etc. testing. # LTO testing is done as part of C/C++/Fortran etc. testing.
check-lto: check-lto:
# No LTO-specific selftests
selftest-lto:
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-objc): New.
2018-04-20 Martin Liska <mliska@suse.cz> 2018-04-20 Martin Liska <mliska@suse.cz>
PR objc/85476 PR objc/85476
......
...@@ -98,6 +98,9 @@ lang_checks += check-objc ...@@ -98,6 +98,9 @@ lang_checks += check-objc
lang_checks_parallelized += check-objc lang_checks_parallelized += check-objc
check_objc_parallelize = 6 check_objc_parallelize = 6
# No objc-c-specific selftests
selftest-objc:
# #
# Install hooks: # Install hooks:
# cc1obj is installed elsewhere as part of $(COMPILERS). # cc1obj is installed elsewhere as part of $(COMPILERS).
......
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-obj-c++): New.
2018-05-07 Nathan Sidwell <nathan@acm.org> 2018-05-07 Nathan Sidwell <nathan@acm.org>
* objcp-lang.c (objcxx_init_ts): Don't call init_shadowed_var_for_decl. * objcp-lang.c (objcxx_init_ts): Don't call init_shadowed_var_for_decl.
......
...@@ -126,6 +126,9 @@ obj-c++.tags: force ...@@ -126,6 +126,9 @@ obj-c++.tags: force
lang_checks += check-obj-c++ lang_checks += check-obj-c++
# No objc-c++-specific selftests
selftest-obj-c++:
# #
# Install hooks: # Install hooks:
# cc1objplus is installed elsewhere as part of $(COMPILERS). # cc1objplus is installed elsewhere as part of $(COMPILERS).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment