http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48236

Jon Valdes <juanval at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |juanval at gmail dot com

--- Comment #1 from Jon Valdes <juanval at gmail dot com> 2011-03-22 14:08:27 
UTC ---
Even simpler code. uint64_t and int64_t converted to floats differ beginning at
16 million.


Fails at value 16777217:
----------------------->8-----------------------
#include <stdint.h>
#include <stdio.h>

int main()
{
    uint64_t ui ;
    int64_t   i ;
    for( i=0, ui=0 ; ; i++ , ui++ )
        if( (float) i != (float) ui )
        {
            printf("error: ui=%lld\n" , ui ) ;
            break ;
        }   
    return 0 ;
 }
-----------------------8<-----------------------
Fails on default params, -O0, -O3...

Reply via email to