AaronBallman wrote:

> > I looked at my meeting notes for discussion of this paper and I think we do 
> > need to worry about what the C standard says. From my notes: `The big 
> > intent from this change seems to be about making INFINITY to be a feature 
> > test macro.`, so if users are going to portably expect `#ifdef INFINITY` to 
> > mean that their use of the macro will generate an actual infinity, we 
> > really should support that IMO.
> 
> I went looking through the CFP history of the proposal. It's based on a 
> comp.std.c thread here: https://groups.google.com/g/comp.std.c/c/XCzEiwD9n_A, 
> which became a CFP discussion here: 
> https://mailman.oakapple.net/pipermail/cfp-interest/2021-October/002216.html 
> (and more in the September portion of the archives, but the relevant part of 
> the discussion is in October), and the minutes of the CFP meeting where this 
> was discussed here: 
> https://mailman.oakapple.net/pipermail/cfp-interest/2021-October/002253.html
> 
> The entire history of this discussion is about FP types that do not have a 
> format for infinity (say, VAX FP), and there was commentary on the CFP thread 
> that there was evidence that users thought that `INFINITY` was conditionally 
> defined like `NAN` was. Note that `NAN` has been similarly conditionally 
> defined for a long time, and gcc doesn't undefine it in `-ffinite-math-only` 
> mode, so that's strong precedent for not undefining INFINITY in fast-math.

I spoke with the chair of CFP and he agreed with my assessment that `INFINITY` 
and `NAN` should not be defined in `-ffinite-math-only` mode, at least in terms 
of intent behind N2848. He also pointed out that not defining the macro is a 
security win because it makes it harder for people to write code using that 
macro and expecting it to do anything useful, which I strongly agree with.

Aside from "compatibility/historically", do we have any technical arguments 
against following the intent of the standard here? (We already deviate from GCC 
in so many other ways, I'm not worried about a deviation here; I would presume 
GCC will eventually get around to doing the same thing, at least for C23 and 
up).

https://github.com/llvm/llvm-project/pull/96659
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to