Re: [PATCH] Fix gcc.dg/utf-array.c testcase

2019-01-21 Thread Jeff Law
On 1/21/19 9:00 AM, Tamar Christina wrote:
> Forwarding to list.
> 
>> -Original Message-
>> From: Tamar Christina
>> Sent: Monday, January 21, 2019 15:25
>> To: 'Jakub Jelinek' ; Jason Merrill 
>> Cc: gcc-patches@gcc.gnu.org
>> Subject: RE: [PATCH] Fix gcc.dg/utf-array.c testcase
>>
>> Hi,
>>
>> These fail on aarch64*-*-* and arm*-*-* too, but this patch fixes it.
>>
>> So gentle ping? 
ACK.  Please install, a goodly number of my testers tripped over this.
I don't like lots of red dots in my jenkins builds :-)

jeff


RE: [PATCH] Fix gcc.dg/utf-array.c testcase

2019-01-21 Thread Tamar Christina
Forwarding to list.

> -Original Message-
> From: Tamar Christina
> Sent: Monday, January 21, 2019 15:25
> To: 'Jakub Jelinek' ; Jason Merrill 
> Cc: gcc-patches@gcc.gnu.org
> Subject: RE: [PATCH] Fix gcc.dg/utf-array.c testcase
> 
> Hi,
> 
> These fail on aarch64*-*-* and arm*-*-* too, but this patch fixes it.
> 
> So gentle ping? 
> 
> Tamar
> 
> > -Original Message-
> > From: gcc-patches-ow...@gcc.gnu.org 
> On
> > Behalf Of Jakub Jelinek
> > Sent: Friday, January 18, 2019 23:02
> > To: Jason Merrill 
> > Cc: gcc-patches@gcc.gnu.org
> > Subject: [PATCH] Fix gcc.dg/utf-array.c testcase
> >
> > Hi!
> >
> > The utf-array.c testcase FAILs e.g. on i686-linux or powerpc-linux,
> > the problem is that wchar_t there isn't int, but long int.
> > grep shows that WCHAR_TYPE is one of
> > int
> > short int
> > long int
> > unsigned int
> > short unsigned int
> > long unsigned int
> > depending on exact target and options.
> >
> > The following patch accepts them all, ok for trunk?
> >
> > 2019-01-18  Jakub Jelinek  
> >
> > * gcc.dg/utf-array.c: Allow wchar_t to be printed as
> > {long ,short ,}{unsigned ,}int.
> >
> > --- gcc/testsuite/gcc.dg/utf-array.c.jj 2019-01-18 00:33:20.867980701 
> > +0100
> > +++ gcc/testsuite/gcc.dg/utf-array.c2019-01-18 23:32:57.086524528 
> > +0100
> > @@ -12,13 +12,13 @@ typedef __CHAR32_TYPE__ char32_t;
> >  const char s_0[]   = "ab";
> >  const char s_1[]   = u"ab";/* { dg-error "from a string literal 
> > with
> > type array of" } */
> >  const char s_2[]   = U"ab";/* { dg-error "from a string literal 
> > with
> > type array of" } */
> > -const char s_3[]   = L"ab";/* { dg-error "from a string literal 
> > with
> > type array of .int." } */
> > +const char s_3[]   = L"ab";/* { dg-error "from a string literal 
> > with
> > type array of .(long |short )?(unsigned )?int." } */
> >  const char s_4[]   = u8"ab";
> >
> >  const char16_t s16_0[] = "ab"; /* { dg-error "from a string
> literal with
> > type array of .char." } */
> >  const char16_t s16_1[] = u"ab";
> >  const char16_t s16_2[] = U"ab";/* { dg-error "from a string
> literal with
> > type array of" } */
> > -const char16_t s16_3[] = L"ab";/* { dg-error "from a string
> literal with
> > type array of .int." "" { target { ! wchar_t_char16_t_compatible } } }
> > */
> > +const char16_t s16_3[] = L"ab";/* { dg-error "from a string
> > literal with type array of .(long |short )?(unsigned )?int." "" { target { !
> > wchar_t_char16_t_compatible } } } */
> >  const char16_t s16_4[] = u8"ab";   /* { dg-error "from a string
> literal with
> > type array of .char." } */
> >
> >  const char16_t s16_5[0] = u"ab";   /* { dg-warning "chars is too
> long" }
> > */
> > @@ -30,7 +30,7 @@ const char16_ts16_9[4] = u"ab";
> >  const char32_t s32_0[] = "ab"; /* { dg-error "from a string
> literal with
> > type array of .char." } */
> >  const char32_t s32_1[] = u"ab";/* { dg-error "from a string
> literal with
> > type array of" } */
> >  const char32_t s32_2[] = U"ab";
> > -const char32_t s32_3[] = L"ab";/* { dg-error "from a string
> literal with
> > type array of .int." "" { target { ! wchar_t_char32_t_compatible } } }
> > */
> > +const char32_t s32_3[] = L"ab";/* { dg-error "from a string
> > literal with type array of .(long |short )?(unsigned )?int." "" { target { !
> > wchar_t_char32_t_compatible } } } */
> >  const char32_t s32_4[] = u8"ab";   /* { dg-error "from a string
> literal with
> > type array of .char." } */
> >
> >  const char32_t s32_5[0] = U"ab";   /* { dg-warning "chars is too
> long" }
> > */
> >
> > Jakub


