------- Additional Comments From pinskia at gcc dot gnu dot org 2005-01-28 18:53 ------- (In reply to comment #5) > I'll move this bug back to the C++ component. Consider the following C++ code: struct Foo { ~Foo() {} int i; }; struct A { Foo foo[2]; }; void foo () { static A a; }
We don't know the deconstructor for A is empty until we remove the empry loop and do optimizations on it. So this is again a job for the midde-end/tree-optimizations. We can then mark the function as empty and then have a pass (or really fold or something like that) remove calls to atexit (and similar functions) which just references empty functions. This is the correct way of doing this. -- What |Removed |Added ---------------------------------------------------------------------------- Component|c++ |middle-end GCC build triplet|n/a | GCC target triplet|n/a | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19661