It looks like the general consensus is that we should not use fold() anymore in the frontends
I haven't seen that and certainly don't agree with it. The earlier we can get rid of junk trees, the better. There is no point in having separate code in a front end to fold "1+1" nor a point in having that be left in the tree in that way until gimplification. What I thought we agreed on was *only* that if a language has rules about what *must* be a constant, we should not be depending on fold to be part of the enforcement for those rules.