First, the problem. Sample program: #include <ctype.h> int main(void) { return 0; }
% g++ -c bug.cxx In file included from /opt/gcc--4.3.3--tru64/bin/../lib/gcc/alphaev56-dec-osf4.0g/4.3.3/include-fixed/sys/localedef.h:76, from /usr/include/ctype.h:108, from bug.cxx:1: /opt/gcc--4.3.3--tru64/bin/../lib/gcc/alphaev56-dec-osf4.0g/4.3.3/include-fixed/sys/lc_core.h:201: error: 'regex_t' has not been declared /opt/gcc--4.3.3--tru64/bin/../lib/gcc/alphaev56-dec-osf4.0g/4.3.3/include-fixed/sys/lc_core.h:202: error: expected ',' or '...' before '*' token /opt/gcc--4.3.3--tru64/bin/../lib/gcc/alphaev56-dec-osf4.0g/4.3.3/include-fixed/sys/lc_core.h:203: error: expected ',' or '...' before '*' token /opt/gcc--4.3.3--tru64/bin/../lib/gcc/alphaev56-dec-osf4.0g/4.3.3/include-fixed/sys/lc_core.h:204: error: 'regex_t' has not been declared Normally, lc_core.h #includes reg_types.h, which has the regex_t typedef, and all is well. Here, however, it pulls in the fixincluded version of reg_types.h, which typedefs __regex_t, not regex_t. This is not a problem for [the fixincluded] regex.h, since right after it #includes reg_types.h, it typedefs __regex_t to regex_t. Anything else that uses reg_types.h expecting to get regex_t, however, is left in the lurch. -- Summary: Fixincluded header defines __regex_t, other header needs regex_t Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: skunk at iskunk dot org GCC build triplet: alphaev56-dec-osf4.0g GCC host triplet: alphaev56-dec-osf4.0g GCC target triplet: alphaev56-dec-osf4.0g http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39788