* gcc.dg/enum1.c: New test.

From-SVN: r52815
This commit is contained in:
Alexandre Oliva 2002-04-26 23:44:46 +00:00 committed by Alexandre Oliva
parent b446a5f169
commit 51ccaeb904
3 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2002-04-26 Alexandre Oliva <aoliva@redhat.com>
* gcc.dg/enum1.c: New test.
2002-04-26 Mark Mitchell <mark@codesourcery.com>
PR c++/6497

View File

@ -9,7 +9,7 @@ enum foo
foo3 = 0xf0fffffffffffffeULL
};
int main (int i)
int main ()
{
if (sizeof (enum foo) != sizeof (unsigned long long))
std::abort ();

View File

@ -0,0 +1,23 @@
/* { dg-do run } */
/* { dg-options "-std=gnu89" } */
/* In standard C, enumeration constants always have type int. If they
are not representables are int, they're ill-formed. In GNU C, we
give such ill-formed constructs well-defined meaning. Make sure it
works. */
#include <stdlib.h>
enum foo
{
foo1 = 0,
foo2 = 0xffffffffffffffffULL,
foo3 = 0xf0fffffffffffffeULL
};
int main ()
{
if (sizeof (enum foo) != sizeof (unsigned long long))
abort ();
exit (0);
}