[PATCH] Fix gcc.dg/utf-array.c testcase

2019-01-18 Thread Jakub Jelinek
Hi!

The utf-array.c testcase FAILs e.g. on i686-linux or powerpc-linux,
the problem is that wchar_t there isn't int, but long int.
grep shows that WCHAR_TYPE is one of
int
short int
long int
unsigned int
short unsigned int
long unsigned int
depending on exact target and options.

The following patch accepts them all, ok for trunk?

2019-01-18  Jakub Jelinek  

* gcc.dg/utf-array.c: Allow wchar_t to be printed as
{long ,short ,}{unsigned ,}int.

--- gcc/testsuite/gcc.dg/utf-array.c.jj 2019-01-18 00:33:20.867980701 +0100
+++ gcc/testsuite/gcc.dg/utf-array.c2019-01-18 23:32:57.086524528 +0100
@@ -12,13 +12,13 @@ typedef __CHAR32_TYPE__ char32_t;
 const char s_0[]   = "ab";
 const char s_1[]   = u"ab";/* { dg-error "from a string literal 
with type array of" } */
 const char s_2[]   = U"ab";/* { dg-error "from a string literal 
with type array of" } */
-const char s_3[]   = L"ab";/* { dg-error "from a string literal 
with type array of .int." } */
+const char s_3[]   = L"ab";/* { dg-error "from a string literal 
with type array of .(long |short )?(unsigned )?int." } */
 const char s_4[]   = u8"ab";
 
 const char16_t s16_0[] = "ab"; /* { dg-error "from a string literal 
with type array of .char." } */
 const char16_t s16_1[] = u"ab";
 const char16_t s16_2[] = U"ab";/* { dg-error "from a string literal 
with type array of" } */
-const char16_t s16_3[] = L"ab";/* { dg-error "from a string literal 
with type array of .int." "" { target { ! wchar_t_char16_t_compatible } } } */
+const char16_t s16_3[] = L"ab";/* { dg-error "from a string literal 
with type array of .(long |short )?(unsigned )?int." "" { target { ! 
wchar_t_char16_t_compatible } } } */
 const char16_t s16_4[] = u8"ab";   /* { dg-error "from a string literal 
with type array of .char." } */
 
 const char16_t s16_5[0] = u"ab";   /* { dg-warning "chars is too long" } */
@@ -30,7 +30,7 @@ const char16_ts16_9[4] = u"ab";
 const char32_t s32_0[] = "ab"; /* { dg-error "from a string literal 
with type array of .char." } */
 const char32_t s32_1[] = u"ab";/* { dg-error "from a string literal 
with type array of" } */
 const char32_t s32_2[] = U"ab";
-const char32_t s32_3[] = L"ab";/* { dg-error "from a string literal 
with type array of .int." "" { target { ! wchar_t_char32_t_compatible } } } */
+const char32_t s32_3[] = L"ab";/* { dg-error "from a string literal 
with type array of .(long |short )?(unsigned )?int." "" { target { ! 
wchar_t_char32_t_compatible } } } */
 const char32_t s32_4[] = u8"ab";   /* { dg-error "from a string literal 
with type array of .char." } */
 
 const char32_t s32_5[0] = U"ab";   /* { dg-warning "chars is too long" } */

Jakub