public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/22355] New: Multiple local static variables initialization: missed optimization opportunity @ 2005-07-07 20:29 yuri at tsoft dot com 2005-07-07 20:39 ` [Bug c++/22355] " pinskia at gcc dot gnu dot org ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: yuri at tsoft dot com @ 2005-07-07 20:29 UTC (permalink / raw) To: gcc-bugs Following code (f()) if compiled with -fno-exceptions should produce only one initialization boolean for all local static variables, not one per variable. This is since they always initialized together provided there are no exceptions. If exceptions are allowed then it should be driven by the flag in constructors saying if they allow exceptions or not. Yuri --------------------------- struct C { C(); int get(); }; int f() { static C i; static C j; return (i.get() + j.get()); } -- Summary: Multiple local static variables initialization: missed optimization opportunity Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: yuri at tsoft dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22355 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/22355] Multiple local static variables initialization: missed optimization opportunity 2005-07-07 20:29 [Bug c++/22355] New: Multiple local static variables initialization: missed optimization opportunity yuri at tsoft dot com @ 2005-07-07 20:39 ` pinskia at gcc dot gnu dot org 2005-07-07 20:52 ` giovannibajo at libero dot it ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: pinskia at gcc dot gnu dot org @ 2005-07-07 20:39 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-07 20:39 ------- Say we call f() again before finish initializing i. then we call the get statement, it just undefined? -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22355 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/22355] Multiple local static variables initialization: missed optimization opportunity 2005-07-07 20:29 [Bug c++/22355] New: Multiple local static variables initialization: missed optimization opportunity yuri at tsoft dot com 2005-07-07 20:39 ` [Bug c++/22355] " pinskia at gcc dot gnu dot org @ 2005-07-07 20:52 ` giovannibajo at libero dot it 2005-07-07 21:21 ` yuri at Magma-DA dot COM 2005-07-07 22:14 ` bangerth at dealii dot org 3 siblings, 0 replies; 5+ messages in thread From: giovannibajo at libero dot it @ 2005-07-07 20:52 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From giovannibajo at libero dot it 2005-07-07 20:52 ------- I think Andres is right: what if C's constructor calls f() (only the first time it is invoked)? I believe this bug is invalid. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22355 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/22355] Multiple local static variables initialization: missed optimization opportunity 2005-07-07 20:29 [Bug c++/22355] New: Multiple local static variables initialization: missed optimization opportunity yuri at tsoft dot com 2005-07-07 20:39 ` [Bug c++/22355] " pinskia at gcc dot gnu dot org 2005-07-07 20:52 ` giovannibajo at libero dot it @ 2005-07-07 21:21 ` yuri at Magma-DA dot COM 2005-07-07 22:14 ` bangerth at dealii dot org 3 siblings, 0 replies; 5+ messages in thread From: yuri at Magma-DA dot COM @ 2005-07-07 21:21 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From yuri at Magma-DA dot COM 2005-07-07 21:21 ------- Subject: Re: Multiple local static variables initialization: missed optimization opportunity I agree, this situation is fuzzy and bug is probably invalid. But there are actually local static initializations that are to blame. Why should these be checked/initialized on entry into the function, not globally? Any particular benefit of this ? I think it would have been way cleaner if initializations were done globally when code is loaded. Yuri pinskia at gcc dot gnu dot org wrote: >------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-07 20:39 ------- >Say we call f() again before finish initializing i. then we call the get statement, it just undefined? > > > -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22355 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/22355] Multiple local static variables initialization: missed optimization opportunity 2005-07-07 20:29 [Bug c++/22355] New: Multiple local static variables initialization: missed optimization opportunity yuri at tsoft dot com ` (2 preceding siblings ...) 2005-07-07 21:21 ` yuri at Magma-DA dot COM @ 2005-07-07 22:14 ` bangerth at dealii dot org 3 siblings, 0 replies; 5+ messages in thread From: bangerth at dealii dot org @ 2005-07-07 22:14 UTC (permalink / raw) To: gcc-bugs ------- Additional Comments From bangerth at dealii dot org 2005-07-07 22:14 ------- That's just what the standard says: these variables are initialized when execution first passes their location of declaration. I guess this PR is indeed invalid, so I close it. W. -- What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22355 ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-07-07 22:14 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-07-07 20:29 [Bug c++/22355] New: Multiple local static variables initialization: missed optimization opportunity yuri at tsoft dot com 2005-07-07 20:39 ` [Bug c++/22355] " pinskia at gcc dot gnu dot org 2005-07-07 20:52 ` giovannibajo at libero dot it 2005-07-07 21:21 ` yuri at Magma-DA dot COM 2005-07-07 22:14 ` bangerth at dealii dot org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).