diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9be0bd68814133a9ab4feb9dac76873e1adeb5c0..b0b3f4430d2c7e541cdb98c4434110d1261d8552 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,23 @@
+2003-07-17  Andrew Pinski <pinskia@physics.uc.edu>
+
+	PR c++/10476
+	* g++.dg/expr/crash-1.C: New test.
+
+	PR c++/11027
+	* g++.dg/template/init3.C: New test.
+
+	PR c++/8222
+	* g++.dg/template/non-dependent1.C: New test.
+
+	PR c++/11070
+	* g++.dg/template/non-dependent2.C: New test.
+
+	PR c++/11071
+	* g++.dg/template/non-dependent3.C: New test.
+
+	PR c++/9907
+	* g++.dg/template/sizeof5.C: New test.
+
 2003-07-17  Geoffrey Keating  <geoffk@apple.com>
 
 	PR 11498
diff --git a/gcc/testsuite/g++.dg/expr/crash-1.C b/gcc/testsuite/g++.dg/expr/crash-1.C
new file mode 100644
index 0000000000000000000000000000000000000000..d8d689fd67b0638bd6ab4e8d2e4fbf8181960db5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/expr/crash-1.C
@@ -0,0 +1,15 @@
+// C++ PR/10476
+// Origin: larsbj@gullik.net and bangerth@dealii.org
+
+
+struct X {
+  X();
+  X(const X& __str);
+};
+X const bar();
+void foo()
+{
+  X y;
+  (true ? y : bar());
+}
+
diff --git a/gcc/testsuite/g++.dg/template/init3.C b/gcc/testsuite/g++.dg/template/init3.C
new file mode 100644
index 0000000000000000000000000000000000000000..9799a206d28954e48356ea49bc84a1c06988f17f
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/init3.C
@@ -0,0 +1,11 @@
+// PR c++/11027
+
+template <class T>
+struct X {
+   typedef void (X::*pfun)();
+   static pfun p[];
+};
+
+template <class T>
+typename X<T>::pfun X<T>::p[] = {};
+
diff --git a/gcc/testsuite/g++.dg/template/non-dependent1.C b/gcc/testsuite/g++.dg/template/non-dependent1.C
new file mode 100644
index 0000000000000000000000000000000000000000..3fe5c33d7823d015ccbf80b74bd713d1f206b7cc
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/non-dependent1.C
@@ -0,0 +1,21 @@
+//PR c++/8222
+// Origin: giovannibajo@libero.it and setzersn@gmx.de
+
+// { dg-do run }
+
+struct Foo
+{
+    template <class>
+    void func() {}
+};
+template <class>
+void Bar(Foo* p)
+{
+    p->func<int>();
+}
+ 
+int main()
+{
+    Foo c;
+    Bar<int>(&c);
+}
diff --git a/gcc/testsuite/g++.dg/template/non-dependent2.C b/gcc/testsuite/g++.dg/template/non-dependent2.C
new file mode 100644
index 0000000000000000000000000000000000000000..3b073b47a2b6eeca72e0b8f0ba41a59b2d38f5b4
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/non-dependent2.C
@@ -0,0 +1,16 @@
+//PR c++/11070
+// Used to ICE
+// Origin: bangerth@dealii.org and rwgk@yahoo.com
+
+template <bool b> struct X {
+    template <typename T>
+    static int* execute(int* x) { return x; }
+};
+
+template <typename T> void foo() {
+  static bool const same = true;
+  X<same>::execute<int> (0);
+}
+
+template void foo<int> ();
+
diff --git a/gcc/testsuite/g++.dg/template/non-dependent3.C b/gcc/testsuite/g++.dg/template/non-dependent3.C
new file mode 100644
index 0000000000000000000000000000000000000000..ce18bf243db12c36ba144d134dd83b7fd2db801a
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/non-dependent3.C
@@ -0,0 +1,15 @@
+//PR c++/11071
+// Used to ICE
+// Origin: bangerth@dealii.org and rwgk@yahoo.com
+
+template <bool b> struct X {
+    template <typename T>
+    static int* execute(T* x) { return x; }
+};
+
+template <typename T> void foo() {
+  static bool const same = true;
+  X<same>::execute ((int*)0);
+}
+
+template void foo<int> ();
diff --git a/gcc/testsuite/g++.dg/template/sizeof5.C b/gcc/testsuite/g++.dg/template/sizeof5.C
new file mode 100644
index 0000000000000000000000000000000000000000..4096fed5329ccca978cb1dd2c2800be509e23e2c
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/sizeof5.C
@@ -0,0 +1,15 @@
+// PR c++/9907
+// Origin: nes@lrde.epita.fr
+// sizeof(foo()) was not considered constant.
+
+
+template <unsigned n> struct bar {};
+
+int foo();
+
+template <class T>
+void baz()
+{
+  bar<sizeof(foo())> b;
+}
+