I was wondering if anyone had some advice on how to handle the testcase
g++.dg/warn/multiple-overflow-warn-3.C.  The test case fails on my HP-UX
platforms because the underlying type for wchar_t on HP-UX is 'unsigned
int' and not 'int' like it is on Linux.  This means that the expression
does not overflow, we don't get a warning, and the test fails.

I could just xfail/xskip it for HP-UX but other platforms use unsigned
types for wchar_t and must be failing too.  I was hoping for something a
little more elegant.

I thought of changing all the wchar_t's to int's but I think that might
negate what the test is trying to check since there would be no implicit
conversions in the code any more and the test would probably never have
given multiple overflow warnings in the first case.

Steve Ellcey
[EMAIL PROTECTED]


Test g++.dg/warn/multiple-overflow-warn-3.C:


/* PR 30465 : Test for duplicated warnings in a conversion.  */
/* { dg-do compile } */
/* { dg-options "-Woverflow" } */

wchar_t
g (void)
{
  wchar_t wc = ((wchar_t)1 << 31) - 1; /* { dg-bogus "overflow .* overflow" } */
  /* { dg-warning "overflow" "" { target *-*-* } 8 } */
  return wc;
}

Reply via email to