This has nothing to do with inlining; the constructor call is inlined just fine. It also has nothing to do with POD status, although that does illuminate the problem.
The problem is that the optimizer does copy propagation only on basic types, not on structs. It needs to do it on structs, too.
Comment #3 by github-bugzilla — 2013-01-26T19:51:13Z