diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2004-04-26 12:54:55 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2004-04-26 05:54:55 -0700 |
commit | 72fcb5d12bd7c7682bc91f187d7be596ba55bf9b (patch) | |
tree | 14c00f1c8d4db2b77deb207f31ffb5007574eb34 | |
parent | 35b7fa6a40c32d4f36cddcd69d9014b53a02ae0d (diff) | |
download | gcc-72fcb5d12bd7c7682bc91f187d7be596ba55bf9b.zip gcc-72fcb5d12bd7c7682bc91f187d7be596ba55bf9b.tar.gz gcc-72fcb5d12bd7c7682bc91f187d7be596ba55bf9b.tar.bz2 |
re PR c++/15119 (internal compiler error: in substitute_placeholder_in_expr, at tree.c:2155)
2004-04-26 Andrew Pinski <pinskia@physics.uc.edu>
PR c++/15119
* g++.dg/other/vararg-1.C: New test.
PR c++/4794
* g++.dg/eh/cleanup3.C: New test.
From-SVN: r81188
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/eh/cleanup3.C | 20 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/vararg-1.C | 20 |
3 files changed, 48 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c7267d8..8760c5f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2004-04-26 Andrew Pinski <pinskia@physics.uc.edu> + + PR c++/15119 + * g++.dg/other/vararg-1.C: New test. + + PR c++/4794 + * g++.dg/eh/cleanup3.C: New test. + 2004-04-24 Laurent GUERBY <laurent@guerby.net> * ada/acats/run_all.sh: Handle cd2a83c, cd2a91c (target_bit) diff --git a/gcc/testsuite/g++.dg/eh/cleanup3.C b/gcc/testsuite/g++.dg/eh/cleanup3.C new file mode 100644 index 0000000..79935de --- /dev/null +++ b/gcc/testsuite/g++.dg/eh/cleanup3.C @@ -0,0 +1,20 @@ +// C++/4794 +// This test used to hang in has_cleanups +// Contributed by: <fritz@intrinsity.com> +/* { dg-do compile } */ + +void foo (int a,int b,int c,int d,int e,int f,int g,int h,int i,int j,int k, + int l,int m,int n,int o,int p,int q,int r,int s,int t,int u,int v,int w, + int x,int y,int z,int aa,int ab,int ac) +{ +if (!((((ac != 0) + (d != 0) + (c != 0) + (f != 0) + (x != 0) + (y != 0) + + (z != 0) + (aa != 0) + (ab != 0) + (g != 0) + (b != 0) + (a != 0) + + (h != 0) + (e != 0) + (p != 0) + (q != 0) + (n != 0) + (r != 0) + + (o != 0) + (v != 0) + (w != 0) + (t != 0) + (u != 0) + (s != 0) + + (k != 0) + (l != 0) + (m != 0) + (i != 0) + (j != 0)) <= 1))) + { + return; + } +} + + diff --git a/gcc/testsuite/g++.dg/other/vararg-1.C b/gcc/testsuite/g++.dg/other/vararg-1.C new file mode 100644 index 0000000..f25606e --- /dev/null +++ b/gcc/testsuite/g++.dg/other/vararg-1.C @@ -0,0 +1,20 @@ +// C++/15119 +// This ICEd in substitute_placeholder_in_expr because it did not +// implement the 4 element trees. +// Orginal test by: <wanderer@rsu.ru> +// Reduced by: <bangerth@dealii.org> +/* { dg-do compile } */ + +template<typename T> +const T& xmin(const T& a, const T& b); + +void bar (char *, ...); + +char const* descs[4]; + +int main() { + int t = 1; + char buf[100]; + bar( buf, descs[ xmin(t-1,4) ], 0 ); + return 0; +} |