[v3] libstdc++/57920

Chung-Ju Wu jasonwucj@gmail.com
Tue Jul 23 09:18:00 GMT 2013


2013/7/22 Paolo Carlini <paolo.carlini@oracle.com>:
> Hi,
>
> see audit trail for details. I tested on x86_64-linux (with/without
> _GLIBCXX_X86_RDRAND artificially undefined) the below straightforward patch
> and checked by hand the strace. I'm going to apply it soon.
>
> Thanks,
> Paolo.
>
> ///////////////////

Hi, Paolo,

In this patch I can see that you thought cstdio is unnecessary:

Index: include/std/random
================================================
--- include/std/random	(revision 201122)
+++ include/std/random	(working copy)
@@ -36,7 +36,6 @@
 #else

 #include <cmath>
-#include <cstdio>
 #include <cstdlib>
 #include <string>
 #include <iosfwd>


However, for some cases the file libstdc++-v3/include/std/random
may include libstdc++-v3/include/bits/random.h, in which there is
a declaration using FILE type:

[libstdc++-v3/include/std/random]

 46 #ifdef _GLIBCXX_USE_C99_STDINT_TR1
 47
 48 #include <cstdint> // For uint_fast32_t, uint_fast64_t, uint_least32_t
 49 #include <bits/random.h>
 50 #include <bits/opt_random.h>
 51 #include <bits/random.tcc>
 52
 53 #endif // _GLIBCXX_USE_C99_STDINT_TR1

[libstdc++-v3/include/bits/random.h]

1639     union
1640     {
1641     FILE*        _M_file;
1642     mt19937      _M_mt;
1643   };

causing the following error:
  libstdc++-v3/include/bits/random.h:1641:5: error: 'FILE' does not name a type
       FILE*        _M_file;

Perhaps cstdio is necessary in this case.  What do you think? :-)


Best regards,
jasonwucj



More information about the Libstdc++ mailing list