This is the mail archive of the
mailing list for the GCC project.
Re: g++.old-deja/g++.mike/p7325.C - suspected bogus test case
Zack Weinberg wrote:
Why do you expect that? Independently of whether or not their addresses
have been taken, the language says these temporaries go away at a
particular point. If the compiler extends their lifetimes unnecessarily
because it thinks that pointers to them might survive, that's an
unnecessary pessimization -- unless it has some other good reason for
You want to get rid of a test case that found a regression instead of
enticing someone to fix the compiler?
No, I want to get rid of a test case that fails to test anything
Let me reiterate that: it does not test anything meaningful. It
currently passes or fails depending on details of the platform ABI.
Worse, the compiler is within its rights to extend the lifetimes of
the temporaries because it notices that their addresses have been
taken. In fact, I expect Ken Zadeck's better alias analysis will
have that effect.
I agree that this an ugly mechanism for testing for this optimization,
and that some kind of stack-frame dumping might be better. On the other
hand, we don't have a way of doing that at present. And this test does
test for an optimization that we want to do, in general.
I don't see XPASSes as nearly so problematic as FAILs because if you see
XPASSes you don't need to worry that you broke something; at worst, you
accidentally fixed something. I don't see a way to hush the XFAIL using
dg's target-selector mechanism, unfortunately.