Re: com php-src: Fix for failing tests. gcc 4.8.3 would optimize away the assigment.: ext/mysqlnd/mysqlnd_ps_codec.c
| From: | Dmitry Stogov | Date: | Sat, 27 Dec 2014 02:52:45 +0000 |
| Subject: | Re: com php-src: Fix for failing tests. gcc 4.8.3 would optimize away the assigment.: ext/mysqlnd/mysqlnd_ps_codec.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-83894@lists.php.net to get a copy of this message | ||
This patch increases the binary size on 2MB (20%) :(
# without patch
$ size sapi/cli/php
text data bss dec hex filename
11243874 55868 134140 11433882 ae779a sapi/cli/php
# with patch
$ size sapi/cli/php
text data bss dec hex filename
13398084 55888 134148 13588120 cf5698 sapi/cli/php
It's probably better not to use dec32.
Thanks. Dmitry.
On Fri, Dec 26, 2014 at 11:36 PM, Keyur Govande <keyur@php.net> wrote:
> Commit: aa192f57c9d867ab3d7be69c7f269cfd7a10d14f
> Author: Keyur Govande <keyur@php.net> Fri, 26 Dec 2014
> 20:36:19 +0000
> Parents: 80260bcfa667bf25c65264b129f08a35059436a0
> Branches: PHP-5.5 PHP-5.6 master
>
> Link:
>
> http://git.php.net/?p=php-src.git;a=commitdiff;h=aa192f57c9d867ab3d7be69c7f269cfd7a10d14f
>
> Log:
> Fix for failing tests. gcc 4.8.3 would optimize away the assigment.
>
> Changed paths:
> M ext/mysqlnd/mysqlnd_ps_codec.c
>
>
> Diff:
> diff --git a/ext/mysqlnd/mysqlnd_ps_codec.c
> b/ext/mysqlnd/mysqlnd_ps_codec.c
> index d960912..a57ff5d 100644
> --- a/ext/mysqlnd/mysqlnd_ps_codec.c
> +++ b/ext/mysqlnd/mysqlnd_ps_codec.c
> @@ -195,7 +195,8 @@ ps_fetch_float(zval * zv, const MYSQLND_FIELD * const
> field, unsigned int pack_l
> #ifdef HAVE_DECIMAL_FP_SUPPORT
> {
> typedef float dec32 __attribute__((mode(SD)));
> - dec32 d32val = fval;
> + /* volatile so the compiler will not optimize away the
> conversion */
> + volatile dec32 d32val = fval;
>
> /* The following cast is guaranteed to do the right thing
> */
> dval = (double) d32val;
>
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>