diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-06-20 17:20:52 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-06-20 17:20:52 +0000 |
commit | d716bc0873de4b60b005fe989737501e308490f0 (patch) | |
tree | 0696fc929fefb02718b5df148bc803332a010caa | |
parent | d119115ff23aa0d2433518b0bb2590400cbfea70 (diff) | |
download | ATCD-d716bc0873de4b60b005fe989737501e308490f0.tar.gz |
ChangeLogTag: Mon Jun 20 17:17:26 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | ACE/ChangeLog | 14 | ||||
-rw-r--r-- | ACE/ace/Basic_Types.h | 6 | ||||
-rw-r--r-- | ACE/ace/config-win32-mingw.h | 10 |
3 files changed, 25 insertions, 5 deletions
diff --git a/ACE/ChangeLog b/ACE/ChangeLog index 7507677527f..91f975d7da1 100644 --- a/ACE/ChangeLog +++ b/ACE/ChangeLog @@ -1,3 +1,17 @@ +Mon Jun 20 17:17:26 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> + + * ace/config-win32-mingw.h: + * ace/Basic_Types.h: + + - Moved the definition of ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII + to the MinGW config file. + + - Added #define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1 to + the MinGW config file, so that, for generated IDL long + double constants, the argument will agree with the + print format string. MinGW doesn't support long double + in the print format. + Fri Jun 17 16:48:29 UTC 2011 Jeff Parsons <j.parsons@vanderbilt.edu> * ace/Basic_Types.h: diff --git a/ACE/ace/Basic_Types.h b/ACE/ace/Basic_Types.h index dae58caae71..43732bbc3f2 100644 --- a/ACE/ace/Basic_Types.h +++ b/ACE/ace/Basic_Types.h @@ -841,11 +841,7 @@ ACE_END_VERSIONED_NAMESPACE_DECL # define ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII "#24.16LG" # endif /* defined (NONNATIVE_LONGDOUBLE) */ # else -# if defined (__MINGW32__) -# define ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII "%24.16G" -# else -# define ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII "%#24.16LGL" -# endif /* __MINGW32__ */ +# define ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII "%#24.16LGL" # endif /* ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE */ #endif /* ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII */ diff --git a/ACE/ace/config-win32-mingw.h b/ACE/ace/config-win32-mingw.h index 1b20b3fdf61..c30956e6d5b 100644 --- a/ACE/ace/config-win32-mingw.h +++ b/ACE/ace/config-win32-mingw.h @@ -92,6 +92,16 @@ #define ACE_INT64_FORMAT_SPECIFIER_ASCII "%I64d" #define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%I64u" +#define ACE_LONG_DOUBLE_FORMAT_SPECIFIER_ASCII "%24.16G" + +// MinGW as supplied doesn't support the long double format +// in printf out of the box. So for long double constants, +// generated from IDL, we must print the literal as a double. +// The directive below will make the argument to printf agree +// with the format string defined above. It will not affect +// marshaling (see CDR_Base.h, near the top of the workaround +// struct LongDouble). +#define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1 #define ACE_ENDTHREADEX(STATUS) ::_endthreadex ((DWORD) (STATUS)) |