g++.old-deja/g++.mike/p7325.C - suspected bogus test case

Mark Mitchell mark@codesourcery.com
Sat Jun 26 18:46:00 GMT 2004


Zack Weinberg wrote:

>>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
>meaningful.  
>
>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.
>  
>
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 
doing that.

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.

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com



More information about the Gcc mailing list