[PATCH] problem with static variables in template functions
Wed Aug 12 22:12:00 GMT 1998
>>The egcs 1.1 test version appears to mishandle static variables
>>in template functions on Digital Unix.
>I'm not sure that this patch is correct. The default linkage for an
>inline function is internal, rather than external.
>Inline functions with internal linkage are allowed (required?) to have a
>different instance of any local static variables for each translation
>unit that uses the function.
Hmm... After studying the spec a bit more, i think this is probably
correct. I therefore withdraw my patch.
(It still strikes me as somewhat surprising behavior, as i generally
wouldn't expect changing whether a function is inline or not to change
the behavior of a program, unless you're doing something like comparing
function pointers. And it's a little annoying that of the four or so
compilers i tested when trying to decide whether to rely on this,
all of them apparently got it wrong.)
More information about the Gcc-patches