* lib/target_supports.exp (check_effective_target_4byte_wchar_t):
authordannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 May 2008 02:59:12 +0000 (02:59 +0000)
committerdannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 6 May 2008 02:59:12 +0000 (02:59 +0000)
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134971 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/utf16-4.C
gcc/testsuite/g++.dg/ext/utf32-4.C
gcc/testsuite/gcc.dg/utf16-4.c
gcc/testsuite/gcc.dg/utf32-4.c
gcc/testsuite/lib/target-supports.exp

index a27c269..9adb755 100644 (file)
@@ -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...
index 0fb7459..21cdb53 100644 (file)
@@ -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 () {}
index af2fa8d..5da2e82 100644 (file)
@@ -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 () {}
index 812c8d2..86597b3 100644 (file)
@@ -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 () {}
index dd05a9a..48d84fd 100644 (file)
@@ -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 () {}
index 5309ee2..e071934 100644 (file)
@@ -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];
+    }]
+}