diff --git a/gcc/config/x-linux b/gcc/config/x-linux
deleted file mode 100644
index e4aa040..0000000
--- a/gcc/config/x-linux
+++ /dev/null
@@ -1,4 +0,0 @@
-host-linux.o : $(srcdir)/config/host-linux.c $(CONFIG_H) $(SYSTEM_H) \
-  coretypes.h hosthooks.h hosthooks-def.h $(HOOKS_H)
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-		$(srcdir)/config/host-linux.c
diff --git a/gcc/config/x-solaris b/gcc/config/x-solaris
deleted file mode 100644
index 59c7bf6..0000000
--- a/gcc/config/x-solaris
+++ /dev/null
@@ -1,4 +0,0 @@
-host-solaris.o : $(srcdir)/config/host-solaris.c $(CONFIG_H) $(SYSTEM_H) \
-  coretypes.h hosthooks.h hosthooks-def.h $(HOOKS_H)
-	$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
-		$(srcdir)/config/host-solaris.c
diff --git a/gcc/testsuite/ada/acats/support/impbit.adb b/gcc/testsuite/ada/acats/support/impbit.adb
deleted file mode 100644
index 5e189b0..0000000
--- a/gcc/testsuite/ada/acats/support/impbit.adb
+++ /dev/null
@@ -1,6 +0,0 @@
-with System;
-with Ada.Text_IO;
-procedure Impbit is
-begin
-   Ada.Text_IO.Put_Line (System.Address'Size'Img);
-end Impbit;
diff --git a/gcc/testsuite/g++.dg/lookup/crash5.C b/gcc/testsuite/g++.dg/lookup/crash5.C
deleted file mode 100644
index 6584ee6..0000000
--- a/gcc/testsuite/g++.dg/lookup/crash5.C
+++ /dev/null
@@ -1,9 +0,0 @@
-// { dg-do compile }
-//
-// PR 17618
-
-void foo()
-{
-    p; // { dg-error "not declared" }
-    (void*) p;
-}
diff --git a/gcc/testsuite/g++.dg/lookup/forscope2.C b/gcc/testsuite/g++.dg/lookup/forscope2.C
deleted file mode 100644
index 1fed957..0000000
--- a/gcc/testsuite/g++.dg/lookup/forscope2.C
+++ /dev/null
@@ -1,9 +0,0 @@
-// { dg-do compile }
-
-struct S {
-  void foo() {
-     for (_ptr; ;) {}  // { dg-error "not declared" }
-     _ptr = 0;
-    }
-};
-
diff --git a/gcc/testsuite/gcc.dg/nested-redef-1.c b/gcc/testsuite/gcc.dg/nested-redef-1.c
deleted file mode 100644
index 34b92d8..0000000
--- a/gcc/testsuite/gcc.dg/nested-redef-1.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Test diagnosis of nested tag redefinitions.  */
-/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
-/* { dg-do compile } */
-/* { dg-options "" } */
-
-struct s0 {
-  struct s0 { int a; } x; /* { dg-error "error: nested redefinition of 'struct s0'" } */
-};
-
-struct s1 {
-  const struct s1 { int b; } x; /* { dg-error "error: nested redefinition of 'struct s1'" } */
-};
-
-struct s2 {
-  struct s2 { int c; } *x; /* { dg-error "error: nested redefinition of 'struct s2'" } */
-};
-
-struct s3 {
-  struct s4 {
-    struct s5 {
-      struct s3 { int a; } **x; /* { dg-error "error: nested redefinition of 'struct s3'" } */
-    } y;
-  } z;
-};
-
-struct s6;
-struct s6 { struct s6 *p; };
-
-union u0 {
-  union u0 { int c; } *x; /* { dg-error "error: nested redefinition of 'union u0'" } */
-};
-
-enum e0 {
-  E0 = sizeof(enum e0 { E1 }) /* { dg-error "error: nested redefinition of 'enum e0'" } */
-};
-
-enum e1 {
-  E2 = sizeof(enum e2 { E2 }), /* { dg-error "error: redeclaration of enumerator 'E2'" } */
-  /* { dg-error "previous definition" "previous E2" { target *-*-* } 38 } */
-  E3
-};
-
-enum e3;
-enum e3 { E4 = 0 };
diff --git a/gcc/testsuite/gcc.dg/pr11459-1.c b/gcc/testsuite/gcc.dg/pr11459-1.c
deleted file mode 100644
index 1edd94f..0000000
--- a/gcc/testsuite/gcc.dg/pr11459-1.c
+++ /dev/null
@@ -1,6 +0,0 @@
-/* -ansi -std=c99 should mean -std=c99, but the specs reordered the
-    options.  Bug 11459.  */
-/* { dg-do compile } */
-/* { dg-options "-ansi -std=c99 -pedantic" } */
-
-long long i;
diff --git a/gcc/testsuite/gcc.dg/pr17188-1.c b/gcc/testsuite/gcc.dg/pr17188-1.c
deleted file mode 100644
index 634e60c..0000000
--- a/gcc/testsuite/gcc.dg/pr17188-1.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* A redefinition of an empty struct should be diagnosed the same as a
-   redefinition of any other tag, but formerly only s2 and s4 were
-   diagnosed.  Bug 17188.  */
-/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
-/* { dg-do compile } */
-/* { dg-options "" } */
-
-struct s0 { };
-struct s0;
-struct s0 { }; /* { dg-error "error: redefinition of 'struct s0'" } */
-
-struct s1 { };
-struct s1 { }; /* { dg-error "error: redefinition of 'struct s1'" } */
-
-struct s2 { int a : 1; };
-struct s2 { int a : 1; }; /* { dg-error "error: redefinition of 'struct s2'" } */
-
-struct s3 { };
-struct s3 { int a : 1; }; /* { dg-error "error: redefinition of 'struct s3'" } */
-
-struct s4 { int a : 1; };
-struct s4 { }; /* { dg-error "error: redefinition of 'struct s4'" } */
-
-struct s5 { int a : 1; };
-struct s5;
-
-struct s6;
-struct s6 { int a : 1; };
-
-struct s7;
-struct s7 { };
diff --git a/gcc/testsuite/gcc.dg/switch-4.c b/gcc/testsuite/gcc.dg/switch-4.c
deleted file mode 100644
index f2d8530..0000000
--- a/gcc/testsuite/gcc.dg/switch-4.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* PR middle-end/17657 */
-/* { dg-do compile } */
-/* { dg-options "-O2" } */
-
-extern signed char foo(int);
-
-void bar (void)
-{
-  signed char tmp = foo (0);
-  int t1 = tmp;
-  switch (t1)
-    {
-    case 1: foo (1); break;
-    case 2: foo (2); break;
-    case 3: foo (3); break;
-    case 4: foo (4); break;
-    case 5: foo (5); break;
-    case 6: foo (6); break;
-    case 7: foo (7); break;
-    case 255: foo (8); break;
-    default: break;
-    }
-}
-
