aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDanny Smith <dannysmith@users.sourceforge.net>2008-05-06 02:59:12 +0000
committerDanny Smith <dannysmith@gcc.gnu.org>2008-05-06 02:59:12 +0000
commitab1cde2399826caa3373eb981bad8b5cdbb57ee5 (patch)
tree672c6b5d84da75b05931884b93791362772bdc97 /gcc
parent0d07fcad0836b13aaa6141258c533bcc3a4e521e (diff)
downloadgcc-ab1cde2399826caa3373eb981bad8b5cdbb57ee5.zip
gcc-ab1cde2399826caa3373eb981bad8b5cdbb57ee5.tar.gz
gcc-ab1cde2399826caa3373eb981bad8b5cdbb57ee5.tar.bz2
target_supports.exp (check_effective_target_4byte_wchar_t): New proc.
* lib/target_supports.exp (check_effective_target_4byte_wchar_t): New proc. * gcc.dg/utf16-4.c: Use it. * gcc.dg/utf32-4.c: Use it. * g++.dg/ext/utf16-4.C: Use it. * gcc.dg/ext/utf32-4.C: Use it. From-SVN: r134971
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/g++.dg/ext/utf16-4.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/utf32-4.C2
-rw-r--r--gcc/testsuite/gcc.dg/utf16-4.c3
-rw-r--r--gcc/testsuite/gcc.dg/utf32-4.c2
-rw-r--r--gcc/testsuite/lib/target-supports.exp8
6 files changed, 23 insertions, 5 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a27c269..9adb755 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2008-05-06 Danny Smith <dannysmith@users.sourceforge.net>
+
+ * lib/target_supports.exp (check_effective_target_4byte_wchar_t):
+ New proc.
+ * gcc.dg/utf16-4.c: Use it.
+ * gcc.dg/utf32-4.c: Use it.
+ * g++.dg/ext/utf16-4.C: Use it.
+ * gcc.dg/ext/utf32-4.C: Use it.
+
2008-05-05 Danny Smith <dannysmith@users.sourceforge.net>
* gfortran.dg/dev_null.f90. Remove and replace with...
diff --git a/gcc/testsuite/g++.dg/ext/utf16-4.C b/gcc/testsuite/g++.dg/ext/utf16-4.C
index 0fb7459..21cdb53 100644
--- a/gcc/testsuite/g++.dg/ext/utf16-4.C
+++ b/gcc/testsuite/g++.dg/ext/utf16-4.C
@@ -13,6 +13,6 @@ const static char16_t c5 = U'\u2029';
const static char16_t c6 = U'\U00064321'; /* { dg-warning "implicitly truncated" } */
const static char16_t c7 = L'a';
const static char16_t c8 = L'\u2029';
-const static char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" } */
-
+const static char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" "" { target { 4byte_wchar_t } } 16 } */
+ /* { dg-warning "constant too long" "" { target { ! 4byte_wchar_t } } 16 } */
int main () {}
diff --git a/gcc/testsuite/g++.dg/ext/utf32-4.C b/gcc/testsuite/g++.dg/ext/utf32-4.C
index af2fa8d..5da2e82 100644
--- a/gcc/testsuite/g++.dg/ext/utf32-4.C
+++ b/gcc/testsuite/g++.dg/ext/utf32-4.C
@@ -13,6 +13,6 @@ const static char32_t c5 = u'\u2029';
const static char32_t c6 = u'\U00064321'; /* { dg-warning "constant too long" } */
const static char32_t c7 = L'a';
const static char32_t c8 = L'\u2029';
-const static char32_t c9 = L'\U00064321';
+const static char32_t c9 = L'\U00064321'; /* { dg-warning "constant too long" { target { ! 4byte_wchar_t } } } */
int main () {}
diff --git a/gcc/testsuite/gcc.dg/utf16-4.c b/gcc/testsuite/gcc.dg/utf16-4.c
index 812c8d2..86597b3 100644
--- a/gcc/testsuite/gcc.dg/utf16-4.c
+++ b/gcc/testsuite/gcc.dg/utf16-4.c
@@ -15,6 +15,7 @@ char16_t c5 = U'\u2029';
char16_t c6 = U'\U00064321'; /* { dg-warning "implicitly truncated" } */
char16_t c7 = L'a';
char16_t c8 = L'\u2029';
-char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" } */
+char16_t c9 = L'\U00064321'; /* { dg-warning "implicitly truncated" "" { target { 4byte_wchar_t } } 18 } */
+ /* { dg-warning "constant too long" "" { target { ! 4byte_wchar_t } } 18 } */
int main () {}
diff --git a/gcc/testsuite/gcc.dg/utf32-4.c b/gcc/testsuite/gcc.dg/utf32-4.c
index dd05a9a..48d84fd 100644
--- a/gcc/testsuite/gcc.dg/utf32-4.c
+++ b/gcc/testsuite/gcc.dg/utf32-4.c
@@ -15,6 +15,6 @@ char32_t c5 = u'\u2029';
char32_t c6 = u'\U00064321'; /* { dg-warning "constant too long" } */
char32_t c7 = L'a';
char32_t c8 = L'\u2029';
-char32_t c9 = L'\U00064321';
+char32_t c9 = L'\U00064321'; /* { dg-warning "constant too long" { target { ! 4byte_wchar_t } } } */
int main () {}
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 5309ee2..e071934 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -2352,3 +2352,11 @@ proc check_effective_target_c99_runtime { } {
$contents [add_options_for_c99_runtime ""]
}]
}
+
+# Return 1 if target wchar_t is at least 4 bytes.
+
+proc check_effective_target_4byte_wchar_t { } {
+ return [check_no_compiler_messages 4byte_wchar_t object {
+ int dummy[sizeof (wchar_t) >= 4 ? 1 : -1];
+ }]
+}