This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
In C, enum types may be unsigned, but enum constants may not
- To: gcc-patches at gcc dot gnu dot org
- Subject: In C, enum types may be unsigned, but enum constants may not
- From: Alexandre Oliva <aoliva at redhat dot com>
- Date: 20 Jul 2000 01:02:37 -0300
- Organization: GCC Team, Red Hat
I'd like to install the following testcase, based on 6.4.4.3/2, but I
don't think there's any way to mark it as an expected failure.
Anyway, it worked correctly in GCC 2.95.2, but it's broken in CVS, so,
if my understanding of the current procedure for installing testcases,
it should go in NOT marked as an expected failure, right? Ok to
install?
/* Copyright (C) 2000 Free Software Foundation */
/* by Alexandre Oliva <aoliva@redhat.com> */
enum foo { FOO, BAR };
/* Even though the underlying type of an enum is unspecified, the type
of enumeration constants is explicitly defined as int (6.4.4.3/2 in
the C99 Standard). Therefore, `i' must not be promoted to
`unsigned' in the comparison below; we must exit the loop when it
becomes negative. */
int
main ()
{
int i;
for (i = BAR; i >= FOO; --i)
if (i == -1)
abort ();
exit (0);
}
--
Alexandre Oliva Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer aoliva@{cygnus.com, redhat.com}
CS PhD student at IC-Unicamp oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist *Please* write to mailing lists, not to me