summary refs log tree commit diff
path: root/libio
diff options
context:
space:
mode:
Diffstat (limited to 'libio')
-rw-r--r--libio/oldfileops.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/libio/oldfileops.c b/libio/oldfileops.c
index 81e41503b2..e1cc1bda41 100644
--- a/libio/oldfileops.c
+++ b/libio/oldfileops.c
@@ -129,13 +129,14 @@ _IO_old_file_init (fp)
 			     - (int) sizeof (struct _IO_FILE_complete));
   fp->file._fileno = -1;
 
-#if defined SHARED && defined _LIBC \
-    && SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-  if (__builtin_expect (&_IO_stdin_used != NULL, 0)
-      || (fp != _IO_stdin && fp != _IO_stdout && fp != _IO_stderr))
+#if defined SHARED && defined _LIBC
+  if (__builtin_expect (&_IO_stdin_used != NULL, 1)
+      || (fp != (struct _IO_FILE_plus *) _IO_stdin
+	  && fp != (struct _IO_FILE_plus *) _IO_stdout
+	  && fp != (struct _IO_FILE_plus *) _IO_stderr))
     /* The object is dynamically allocated and large enough.  Initialize
        the _mode element as well.  */
-    fp->_mode = -1;
+    ((struct _IO_FILE_complete *) fp)->_mode = -1;
 #endif
 }