===================================================================
@@ -153,8 +153,8 @@
# For C99 support to TR1.
GLIBCXX_CHECK_C99_TR1
-# For common values of EOF, SEEK_CUR, SEEK_END.
-GLIBCXX_CHECK_STDIO_MACROS
+# For the EOF, SEEK_CUR, and SEEK_END integer constants.
+GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS
# For gettimeofday support.
GLIBCXX_CHECK_GETTIMEOFDAY
===================================================================
@@ -42,15 +42,6 @@
#include <bits/localefwd.h>
#include <bits/locale_classes.h>
-#ifndef _GLIBCXX_STDIO_MACROS
-# include <cstdio> // For SEEK_CUR, SEEK_END
-# define _IOS_BASE_SEEK_CUR SEEK_CUR
-# define _IOS_BASE_SEEK_END SEEK_END
-#else
-# define _IOS_BASE_SEEK_CUR 1
-# define _IOS_BASE_SEEK_END 2
-#endif
-
_GLIBCXX_BEGIN_NAMESPACE(std)
// The following definitions of bitmask types are enums, not ints,
@@ -189,8 +180,8 @@
enum _Ios_Seekdir
{
_S_beg = 0,
- _S_cur = _IOS_BASE_SEEK_CUR,
- _S_end = _IOS_BASE_SEEK_END,
+ _S_cur = _GLIBCXX_STDIO_SEEK_CUR,
+ _S_end = _GLIBCXX_STDIO_SEEK_END,
_S_ios_seekdir_end = 1L << 16
};
@@ -970,8 +961,5 @@
_GLIBCXX_END_NAMESPACE
-#undef _IOS_BASE_SEEK_CUR
-#undef _IOS_BASE_SEEK_END
-
#endif /* _IOS_BASE_H */
===================================================================
@@ -42,13 +42,6 @@
#include <bits/postypes.h> // For streampos
#include <cwchar> // For WEOF, wmemmove, wmemset, etc.
-#ifndef _GLIBCXX_STDIO_MACROS
-# include <cstdio> // For EOF
-# define _CHAR_TRAITS_EOF EOF
-#else
-# define _CHAR_TRAITS_EOF (-1)
-#endif
-
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
/**
@@ -139,7 +132,7 @@
static int_type
eof()
- { return static_cast<int_type>(_CHAR_TRAITS_EOF); }
+ { return static_cast<int_type>(_GLIBCXX_STDIO_EOF); }
static int_type
not_eof(const int_type& __c)
@@ -294,7 +287,7 @@
static int_type
eof()
- { return static_cast<int_type>(_CHAR_TRAITS_EOF); }
+ { return static_cast<int_type>(_GLIBCXX_STDIO_EOF); }
static int_type
not_eof(const int_type& __c)
@@ -570,6 +563,4 @@
#endif
-#undef _CHAR_TRAITS_EOF
-
#endif // _CHAR_TRAITS_H
===================================================================
@@ -34,5 +34,5 @@
}
// { dg-error "synthesized" "" { target *-*-* } 33 }
// { dg-error "within this context" "" { target *-*-* } 26 }
-// { dg-error "is private" "" { target *-*-* } 788 }
+// { dg-error "is private" "" { target *-*-* } 779 }
// { dg-error "operator=" "" { target *-*-* } 0 }
===================================================================
@@ -1,6 +1,6 @@
// { dg-do compile }
-// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
// Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -34,5 +34,5 @@
}
// { dg-error "within this context" "" { target *-*-* } 26 }
// { dg-error "synthesized" "" { target *-*-* } 33 }
-// { dg-error "is private" "" { target *-*-* } 785 }
+// { dg-error "is private" "" { target *-*-* } 776 }
// { dg-error "copy constructor" "" { target *-*-* } 0 }
===================================================================
@@ -1,6 +1,6 @@
// Underlying io library details -*- C++ -*-
-// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
+// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, 2010
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -34,7 +34,6 @@
#define _GLIBCXX_CXX_IO_H 1
#include <cstdio>
-#include <cstddef>
#include <bits/gthr.h>
_GLIBCXX_BEGIN_NAMESPACE(std)
===================================================================
@@ -1619,26 +1619,38 @@
])
dnl
-dnl Check whether EOF, SEEK_CUR, and SEEK_END have the most common values:
-dnl in that case including <cstdio> in some C++ headers can be avoided.
+dnl Compute the EOF, SEEK_CUR, and SEEK_END integer constants.
dnl
-AC_DEFUN([GLIBCXX_CHECK_STDIO_MACROS], [
+AC_DEFUN([GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS], [
- AC_MSG_CHECKING([for EOF == -1, SEEK_CUR == 1, SEEK_END == 2])
- AC_CACHE_VAL(glibcxx_cv_stdio_macros, [
- AC_TRY_COMPILE([#include <stdio.h>],
- [#if ((EOF != -1) || (SEEK_CUR != 1) || (SEEK_END != 2))
- unusual values...
- #endif
- ], [glibcxx_cv_stdio_macros=yes],
- [glibcxx_cv_stdio_macros=no])
+ AC_MSG_CHECKING([For some <stdio.h> integer constants.])
+
+ AC_CACHE_VAL(glibcxx_cv_stdio_eof, [
+ AC_COMPUTE_INT([glibcxx_cv_stdio_eof], [[EOF]],
+ [#include <stdio.h>],
+ [AC_MSG_ERROR([computing EOF failed])])
])
- AC_MSG_RESULT($glibcxx_cv_stdio_macros)
- if test x"$glibcxx_cv_stdio_macros" = x"yes"; then
- AC_DEFINE(_GLIBCXX_STDIO_MACROS, 1,
- [Define if EOF == -1, SEEK_CUR == 1, SEEK_END == 2.])
- fi
+ AC_MSG_RESULT($glibcxx_cv_stdio_eof)
+ AC_DEFINE_UNQUOTED(_GLIBCXX_STDIO_EOF, $glibcxx_cv_stdio_eof,
+ [Define to the value of the EOF integer constant.])
+ AC_CACHE_VAL(glibcxx_cv_stdio_seek_cur, [
+ AC_COMPUTE_INT([glibcxx_cv_stdio_seek_cur], [[SEEK_CUR]],
+ [#include <stdio.h>],
+ [AC_MSG_ERROR([computing SEEK_CUR failed])])
+ ])
+ AC_MSG_RESULT($glibcxx_cv_stdio_seek_cur)
+ AC_DEFINE_UNQUOTED(_GLIBCXX_STDIO_SEEK_CUR, $glibcxx_cv_stdio_seek_cur,
+ [Define to the value of the SEEK_CUR integer constant.])
+
+ AC_CACHE_VAL(glibcxx_cv_stdio_seek_end, [
+ AC_COMPUTE_INT([glibcxx_cv_stdio_seek_end], [[SEEK_END]],
+ [#include <stdio.h>],
+ [AC_MSG_ERROR([computing SEEK_END failed])])
+ ])
+ AC_MSG_RESULT($glibcxx_cv_stdio_seek_end)
+ AC_DEFINE_UNQUOTED(_GLIBCXX_STDIO_SEEK_END, $glibcxx_cv_stdio_seek_end,
+ [Define to the value of the SEEK_END integer constant.])
])
dnl