Let me know if that doesn't help.
--
Mark Mitchell ma...@codesourcery.com
CodeSourcery, LLC http://www.codesourcery.com
Stan> They're variables (usually, depends on runtime support
Stan> available), but start_decl wants to create a decl statement
Stan> because there's a synthetic function created for other
Stan> reasons, and so start_decl thinks it's declaring locals. I
Stan> don't yet know whether start_decl needs to get smarter, or
Stan> if the synthetic function should be tied off before it
Stan> starts in on protocol layout.
It sounds like the function should be tied off to me. (In the C++
front-end, we have push_to_top_level for this kind of thing; it says
"stop what you're doing here, and let's go back to declaring global
things for a while", but I don't the C front-end has that.)
start_decl fundamentally depends on its context to do its job, so I
think it's doing what it's supposed to do.
Stan> little constructor functions that it synthesizes. So
Stan> -fnext-runtime and -fgnu-runtime have a hand in deciding
Stan> whether there are functions hanging about.
Lovely.
They're variables (usually, depends on runtime support available),
but start_decl wants to create a decl statement because there's a
synthetic function created for other reasons, and so start_decl
thinks it's declaring locals. I don't yet know whether start_decl
needs to get smarter, or if the synthetic function should be tied
off before it starts in on protocol layout.
It's all especially entertaining because the NeXT runtime has a
bunch of machinery to interpret data structures, while the GNU
runtime expects the data structures to be set up by little
constructor functions that it synthesizes. So -fnext-runtime
and -fgnu-runtime have a hand in deciding whether there are
functions hanging about.
Stan