https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121661
--- Comment #6 from Hongtao Liu <liuhongt at gcc dot gnu.org> --- Looks correct in the gimple int main (int argc, char * * D.3685) { <bb 2> [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG val => __complex__ (1.0e+0, 0.0) # DEBUG INLINE_ENTRY fun1 __builtin_dwarf_cfa (0); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT printf ("%f\n", 1.0e+0); # DEBUG val => NULL return 0; } but goes wrong at expand. explictly add printf ("%f\n", 1.0f); in the main got gimple like below __attribute__((access ("^1[ ]", ))) int main (int argc, char * * D.3685) { <bb 2> [local count: 1073741824]: # DEBUG BEGIN_STMT # DEBUG val => __complex__ (1.0e+0, 0.0) # DEBUG INLINE_ENTRY fun1 __builtin_dwarf_cfa (0); # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT # DEBUG BEGIN_STMT printf ("%f\n", 1.0e+0); # DEBUG val => NULL # DEBUG BEGIN_STMT printf ("%f\n", 1.0e+0); return 0; } but printf 0.0 and 1.0 differently.