diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fe8a88bd316681d9719d25eb81fd03374faa8e58..9e8c392b340061da57cb415d1f3950396cfa7ab2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+	PR testsuite/47400
+	* doc/sourcebuild.texi (Require Support): Document
+	dg-require-ascii-locale.
+
 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
 
 	* doc/lto.texi (Write summary): Fix missing parentheses.
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 99d941c486e22b03eeaa1dbb828d518645810db7..f4a2807a1bf7537040c93f970b935c620b0df254 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
+@c Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011
 @c Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
@@ -1939,6 +1939,9 @@ take arguments could be replaced with effective-target keywords.
 @item dg-require-alias ""
 Skip the test if the target does not support the @samp{alias} attribute.
 
+@item dg-require-ascii-locale ""
+Skip the test if the host does not support an ASCII locale.
+
 @item dg-require-compat-dfp ""
 Skip this test unless both compilers in a @file{compat} testsuite
 support decimal floating point.
diff --git a/gcc/testsuite/gcc.dg/attr-alias-5.c b/gcc/testsuite/gcc.dg/attr-alias-5.c
index 554668d212f3e4418937d886b53d55f8e73eb02b..d22c286fc6585d0f4199bb6684cf0a1ff16c3495 100644
--- a/gcc/testsuite/gcc.dg/attr-alias-5.c
+++ b/gcc/testsuite/gcc.dg/attr-alias-5.c
@@ -3,6 +3,7 @@
 /* { dg-do compile } */
 /* { dg-options "-std=gnu99" } */
 /* { dg-require-alias "" } */
+/* { dg-require-ascii-locale "" } */
 
 void f0 (void) __attribute__((alias("\xa1"))); /* { dg-error "undefined symbol '\\\\241'" } */
 void f1 (void) __attribute__((alias("\u00e9"))); /* { dg-error "undefined symbol '\\\\U000000e9'" } */
diff --git a/gcc/testsuite/gcc.dg/ucnid-10.c b/gcc/testsuite/gcc.dg/ucnid-10.c
index bbcde1ff6052e4d8d0c6207a7915132d335d1f6f..317cbb113ac8c34b8a23b5515b4d20f7dc92ce97 100644
--- a/gcc/testsuite/gcc.dg/ucnid-10.c
+++ b/gcc/testsuite/gcc.dg/ucnid-10.c
@@ -2,6 +2,7 @@
    locale).  Test #pragma pack diagnostics.  */
 /* { dg-do compile } */
 /* { dg-options "-std=gnu99 -fextended-identifiers" } */
+/* { dg-require-ascii-locale "" } */
 
 #pragma pack(push)
 #pragma pack(pop, \u00f3) /* { dg-warning "pop, \\\\U000000f3.*push, \\\\U000000f3" } */
diff --git a/gcc/testsuite/gcc.dg/ucnid-13.c b/gcc/testsuite/gcc.dg/ucnid-13.c
index 8ec69fa3b930875e7d6de0879ca89a873219d5bf..942178994226fae15eda39146d053ff027fbe425 100644
--- a/gcc/testsuite/gcc.dg/ucnid-13.c
+++ b/gcc/testsuite/gcc.dg/ucnid-13.c
@@ -2,6 +2,7 @@
    locale).  Miscellaneous diagnostics.  */
 /* { dg-do compile } */
 /* { dg-options "-std=gnu99 -fextended-identifiers -Wpacked" } */
+/* { dg-require-ascii-locale "" } */
 
 int a __attribute__((\u00c0)); /* { dg-warning "'\\\\U000000c0' attribute directive ignored" } */
 
diff --git a/gcc/testsuite/gcc.dg/ucnid-7.c b/gcc/testsuite/gcc.dg/ucnid-7.c
index fe53a497ffa3686006e50eeb97eb40206f95d035..1dbcb9ac77b28c3282ac8f533569b9deb6308e2e 100644
--- a/gcc/testsuite/gcc.dg/ucnid-7.c
+++ b/gcc/testsuite/gcc.dg/ucnid-7.c
@@ -2,6 +2,7 @@
    locale).  */
 /* { dg-do compile } */
 /* { dg-options "-std=c99 -fextended-identifiers" } */
