This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Static variables in template functions
Mark Mitchell <mark@codesourcery.com> writes:
| Jason Merrill wrote:
|
| >>>4. Defer the warning until end of function, and then only give it if the
| >>> variable turns out to be addressable.
| > ...this would only apply to const variables, of course.
|
| All of this is getting increasingly moot with every passing day, as the
| number of systems without weak symbol support is rapidly dwindling,
| thankfully. So, we can always decide to consider this an academic
| discussion.
|
| Would you want to do this after optimization, so that cases where the
| addressing was eliminated by the back end would not result in warnings,
| or in the front end based on TREE_ADDRESSABLE?
|
| From your recommendation, you think it better to generate faster code
| on these systems (by avoiding the dynamic initialization), even though
| that means that the code is sometimes incorrect (in that the variables
| are duplicated, and a conforming program can detect the difference). I
I must be missing something here, but if the address of the variable
is not taken, how can a conforming program tell the difference?
-- Gaby