------- Comment #3 from pinskia at gcc dot gnu dot org 2006-03-19 20:36 ------- DCE is removing some statements: Marking useful stmt: alarm (D.3630_3);
Marking useful stmt: return; Processing worklist: processing: return; processing: alarm (D.3630_3); processing: D.3630_3 = (unsigned int) D.3629_2; Eliminating unnecessary statements: Deleting : cfg.20_1 = cfg; Deleting : D.3629_2 = cfg.20_1->autoacquire; Removed 2 of 5 statements (40%) Removed 0 of 0 PHI nodes (0%) void acquire_desktop(int) (rv) { unsigned int D.3630; int D.3629; struct Config * cfg.20; <bb 0>: D.3630_3 = (unsigned int) D.3629_2; # cfg_4 = V_MAY_DEF <cfg_2>; alarm (D.3630_3); return; } I don't understand why (this is using a reduced version of the source) because it is obvious it is used. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|normal |blocker Component|c++ |tree-optimization Known to fail| |4.0.2 Known to work| |4.2.0 Target Milestone|--- |4.1.1 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26757