diff options
author | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-29 19:20:18 +0000 |
---|---|---|
committer | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-29 19:20:18 +0000 |
commit | 94d07585cda39eb062d1a38edf9f73432cf49508 (patch) | |
tree | 718741e2774c24e63f25ead67c2ea5159ae6a55b /libgfortran/libgfortran.h | |
parent | dabc93fe6cb578a9334a2301bfb99fc6f9e05e18 (diff) | |
download | gcc-94d07585cda39eb062d1a38edf9f73432cf49508.tar.gz |
2009-10-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/41711
* libgfortran.h: Define larger sizes for BOZ conversion buffers.
* io/write.c (extract_uint): Include case where size is 10 if integer
is large enough. (write_int): Rename to write_boz. (write_boz): Factor
out extract_uint and delete the conversion function.
(btoa_big): New binary conversion function.
(otoa_big): New octal conversion function.
(ztoa_big): New hexidecimal conversion function.
(write_b): Modify to use new function.
(write_o): Likewise.
(write_z): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153724 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/libgfortran.h')
-rw-r--r-- | libgfortran/libgfortran.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index 40cb080a78c..bba95f7c781 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -672,10 +672,18 @@ internal_proto(show_backtrace); /* error.c */ +#if defined(HAVE_GFC_REAL_16) +#define GFC_LARGEST_BUF (sizeof (GFC_REAL_16)) +#elif defined(HAVE_GFC_REAL_10) +#define GFC_LARGEST_BUF (sizeof (GFC_REAL_10)) +#else +#define GFC_LARGEST_BUF (sizeof (GFC_INTEGER_LARGEST)) +#endif + #define GFC_ITOA_BUF_SIZE (sizeof (GFC_INTEGER_LARGEST) * 3 + 2) -#define GFC_XTOA_BUF_SIZE (sizeof (GFC_UINTEGER_LARGEST) * 2 + 1) -#define GFC_OTOA_BUF_SIZE (sizeof (GFC_INTEGER_LARGEST) * 3 + 1) -#define GFC_BTOA_BUF_SIZE (sizeof (GFC_INTEGER_LARGEST) * 8 + 1) +#define GFC_XTOA_BUF_SIZE (GFC_LARGEST_BUF * 2 + 1) +#define GFC_OTOA_BUF_SIZE (GFC_LARGEST_BUF * 3 + 1) +#define GFC_BTOA_BUF_SIZE (GFC_LARGEST_BUF * 8 + 1) extern void sys_exit (int) __attribute__ ((noreturn)); internal_proto(sys_exit); |