# from Sisyphus
# on Saturday 16 June 2007 05:11 pm:

>You can see that a function called 'foo' will be visible to the
> compiler even if RUBBISH is not defined - and that's what leads to
> the error for me. Looks like some compilers/linkers must be
> smart/dumb enough to ignore the reference to 'foo' - but mine
> certainly aren't. I've just tried running the script using
> Microsoft's 'cl' compiler, and the same thing still happens.

Ah, I see what you're getting at.  I have the same foo() in my generated 
file, but my gcc is 3.3.5 and 4.1.2 (both make no trouble, but might 
have something to say about it with warnings on?)

It appears that this is a bug in inline's parser (where it doesn't check 
ifdefs when generating the xs code.)  (I seem to remember a mention of 
something like that in the docs.)  However, I think we might be stuck 
with that barring a reimplementation of the preprocessor or something 
similarly large and difficult (I think if you just did `cc -E`, the 
definition would go poof, but you would then be generating code for 
anything that's been included (though I think cpp leaves some hints 
lying around about file and line numbers -- but it seems this would be 
implementation independent.))  Oops, I've now exhausted my 
pseudo-relevant and questionably-correct knowledge.

--Eric
-- 
If the collapse of the Berlin Wall had taught us anything, it was that
socialism alone was not a sustainable economic model.
--Robert Young
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to