aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2018-10-17 13:56:05 +0000
committerDavid Malcolm <dmalcolm@gcc.gnu.org>2018-10-17 13:56:05 +0000
commit033eb5671769a4c681a44aad08a454e667e08502 (patch)
tree22495cece5c3fb48c8d36f59f8984d9d1d560d84
parente8f1d5cb7c9fdf367a11bd939aac73d4e85265e5 (diff)
downloadgcc-033eb5671769a4c681a44aad08a454e667e08502.zip
gcc-033eb5671769a4c681a44aad08a454e667e08502.tar.gz
gcc-033eb5671769a4c681a44aad08a454e667e08502.tar.bz2
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
-rw-r--r--gcc/ChangeLog13
-rw-r--r--gcc/Makefile.in52
-rw-r--r--gcc/ada/gcc-interface/Make-lang.in3
-rw-r--r--gcc/brig/ChangeLog4
-rw-r--r--gcc/brig/Make-lang.in3
-rw-r--r--gcc/c/ChangeLog7
-rw-r--r--gcc/c/Make-lang.in32
-rwxr-xr-xgcc/configure12
-rw-r--r--gcc/configure.ac7
-rw-r--r--gcc/cp/ChangeLog7
-rw-r--r--gcc/cp/Make-lang.in26
-rw-r--r--gcc/fortran/ChangeLog4
-rw-r--r--gcc/fortran/Make-lang.in3
-rw-r--r--gcc/go/ChangeLog4
-rw-r--r--gcc/go/Make-lang.in3
-rw-r--r--gcc/jit/ChangeLog4
-rw-r--r--gcc/jit/Make-lang.in3
-rw-r--r--gcc/lto/ChangeLog4
-rw-r--r--gcc/lto/Make-lang.in3
-rw-r--r--gcc/objc/ChangeLog4
-rw-r--r--gcc/objc/Make-lang.in3
-rw-r--r--gcc/objcp/ChangeLog4
-rw-r--r--gcc/objcp/Make-lang.in3
23 files changed, 159 insertions, 49 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6cfaac1..1332e08 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 116ed6e..52240d1 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -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
-
-# 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) $@
+# 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.
-# 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.
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 4866c2a..5602092 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -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
diff --git a/gcc/brig/ChangeLog b/gcc/brig/ChangeLog
index f8749b4..18f2269 100644
--- a/gcc/brig/ChangeLog
+++ b/gcc/brig/ChangeLog
@@ -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
diff --git a/gcc/brig/Make-lang.in b/gcc/brig/Make-lang.in
index 8799aa7..07c038c 100644
--- a/gcc/brig/Make-lang.in
+++ b/gcc/brig/Make-lang.in
@@ -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
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 720aadc..4807a32 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -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.
diff --git a/gcc/c/Make-lang.in b/gcc/c/Make-lang.in
index 180923f..bfae6fd 100644
--- a/gcc/c/Make-lang.in
+++ b/gcc/c/Make-lang.in
@@ -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
diff --git a/gcc/configure b/gcc/configure
index 5638601..fb1c707 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -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.
@@ -29476,6 +29483,7 @@ fi
+
# Echo link setup.
if test x${build} = x${host} ; then
if test x${host} = x${target} ; then
diff --git a/gcc/configure.ac b/gcc/configure.ac
index c5c33af..3b70d53 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -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)
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 99595d9..c04dbe8 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -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
diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in
index fa8c1e6..e358b76 100644
--- a/gcc/cp/Make-lang.in
+++ b/gcc/cp/Make-lang.in
@@ -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.
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index ffc8629..962f7fb 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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
diff --git a/gcc/fortran/Make-lang.in b/gcc/fortran/Make-lang.in
index 62f652e..5eff00b 100644
--- a/gcc/fortran/Make-lang.in
+++ b/gcc/fortran/Make-lang.in
@@ -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 \
diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog
index afb0a7d..6fe4b3c 100644
--- a/gcc/go/ChangeLog
+++ b/gcc/go/ChangeLog
@@ -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
diff --git a/gcc/go/Make-lang.in b/gcc/go/Make-lang.in
index 021250a..e8656cb 100644
--- a/gcc/go/Make-lang.in
+++ b/gcc/go/Make-lang.in
@@ -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
diff --git a/gcc/jit/ChangeLog b/gcc/jit/ChangeLog
index 40dbde6..4e0c6e4 100644
--- a/gcc/jit/ChangeLog
+++ b/gcc/jit/ChangeLog
@@ -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.
diff --git a/gcc/jit/Make-lang.in b/gcc/jit/Make-lang.in
index 280c094..e82f945 100644
--- a/gcc/jit/Make-lang.in
+++ b/gcc/jit/Make-lang.in
@@ -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
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index f997f03..c0e9f1c 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -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
diff --git a/gcc/lto/Make-lang.in b/gcc/lto/Make-lang.in
index 4695077..2cc3619 100644
--- a/gcc/lto/Make-lang.in
+++ b/gcc/lto/Make-lang.in
@@ -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:
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 5eeec72..ebff744 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -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
diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in
index 49b7a9f..909a774 100644
--- a/gcc/objc/Make-lang.in
+++ b/gcc/objc/Make-lang.in
@@ -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).
diff --git a/gcc/objcp/ChangeLog b/gcc/objcp/ChangeLog
index b8a9793..26de7cb 100644
--- a/gcc/objcp/ChangeLog
+++ b/gcc/objcp/ChangeLog
@@ -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.
diff --git a/gcc/objcp/Make-lang.in b/gcc/objcp/Make-lang.in
index 5a03999..c98286b 100644
--- a/gcc/objcp/Make-lang.in
+++ b/gcc/objcp/Make-lang.in
@@ -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).