https://bugs.exim.org/show_bug.cgi?id=2024

            Bug ID: 2024
           Summary: MSVC C++ warning due to conversion from ptrdiff_t to
                    int in pcre_exec.c
           Product: PCRE
           Version: 8.40
          Hardware: x86-64
                OS: Windows
            Status: NEW
          Severity: wishlist
          Priority: medium
         Component: Code
          Assignee: p...@hermes.cam.ac.uk
          Reporter: mi...@fastmail.com
                CC: pcre-dev@exim.org

Compiling PCRE-8.40 using any Visual Studio version and the x64 Microsoft
compilers, a warning is thrown for pcre_exec.c, due to an implicit conversion
of a pointer difference to int:

3rdparty\pcre-8.39\pcre_exec.c(672): warning C4244: 'initializing' : conversion
from '__int64' to 'int', possible loss of data

The relevant line (672):
int len = (char *)&rdepth - (char *)eptr;

int on x64 on Windows is still only 32 bits wide, while ptrdiff_t is 64 of
course.

Looking at the referenced pointers, it seems using 32 bits is safe. I therefore
propose explicitly casting the subtraction result to an int, to get rid of the
warning.

Thanks,
Milan

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to