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
This commit is contained in:
David Malcolm 2018-10-17 13:56:05 +00:00 committed by David Malcolm
parent e8f1d5cb7c
commit 033eb56717
23 changed files with 159 additions and 49 deletions

View File

@ -1,3 +1,16 @@
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>
* tree-vrp.c (extract_range_from_multiplicative_op): Remove

View File

@ -1935,62 +1935,20 @@ DEVNULL=$(if $(findstring mingw,$(build)),nul,/dev/null)
SELFTEST_FLAGS = -nostdinc $(DEVNULL) -S -o $(DEVNULL) \
-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
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,
# 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
# driver, frontend, or selftest data change.
.PHONY: selftest
# By default, only run the selftests within the C frontend
selftest: s-selftest-c
# Potentially run all selftest-<LANG>. The various <LANG>/Make-lang.in can
# 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:
.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
SELFTEST_TARGETS = @selftest_languages@
selftest: $(SELFTEST_TARGETS)
# Recompile all the language-independent object files.
# This is used only if the user explicitly asks for it.

View File

@ -930,6 +930,9 @@ check_gnat_parallelize = 1000
check-ada: check-acats check-gnat
check-ada-subtargets: check-acats-subtargets check-gnat-subtargets
# No ada-specific selftests
selftest-ada:
ACATSDIR = $(TESTSUITEDIR)/ada/acats
ACATSCMD = run_acats.sh

View File

@ -1,3 +1,7 @@
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-brig): New.
2018-07-20 Martin Sebor <msebor@redhat.com>
PR middle-end/82063

View File

@ -148,6 +148,9 @@ brig.srcman: doc/gccbrig.1
lang_checks += check-brig
# No brig-specific selftests
selftest-brig:
# Install hooks.
brig.install-common: installdirs

View File

@ -1,3 +1,10 @@
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>
* c-decl.c (warn_if_shadowing): Do not test DECL_FROM_INLINE.

View File

@ -110,6 +110,38 @@ c.tags: force
c.man:
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.
lang_checks += check-gcc
lang_checks_parallelized += check-gcc

12
gcc/configure vendored
View File

@ -656,6 +656,7 @@ TM_ENDIAN_CONFIG
tmake_file
xmake_file
cpp_install_dir
selftest_languages
check_languages
build_file_translate
build_xm_defines
@ -18509,7 +18510,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18512 "configure"
#line 18513 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -18615,7 +18616,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18618 "configure"
#line 18619 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -29344,6 +29345,12 @@ do
check_languages="$check_languages check-$language"
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
# lang.${target}. Only do so for selected languages.
@ -29474,6 +29481,7 @@ fi
# Echo link setup.

View File

@ -6194,6 +6194,12 @@ do
check_languages="$check_languages check-$language"
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
# lang.${target}. Only do so for selected languages.
@ -6277,6 +6283,7 @@ AC_SUBST(build_xm_include_list)
AC_SUBST(build_xm_defines)
AC_SUBST(build_file_translate)
AC_SUBST(check_languages)
AC_SUBST(selftest_languages)
AC_SUBST(cpp_install_dir)
AC_SUBST(xmake_file)
AC_SUBST(tmake_file)

View File

@ -1,3 +1,10 @@
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>
PR c++/84705

View File

@ -164,6 +164,32 @@ c++.man: doc/g++.1
c++.srcman: doc/g++.1
-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
# check targets. However, our DejaGNU framework requires 'check-g++' as its
# entry point. We feed the former to the latter here.

View File

@ -1,3 +1,7 @@
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-fortran): New.
2018-10-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/56386

View File

@ -170,6 +170,9 @@ lang_checks_parallelized += check-gfortran
# For description see the check_$lang_parallelize comment in gcc/Makefile.in.
check_gfortran_parallelize = 10000
# No fortran-specific selftests
selftest-fortran:
# GFORTRAN documentation.
GFORTRAN_TEXI = \
$(srcdir)/fortran/gfortran.texi \

View File

@ -1,3 +1,7 @@
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-go): New.
2018-09-25 Martin Liska <mliska@suse.cz>
* gofrontend/escape.cc (Gogo::analyze_escape): Remove

View File

@ -139,6 +139,9 @@ lang_checks += check-go
lang_checks_parallelized += check-go
check_go_parallelize = 10
# No go-specific selftests
selftest-go:
# Install hooks.
go.install-common: installdirs

View File

@ -1,3 +1,7 @@
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-jit): New.
2018-06-28 Martin Liska <mliska@suse.cz>
* jit-playback.c: Include opt-suggestions.h.

View File

@ -270,6 +270,9 @@ lang_checks_parallelized += check-jit
# we want them to be placed in different "buckets".
check_jit_parallelize = 10
# No jit-specific selftests
selftest-jit:
#
# Install hooks:
jit.install-common: installdirs

View File

@ -1,3 +1,7 @@
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-lto): New.
2018-08-29 Martin Liska <mliska@suse.cz>
PR bootstrap/87130

View File

@ -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.
check-lto:
# No LTO-specific selftests
selftest-lto:

View File

@ -1,3 +1,7 @@
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-objc): New.
2018-04-20 Martin Liska <mliska@suse.cz>
PR objc/85476

View File

@ -98,6 +98,9 @@ lang_checks += check-objc
lang_checks_parallelized += check-objc
check_objc_parallelize = 6
# No objc-c-specific selftests
selftest-objc:
#
# Install hooks:
# cc1obj is installed elsewhere as part of $(COMPILERS).

View File

@ -1,3 +1,7 @@
2018-10-17 David Malcolm <dmalcolm@redhat.com>
* Make-lang.in (selftest-obj-c++): New.
2018-05-07 Nathan Sidwell <nathan@acm.org>
* objcp-lang.c (objcxx_init_ts): Don't call init_shadowed_var_for_decl.

View File

@ -126,6 +126,9 @@ obj-c++.tags: force
lang_checks += check-obj-c++
# No objc-c++-specific selftests
selftest-obj-c++:
#
# Install hooks:
# cc1objplus is installed elsewhere as part of $(COMPILERS).