No, I just fail.  I somehow thought the check was against the Offset parameter.<br><br>Is changing the function to take a size_t an option?<br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 21, 2017 at 7:23 AM Roman Lebedev via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">lebedev.ri added a comment.<br>
<br>
On Thu, Sep 21, 2017 at 4:56 PM, Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
<br>
> I would move this logic into the init function.<br>
<br>
Do note that the check is comparing length (function param), and not Size<br>
(class member variable), even thought they currently have the same data type.<br>
<br>
> But there's another problem. mmap doesn't even accept a size_t, it accepts<br>
>  an off_t. Also, as far as I'm aware, off_t is a signed type. So perhaps you<br>
>  can compare against std::numeric_limits<off_t>::max() which will never be a<br>
>  tautological comparison<br>
<br>
Hmm, am i looking in the wrong place?<br>
<br>
  MMAP(3POSIX)                                                                                                            POSIX Programmer's Manual                                                                                                           MMAP(3POSIX)<br>
<br>
  PROLOG<br>
        This manual page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may differ (consult the corresponding Linux manual page for details of Linux behavior), or the interface may not be implemented on Linux.<br>
<br>
  NAME<br>
        mmap — map pages of memory<br>
<br>
  SYNOPSIS<br>
        #include <sys/mman.h><br>
<br>
        void *mmap(void *addr, size_t len, int prot, int flags,<br>
            int fildes, off_t off);<br>
<br>
<br>
<br>
  MMAP(2)                                                                                                                 Linux Programmer's Manual                                                                                                                MMAP(2)<br>
<br>
  NAME<br>
        mmap, munmap - map or unmap files or devices into memory<br>
<br>
  SYNOPSIS<br>
        #include <sys/mman.h><br>
<br>
        void *mmap(void *addr, size_t length, int prot, int flags,<br>
                   int fd, off_t offset);<br>
        int munmap(void *addr, size_t length);<br>
<br>
`mman.h`:<br>
<br>
  #ifndef __USE_FILE_OFFSET64<br>
  extern void *mmap (void *__addr, size_t __len, int __prot,<br>
                   int __flags, int __fd, __off_t __offset) __THROW;<br>
  #else<br>
  # ifdef __REDIRECT_NTH<br>
  extern void * __REDIRECT_NTH (mmap,<br>
                              (void *__addr, size_t __len, int __prot,<br>
                               int __flags, int __fd, __off64_t __offset),<br>
                              mmap64);<br>
  # else<br>
  #  define mmap mmap64<br>
  # endif<br>
  #endif<br>
<br>
<br>
Repository:<br>
  rL LLVM<br>
<br>
<a href="https://reviews.llvm.org/D38132" rel="noreferrer" target="_blank">https://reviews.llvm.org/D38132</a><br>
<br>
<br>
<br>
</blockquote></div>