re PR c++/15119 (internal compiler error: in substitute_placeholder_in_expr, at tree...
authorAndrew Pinski <pinskia@physics.uc.edu>
Mon, 26 Apr 2004 12:54:55 +0000 (12:54 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Mon, 26 Apr 2004 12:54:55 +0000 (05:54 -0700)
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

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/eh/cleanup3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/other/vararg-1.C [new file with mode: 0644]

index c7267d8..8760c5f 100644 (file)
@@ -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 (file)
index 0000000..79935de
--- /dev/null
@@ -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 (file)
index 0000000..f25606e
--- /dev/null
@@ -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; 
+}