aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDorit Naishlos <dorit@il.ibm.com>2005-02-20 20:32:41 +0000
committerDorit Nuzman <dorit@gcc.gnu.org>2005-02-20 20:32:41 +0000
commit237eaf79a5cb53340d8451e3379d6c483ec4f1aa (patch)
tree6afc7e05c074393a103861ad33c742c981d84043 /gcc
parent50c177f74466e46e2048d30c18856f9e6f9a4d2e (diff)
downloadgcc-237eaf79a5cb53340d8451e3379d6c483ec4f1aa.zip
gcc-237eaf79a5cb53340d8451e3379d6c483ec4f1aa.tar.gz
gcc-237eaf79a5cb53340d8451e3379d6c483ec4f1aa.tar.bz2
re PR tree-optimization/19951 (ICE in tree_split_edge, at tree-cfg.c:3199 with -ftree-vectorize)
PR tree-optimization/19951 * g++.dg/vect: New directory. * g++.dg/vect/vect.exp: New file. * g++.dg/vect/pr19951.cc: New testcase. * g++.dg/dg.exp: Also prune vectorizer tests. From-SVN: r95309
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/g++.dg/dg.exp1
-rw-r--r--gcc/testsuite/g++.dg/vect/pr19951.cc17
-rw-r--r--gcc/testsuite/g++.dg/vect/vect.exp95
4 files changed, 121 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bfcbe97..68594ec 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2005-02-20 Dorit Naishlos <dorit@il.ibm.com>
+
+ PR tree-optimization/19951
+ * g++.dg/vect: New directory.
+ * g++.dg/vect/vect.exp: New file.
+ * g++.dg/vect/pr19951.cc: New testcase.
+ * g++.dg/dg.exp: Also prune vectorizer tests.
+
2005-02-20 Zack Weinberg <zack@codesourcery.com>
PR 18785
diff --git a/gcc/testsuite/g++.dg/dg.exp b/gcc/testsuite/g++.dg/dg.exp
index f809f10..f4ec94c 100644
--- a/gcc/testsuite/g++.dg/dg.exp
+++ b/gcc/testsuite/g++.dg/dg.exp
@@ -39,6 +39,7 @@ set tests [prune $tests $srcdir/$subdir/gcov/*]
set tests [prune $tests $srcdir/$subdir/pch/*]
set tests [prune $tests $srcdir/$subdir/special/*]
set tests [prune $tests $srcdir/$subdir/tls/*]
+set tests [prune $tests $srcdir/$subdir/vect/*]
# Main loop.
dg-runtest $tests "" $DEFAULT_CXXFLAGS
diff --git a/gcc/testsuite/g++.dg/vect/pr19951.cc b/gcc/testsuite/g++.dg/vect/pr19951.cc
new file mode 100644
index 0000000..bb6586c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/vect/pr19951.cc
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+
+struct A
+{
+ ~A();
+};
+
+void foo();
+
+void bar()
+{
+ A a;
+
+ foo();
+ for (;;)
+ foo();
+}
diff --git a/gcc/testsuite/g++.dg/vect/vect.exp b/gcc/testsuite/g++.dg/vect/vect.exp
new file mode 100644
index 0000000..cc2e4e3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/vect/vect.exp
@@ -0,0 +1,95 @@
+# Copyright (C) 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+# GCC testsuite that uses the 'dg.exp' driver.
+
+# There's a bunch of headers we need.
+if [is_remote host] {
+ foreach header [glob -nocomplain $srcdir/$subdir/*.{h,def} ] {
+ remote_download host $header
+ }
+}
+
+# Load support procs.
+load_lib g++-dg.exp
+load_lib target-supports.exp
+
+# If the target system supports vector instructions, the default action
+# for a test is 'run', otherwise it's 'compile'. Save current default.
+# Executing vector instructions on a system without hardware vector support
+# is also disabled by a call to check_vect, but disabling execution here is
+# more efficient.
+global dg-do-what-default
+set save-dg-do-what-default ${dg-do-what-default}
+
+# Set up flags used for tests that don't specify options.
+set DEFAULT_VECTCFLAGS ""
+
+# These flags are used for all targets.
+lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" \
+ "-ftree-vectorizer-verbose=3" "-fdump-tree-vect-stats"
+
+# Skip these tests for targets that do not support generating vector
+# code. Set additional target-dependent vector flags, which can be
+# overridden by using dg-options in individual tests.
+if [istarget "powerpc*-*-*"] {
+ # If there are powerpc targets to skip, do it here.
+
+ lappend DEFAULT_VECTCFLAGS "-maltivec"
+ if [check_vmx_hw_available] {
+ set dg-do-what-default run
+ } else {
+ if [is-effective-target ilp32] {
+ # Specify a cpu that supports VMX for compile-only tests.
+ lappend DEFAULT_VECTCFLAGS "-mcpu=7400"
+ }
+ set dg-do-what-default compile
+ }
+} elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
+ lappend DEFAULT_VECTCFLAGS "-msse2"
+ set dg-do-what-default run
+} elseif [istarget "mipsisa64*-*-*"] {
+ lappend DEFAULT_VECTCFLAGS "-mpaired-single"
+ set dg-do-what-default run
+} elseif [istarget "sparc*-*-*"] {
+ lappend DEFAULT_VECTCFLAGS "-mcpu=ultrasparc" "-mvis"
+ set dg-do-what-default run
+} elseif [istarget "alpha*-*-*"] {
+ lappend DEFAULT_VECTCFLAGS "-mmax"
+ if [check_alpha_max_hw_available] {
+ set dg-do-what-default run
+ } else {
+ set dg-do-what-default compile
+ }
+} elseif [istarget "ia64-*-*"] {
+ set dg-do-what-default run
+} else {
+ return
+}
+
+
+# Initialize `dg'.
+dg-init
+
+# Main loop.
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.{c,cc,S} ]] \
+ "" $DEFAULT_VECTCFLAGS
+
+# Clean up.
+set dg-do-what-default ${save-dg-do-what-default}
+
+# All done.
+dg-finish