[PATCH] msvcp120: Avoid type conversion warnings in test_tr2_sys__dir_operation.

Gerald Pfeifer gerald at pfeifer.com
Thu Nov 19 16:39:55 CST 2020


This patch is obsolete now since a month later the essentially identical

  commit d276cf7112aa15aac102b03e519cc133da8ec1c1
  Author: Rémi Bernon <rbernon at codeweavers.com>
  Date:   Wed Jun 3 11:50:35 2020 +0200

    msvcp120/tests: Fix signed integral cast warning.
    
    First cast to int, then to enum file_type.
    
    Reported by MinGW GCC 10 with -Woverflow.
    
    Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
    Signed-off-by: Piotr Caban <piotr at codeweavers.com>
    Signed-off-by: Alexandre Julliard <julliard at winehq.org>

Gerald

On Sun, 3 May 2020, Gerald Pfeifer wrote:
> GCC 10 warns
> 
>   msvcp120.c:1777:11: warning: overflow in conversion from 'enum file_type'
>   to 'int' changes value from 'type = 3735928559' to '-559038737' 
>   msvcp120.c:1807:11: warning: overflow in conversion from 'enum file_type'
>   to 'int' changes value from 'type = 3735928559' to '-559038737' 
>   msvcp120.c:1817:11: warning: overflow in conversion from 'enum file_type'
>   to 'int' changes value from 'type = 3735928559' to '-559038737' 
> 
> where 3735928559 is 0xdeadbeef.
> 
> This happens since first this variable is assigned to an enum and
> that then to an int, and GCC diagnoses the latter as an overflow
> (from signed to unsigned).
> 
> Assigning a hex constant does not trigger, so simply break out those
> two assignments.
> 
> Gerald
> 
> Signed-off-by: Gerald Pfeifer <gerald at pfeifer.com>
> ---
>  dlls/msvcp120/tests/msvcp120.c | 9 ++++++---
>  1 file changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/dlls/msvcp120/tests/msvcp120.c b/dlls/msvcp120/tests/msvcp120.c
> index 7a382ac6fa..3cfabaa7ca 100644
> --- a/dlls/msvcp120/tests/msvcp120.c
> +++ b/dlls/msvcp120/tests/msvcp120.c
> @@ -1774,7 +1774,8 @@ static void test_tr2_sys__dir_operation(void)
>  
>      memset(first_file_name, 0xff, MAX_PATH);
>      memset(dest, 0, MAX_PATH);
> -    err = type = 0xdeadbeef;
> +    err = 0xdeadbeef;
> +    type = 0xdeadbeef;
>      result_handle = NULL;
>      result_handle = p_tr2_sys__Open_dir(first_file_name, "tr2_test_dir", &err, &type);
>      ok(result_handle != NULL, "tr2_sys__Open_dir(): expect: not NULL, got %p\n", result_handle);
> @@ -1804,7 +1805,8 @@ static void test_tr2_sys__dir_operation(void)
>      ok(num_of_other_files == 0, "found %d other files\n", num_of_other_files);
>  
>      memset(first_file_name, 0xff, MAX_PATH);
> -    err = type = 0xdeadbeef;
> +    err = 0xdeadbeef;
> +    type = 0xdeadbeef;
>      result_handle = file;
>      result_handle = p_tr2_sys__Open_dir(first_file_name, "not_exist", &err, &type);
>      ok(result_handle == NULL, "tr2_sys__Open_dir(): expect: NULL, got %p\n", result_handle);
> @@ -1814,7 +1816,8 @@ static void test_tr2_sys__dir_operation(void)
>  
>      CreateDirectoryA("empty_dir", NULL);
>      memset(first_file_name, 0xff, MAX_PATH);
> -    err = type = 0xdeadbeef;
> +    err = 0xdeadbeef;
> +    type = 0xdeadbeef;
>      result_handle = file;
>      result_handle = p_tr2_sys__Open_dir(first_file_name, "empty_dir", &err, &type);
>      ok(result_handle == NULL, "tr2_sys__Open_dir(): expect: NULL, got %p\n", result_handle);


More information about the wine-devel mailing list