mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-11 16:27:18 +08:00
cppfiles.c (remove_component_p): Don't assume lstat/stat will keep errno unchanged on success.
* cppfiles.c (remove_component_p): Don't assume lstat/stat will keep errno unchanged on success. From-SVN: r42445
This commit is contained in:
parent
75f153f3d4
commit
8d75ad04d0
@ -1,3 +1,8 @@
|
|||||||
|
2001-05-22 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
|
* cppfiles.c (remove_component_p): Don't assume lstat/stat will
|
||||||
|
keep errno unchanged on success.
|
||||||
|
|
||||||
2001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
|
2001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
|
||||||
|
|
||||||
* c-lex.c (lex_number): If pedantic and not C99, pedwarn exactly
|
* c-lex.c (lex_number): If pedantic and not C99, pedwarn exactly
|
||||||
|
@ -1027,6 +1027,12 @@ remove_component_p (path)
|
|||||||
result = stat (path, &s);
|
result = stat (path, &s);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* There's no guarantee that errno will be unchanged, even on
|
||||||
|
success. Cygwin's lstat(), for example, will often set errno to
|
||||||
|
ENOSYS. In case of success, reset errno to zero. */
|
||||||
|
if (result == 0)
|
||||||
|
errno = 0;
|
||||||
|
|
||||||
return result == 0 && S_ISDIR (s.st_mode);
|
return result == 0 && S_ISDIR (s.st_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user