blob: 6016c9acfa47392ec6544a2b3f9f5bf6dc14a15f [file] [log] [blame]
// { dg-do assemble { target alpha*-*-* } }
// { dg-options "-Wno-deprecated" }
// This test verifies that return type promotion is working correctly.
// The Alpha ABI specifies that 32-bit return values have bit 31 propagated,
// i.e. the value is sign-extended even if the unpromoted type is unsigned.
unsigned int f(unsigned int x) return y(x) { return 0; } // { dg-error "" }
extern "C" void abort ();
int main()
{
typedef long (*long_func)(long);
long_func g = reinterpret_cast<long_func>(f);
if (g(-1L) != -1L)
abort ();
return 0;
}