+/* { dg-require-ascii-locale "" } */
 
 void *p = &\u00e9; /* { dg-error "'\\\\U000000e9' undeclared" } */
 void *q = &\u1e00; /* { dg-error "'\\\\U00001e00' undeclared" } */
diff --git a/gcc/testsuite/gcc.dg/ucnid-8.c b/gcc/testsuite/gcc.dg/ucnid-8.c
index 4ec3eeba29f79e0354a9e8b7b7bb875d64a77614..ea2e051f04a656109ac1b8bda01e67572de30933 100644
--- a/gcc/testsuite/gcc.dg/ucnid-8.c
+++ b/gcc/testsuite/gcc.dg/ucnid-8.c
@@ -2,6 +2,7 @@
    locale).  Further tests of C front-end diagnostics.  */
 /* { dg-do compile } */
 /* { dg-options "-std=gnu99 -fextended-identifiers -Wvla" } */
+/* { dg-require-ascii-locale "" } */
 
 int a __attribute__((__mode__(\u00e9))); /* { dg-error "unknown machine mode '\\\\U000000e9'" } */
 struct s1 { int \u00e9 : 0; }; /* { dg-error "zero width for bit-field '\\\\U000000e9'" } */
@@ -11,4 +12,4 @@ void f (int b) { int \u00e9[b]; } /* { dg-warning "variable length array '\\\\U0
 void g (static int \u00e9); /* { dg-error "storage class specified for parameter '\\\\U000000e9'" } */
 
 struct s2 { int \u00e1; } \u00e9 = { { 0 } }; /* { dg-warning "braces around scalar initializer" } */
-/* { dg-warning "near initialization for '\\\\U000000e9\\.\\\\U000000e1'" "UCN diag" { target *-*-* } 13 } */
+/* { dg-warning "near initialization for '\\\\U000000e9\\.\\\\U000000e1'" "UCN diag" { target *-*-* } 14 } */
diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp
index 257c68e3bdbc912de75ce2b38573659f6b4f5bce..3a2c0dc11415af03b1c5485ebcb434b1f99c3004 100644
--- a/gcc/testsuite/lib/target-supports-dg.exp
+++ b/gcc/testsuite/lib/target-supports-dg.exp
@@ -1,5 +1,5 @@
-#   Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2008, 2009, 2010
-#   Free Software Foundation, Inc.
+#   Copyright (C) 1997, 1999, 2000, 2003, 2004, 2005, 2007, 2008, 2009, 2010,
+#   2011 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
@@ -138,6 +138,15 @@ proc dg-require-dll { args } {
     set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
 }
 
+# If this host does not support an ASCII locale, skip this test.
+
+proc dg-require-ascii-locale { args } {
+    if { ![ check_ascii_locale_available] } {
+	upvar dg-do-what dg-do-what
+        set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
+    }
+}
+
 proc dg-require-iconv { args } {
     if { ![ check_iconv_available ${args} ] } {
 	upvar dg-do-what dg-do-what
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 861fa751a2158a12380c78f997ab4b2e296e1824..02cb7acd9ee0c3294054aa909406ee9cda57eba6 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1,5 +1,5 @@
-#   Copyright (C) 1999, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-#    Free Software Foundation, Inc.
+#   Copyright (C) 1999, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2011 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
@@ -922,6 +922,17 @@ proc check_iconv_available { test_what } {
     }] $libiconv]
 }
 
+# Return 1 if an ASCII locale is supported on this host, 0 otherwise.
+
+proc check_ascii_locale_available { } {
+    if { ([ishost alpha*-dec-osf*] || [ishost mips-sgi-irix*]) } {
+	# Neither Tru64 UNIX nor IRIX support an ASCII locale.
+	return 0
+    } else {
+	return 1
+    }
+}
+
 # Return true if named sections are supported on this target.
 
 proc check_named_sections_available { } {