This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug preprocessor/20356] New: New #include_next behaviour breaks limits.h
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 Mar 2005 08:56:52 -0000
- Subject: [Bug preprocessor/20356] New: New #include_next behaviour breaks limits.h
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
If some /usr/include header uses
#include "limits.h"
instead of
#include <limits.h>
it gets error: #include nested too deeply.
There are 2 limits.h headers, /usr/lib/gcc/*/*/include/limits.h and
/usr/include/limits.h that try to include each other with #include_next,
guarded with the defines that protect multiple header inclusion for the other
one.
" instead of < causes /usr/include/limits.h to be included first
(normally is /usr/lib/gcc/*/*/include/limits.h first) and this does:
#if defined __GNUC__ && !defined _GCC_LIMITS_H_
/* `_GCC_LIMITS_H_' is what GCC's file defines. */
# include_next <limits.h>
In older GCC releases, this include_next would load the next limits.h in the
search path, which is /usr/lib/gcc/*/*/include/limits.h, but GCC4 includes
/usr/include/limits.h again (and does so until reaching the nesting limit).
--
Summary: New #include_next behaviour breaks limits.h
Product: gcc
Version: 4.0.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jakub at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: *-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20356