mirror of
				https://github.com/sqlite/sqlite.git
				synced 2025-11-03 16:53:36 +03:00 
			
		
		
		
	Test cases for printf of double overflows. (CVS 1260)
FossilOrigin-Name: 96a6d2d3ff5bd0aaff188ee1c5e2f02cbea435b2
This commit is contained in:
		
							
								
								
									
										11
									
								
								src/printf.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								src/printf.c
									
									
									
									
									
								
							@@ -411,12 +411,11 @@ static int vxprintf(
 | 
			
		||||
        /* Normalize realvalue to within 10.0 > realvalue >= 1.0 */
 | 
			
		||||
        exp = 0;
 | 
			
		||||
        if( realvalue>0.0 ){
 | 
			
		||||
          int k = 0;
 | 
			
		||||
          while( realvalue>=1e8 && k++<100 ){ realvalue *= 1e-8; exp+=8; }
 | 
			
		||||
          while( realvalue>=10.0 && k++<100 ){ realvalue *= 0.1; exp++; }
 | 
			
		||||
          while( realvalue<1e-8 && k++<100 ){ realvalue *= 1e8; exp-=8; }
 | 
			
		||||
          while( realvalue<1.0 && k++<100 ){ realvalue *= 10.0; exp--; }
 | 
			
		||||
          if( k>=100 ){
 | 
			
		||||
          while( realvalue>=1e8 && exp<=350 ){ realvalue *= 1e-8; exp+=8; }
 | 
			
		||||
          while( realvalue>=10.0 && exp<=350 ){ realvalue *= 0.1; exp++; }
 | 
			
		||||
          while( realvalue<1e-8 && exp>=-350 ){ realvalue *= 1e8; exp-=8; }
 | 
			
		||||
          while( realvalue<1.0 && exp>=-350 ){ realvalue *= 10.0; exp--; }
 | 
			
		||||
          if( exp>350 || exp<-350 ){
 | 
			
		||||
            bufpt = "NaN";
 | 
			
		||||
            length = 3;
 | 
			
		||||
            break;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user