This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: prototyping functions returning an enum, before the enum is defined
- To: "Kaveh R. Ghazi" <ghazi at caip dot rutgers dot edu>
- Subject: Re: prototyping functions returning an enum, before the enum is defined
- From: Andreas Schwab <schwab at issan dot informatik dot uni-dortmund dot de>
- Date: 29 Jun 1998 11:07:00 +0200
- Cc: egcs at cygnus dot com
- References: <199806281937.PAA00634@caip.rutgers.edu>
"Kaveh R. Ghazi" <ghazi@caip.rutgers.edu> writes:
|> Some config/*/*.c files have extern functions returning an
|> enum of some sort. Eg, function_arg_padding() in sparc.c which
|> returns an `enum direction'. I'd like to be able to prototype these
|> in sparc.h, but we don't have the definition of `enum direction' from
|> expr.h yet.
|>
|> Is it legal in both KNR and ANSI C to say:
|> > extern enum direction function_arg_padding();
|>
|> before `enum direction' has been defined?
|>
|> What about doing:
|> > enum direction;
|> > extern enum direction function_arg_padding();
Both are wrong. ANSI C does not have forward declarations of enum types.
>From the C9x draft (6.5.2.3 Tags):
[#2] A type specifier of the form
enum identifier
without an enumerator list shall only appear after the type
it specifies is completed.
I'm pretty sure that this is unchanged from the current standard.
--
Andreas Schwab "And now for something
schwab@issan.informatik.uni-dortmund.de completely different"
schwab@gnu.org