https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89122
--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Author: dmalcolm Date: Thu Jan 31 18:09:29 2019 New Revision: 268426 URL: https://gcc.gnu.org/viewcvs?rev=268426&root=gcc&view=rev Log: Fix bogus fix-it for FLT_MAX (PR c/89122) PR c/89122 reports that we emit a bogus fix-it hint for the case where the code uses FLT_MAX, but has included <limits.h> rather than <float.h>: x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function); did you mean 'INT_MAX'? 3 | float f = FLT_MAX; | ^~~~~~~ | INT_MAX This patch adds some knowledge of <float.h> (and <cfloat>) to known-headers.cc, fixing the issue: x.c:3:11: error: 'FLT_MAX' undeclared here (not in a function) 3 | float f = FLT_MAX; | ^~~~~~~ x.c:2:1: note: 'FLT_MAX' is defined in header '<float.h>'; did you forget to '#include <float.h>'? 1 | #include <limits.h> +++ |+#include <float.h> 2 | gcc/c-family/ChangeLog: PR c/89122 * known-headers.cc (get_stdlib_header_for_name): Add {FLT|DBL|LDBL}_{MAX|MIN} to "hints" array. gcc/testsuite/ChangeLog: PR c/89122 * g++.dg/spellcheck-stdlib.C (test_FLT_MAX): New test. * gcc.dg/spellcheck-stdlib.c (test_FLT_MAX): New test. Modified: trunk/gcc/c-family/ChangeLog trunk/gcc/c-family/known-headers.cc trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/spellcheck-stdlib.C trunk/gcc/testsuite/gcc.dg/spellcheck-stdlib.c