https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91751
--- Comment #3 from Konstantin Kharlamov <Hi-Angel at yandex dot ru> --- (In reply to Jonathan Wakely from comment #2) > The advantage of showing the location of the constructor is that you can see > which object is being destroyed. If the location was shown as the end of the > scope, all local variables would show the same location. Fair enough. But it's confusing too. A function may have multiple places where it "goes out of scope", and if you debug a problem involving an object destructor, it's hard to understand which path got executed. Besides, it's non-intuitive, it looks as if an object was just created, and then immediately destroyed. What you describe, on the other hand, is a natural problem, and should not be worked around by placing line number at place with object creation.