From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Schwab To: "Kaveh R. Ghazi" Cc: egcs@cygnus.com Subject: Re: prototyping functions returning an enum, before the enum is defined Date: Mon, 29 Jun 1998 03:22:00 -0000 Message-id: References: <199806281937.PAA00634@caip.rutgers.edu> X-SW-Source: 1998-06/msg01045.html "Kaveh R. Ghazi" 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