﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	difficulty
1626	+inf.0 inserted literally into C code in some situations with -O3 and above	Diego		"For example, the following code doesn't compile due to this:

{{{
(import chicken.flonum)

(define x 5.0)
(cond [(fp= x +inf.0)
       (fpabs x)]
      [else (print ""Nothing"")])
}}}
With the first few errors being:
{{{
test.c:110:74: error: ‘inf’ undeclared (first use in this function); did you mean ‘ynf’?
  110 | if(C_truep(C_ub_i_flonum_equalp(C_flonum_magnitude(*((C_word*)lf[0]+1)),+inf.0))){
      |                                                                          ^~~
/usr/include/chicken/chicken.h:1035:38: note: in definition of macro ‘C_truep’
 1035 | #define C_truep(x)                 ((x) != C_SCHEME_FALSE)
      |                                      ^
}}}

Weirdly enough, if I replace {{{fpabs}}} with {{{print}}}, the compilation goes fine.
"	defect	closed	major	5.2	compiler	5.1.0	fixed			medium
