https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113049
Harald van Dijk <harald at gigawatt dot nl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |harald at gigawatt dot nl --- Comment #8 from Harald van Dijk <harald at gigawatt dot nl> --- (In reply to Georg-Johann Lay from comment #5) > So then -fno-builtin should also not work? GCC documentation of -fno-builtin > is the same like for -fno-builtin-function. -fno-builtin implies -fno-tree-loop-distribute-patterns (https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=b15458becf4086c463cba0c42db1d8780351201b), -fno-builtin-strlen does not, but I think you are right that that does not match the documentation. (In reply to Georg-Johann Lay from comment #7) > The documentation of -ftree-loop-distribute-patterns does not relate in any > way to that. It's impossible to find this option from a problem description. -ffreestanding also implies -fno-tree-loop-distribute-patterns, and that option is documented in a way that would help here. Unless -ffreestanding is used, GCC assumes the presence of a conforming standard library. It may expand calls to library functions based on knowledge of what these functions do, and it may replace code by calls to library functions as well for the same reason. -fno-builtin and -fno-builtin-(function) are both documented as stopping the former, but not documented as stopping the latter. The fact that one does, but not both, is surprising.