[MacPorts] #43353: clang-3.4: error: 'assertion_failed__839' declared as an array with a negative size

MacPorts noreply at macports.org
Thu Apr 17 21:54:15 PDT 2014


#43353: clang-3.4: error: 'assertion_failed__839' declared as an array with a
negative size
---------------------------+------------------------
  Reporter:  ryandesign@…  |      Owner:  jeremyhu@…
      Type:  defect        |     Status:  new
  Priority:  Normal        |  Milestone:
 Component:  ports         |    Version:  2.2.1
Resolution:                |   Keywords:  leopard
      Port:  clang-3.4     |
---------------------------+------------------------

Comment (by jeremyhu@…):

 So I ran the exact same thing on my system and compared the preprocessed
 results.  Modulo the working dir, this is the full set of changes:

 {{{
 --- Desktop/mine        2014-04-17 21:49:44.000000000 -0700
 +++ Downloads/thing_to_attach   2014-04-17 21:50:54.000000000 -0700
 @@ -468,9 +468,9 @@ typedef __uint32_t __darwin_gid_t;
  typedef __uint32_t __darwin_id_t;
  typedef __uint64_t __darwin_ino64_t;

 -typedef __darwin_ino64_t __darwin_ino_t;


 +typedef __uint32_t __darwin_ino_t;

  typedef __darwin_natural_t __darwin_mach_port_name_t;
  typedef __darwin_mach_port_name_t __darwin_mach_port_t;
 @@ -947,10 +947,18 @@ typedef __darwin_ino_t ino_t;


  #pragma pack(4)
 -# 101 "/usr/include/sys/dirent.h" 3 4
 +
 +
 +struct dirent {
 + ino_t d_ino;
 + __uint16_t d_reclen;
 + __uint8_t d_type;
 + __uint8_t d_namlen;
 + char d_name[255 + 1];
 +};
 +
 +
  #pragma pack()
 -# 115 "/usr/include/sys/dirent.h" 3 4
 -struct dirent { __uint64_t d_ino; __uint64_t d_seekoff; __uint16_t
 d_reclen; __uint16_t d_namlen; __uint8_t d_type; char d_name[1024]; };
  # 67 "/usr/include/dirent.h" 2 3 4

  struct _telldir;
 @@ -971,25 +979,25 @@ typedef struct {
  # 102 "/usr/include/dirent.h" 3 4
  extern "C" {

 -int alphasort(const void *, const void *) __asm("_" "alphasort"
 "$INODE64");
 +int alphasort(const void *, const void *) __asm("_" "alphasort") ;

  int closedir(DIR *) __asm("_" "closedir" "$UNIX2003");

  int getdirentries(int, char *, int, long *);

 -DIR *opendir(const char *) __asm("_" "opendir" "$INODE64" "$UNIX2003");
 +DIR *opendir(const char *) __asm("_" "opendir" "$UNIX2003") ;

 -DIR *__opendir2(const char *, int) __asm("_" "__opendir2" "$INODE64"
 "$UNIX2003");
 +DIR *__opendir2(const char *, int) __asm("_" "__opendir2" "$UNIX2003") ;

 -struct dirent *readdir(DIR *) __asm("_" "readdir" "$INODE64");
 -int readdir_r(DIR *, struct dirent *, struct dirent **) __asm("_"
 "readdir_r" "$INODE64");
 -void rewinddir(DIR *) __asm("_" "rewinddir" "$INODE64" "$UNIX2003");
 +struct dirent *readdir(DIR *) __asm("_" "readdir") ;
 +int readdir_r(DIR *, struct dirent *, struct dirent **) __asm("_"
 "readdir_r") ;
 +void rewinddir(DIR *) __asm("_" "rewinddir" "$UNIX2003") ;

  int scandir(const char *, struct dirent ***,
 -    int (*)(struct dirent *), int (*)(const void *, const void *))
 __asm("_" "scandir" "$INODE64");
 +    int (*)(struct dirent *), int (*)(const void *, const void *))
 __asm("_" "scandir") ;

 -void seekdir(DIR *, long) __asm("_" "seekdir" "$INODE64" "$UNIX2003");
 -long telldir(DIR *) __asm("_" "telldir" "$INODE64" "$UNIX2003");
 +void seekdir(DIR *, long) __asm("_" "seekdir" "$UNIX2003") ;
 +long telldir(DIR *) __asm("_" "telldir" "$UNIX2003") ;
  }
  # 24
 "/opt/local/var/macports/build/_Users_jeremy_src_macports_trunk_dports_lang_llvm-3.4/clang-3.4/work/llvm-3.4/projects
 /compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc" 2
  # 1 "/usr/include/errno.h" 1 3 4
 @@ -2691,20 +2699,44 @@ struct ostat {
   __uint32_t st_flags;
   __uint32_t st_gen;
  };
 -# 224 "/usr/include/sys/stat.h" 3 4
 -struct stat { dev_t st_dev; mode_t st_mode; nlink_t st_nlink;
 __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; struct
 timespec st_atimespec; struct timespec st_mtimespec; struct timespec
 st_ctimespec; struct timespec st_birthtimespec; off_t st_size; blkcnt_t
 st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen;
 __int32_t st_lspare; __int64_t st_qspare[2]; };
 -# 261 "/usr/include/sys/stat.h" 3 4
 +# 228 "/usr/include/sys/stat.h" 3 4
 +struct stat {
 + dev_t st_dev;
 + ino_t st_ino;
 + mode_t st_mode;
 + nlink_t st_nlink;
 + uid_t st_uid;
 + gid_t st_gid;
 + dev_t st_rdev;
 +
 + struct timespec st_atimespec;
 + struct timespec st_mtimespec;
 + struct timespec st_ctimespec;
 +# 248 "/usr/include/sys/stat.h" 3 4
 + off_t st_size;
 + blkcnt_t st_blocks;
 + blksize_t st_blksize;
 + __uint32_t st_flags;
 + __uint32_t st_gen;
 + __int32_t st_lspare;
 + __int64_t st_qspare[2];
 +};
 +
 +
 +
 +
 +
  struct stat64 { dev_t st_dev; mode_t st_mode; nlink_t st_nlink;
 __darwin_ino64_t st_ino; uid_t st_uid; gid_t st_gid; dev_t st_rdev; struct
 timespec st_atimespec; struct timespec st_mtimespec; struct timespec
 st_ctimespec; struct timespec st_birthtimespec; off_t st_size; blkcnt_t
 st_blocks; blksize_t st_blksize; __uint32_t st_flags; __uint32_t st_gen;
 __int32_t st_lspare; __int64_t st_qspare[2]; };
  # 422 "/usr/include/sys/stat.h" 3 4
  extern "C" {

  int chmod(const char *, mode_t) __asm("_" "chmod" "$UNIX2003");
  int fchmod(int, mode_t) __asm("_" "fchmod" "$UNIX2003");
 -int fstat(int, struct stat *) __asm("_" "fstat" "$INODE64");
 -int lstat(const char *, struct stat *) __asm("_" "lstat" "$INODE64");
 +int fstat(int, struct stat *) __asm("_" "fstat") ;
 +int lstat(const char *, struct stat *) __asm("_" "lstat") ;
  int mkdir(const char *, mode_t);
  int mkfifo(const char *, mode_t);
 -int stat(const char *, struct stat *) __asm("_" "stat" "$INODE64");
 +int stat(const char *, struct stat *) __asm("_" "stat") ;
  int mknod(const char *, mode_t, dev_t);
  mode_t umask(mode_t);

 @@ -2718,13 +2750,13 @@ int chflags(const char *, __uint32_t);
  int chmodx_np(const char *, filesec_t);
  int fchflags(int, __uint32_t);
  int fchmodx_np(int, filesec_t);
 -int fstatx_np(int, struct stat *, filesec_t) __asm("_" "fstatx_np"
 "$INODE64");
 +int fstatx_np(int, struct stat *, filesec_t) __asm("_" "fstatx_np") ;
  int lchflags(const char *, __uint32_t);
  int lchmod(const char *, mode_t);
 -int lstatx_np(const char *, struct stat *, filesec_t) __asm("_"
 "lstatx_np" "$INODE64");
 +int lstatx_np(const char *, struct stat *, filesec_t) __asm("_"
 "lstatx_np") ;
  int mkdirx_np(const char *, filesec_t);
  int mkfifox_np(const char *, filesec_t);
 -int statx_np(const char *, struct stat *, filesec_t) __asm("_" "statx_np"
 "$INODE64");
 +int statx_np(const char *, struct stat *, filesec_t) __asm("_"
 "statx_np") ;
  int umaskx_np(filesec_t);

  int fstatx64_np(int, struct stat64 *, filesec_t);
 @@ -3856,11 +3888,37 @@ struct searchstate {
  typedef struct fsid { int32_t val[2]; } fsid_t;
  # 111 "/usr/include/sys/mount.h" 3 4
  struct statfs64 { uint32_t f_bsize; int32_t f_iosize; uint64_t f_blocks;
 uint64_t f_bfree; uint64_t f_bavail; uint64_t f_files; uint64_t f_ffree;
 fsid_t f_fsid; uid_t f_owner; uint32_t f_type; uint32_t f_flags; uint32_t
 f_fssubtype; char f_fstypename[16]; char f_mntonname[1024]; char
 f_mntfromname[1024]; uint32_t f_reserved[8]; };
 +# 122 "/usr/include/sys/mount.h" 3 4
 +struct statfs {
 + short f_otype;
 + short f_oflags;
 + long f_bsize;
 + long f_iosize;
 + long f_blocks;
 + long f_bfree;
 + long f_bavail;
 + long f_files;
 + long f_ffree;
 + fsid_t f_fsid;
 + uid_t f_owner;
 + short f_reserved1;
 + short f_type;
 + long f_flags;
 + long f_reserved2[2];
 + char f_fstypename[15];
 + char f_mntonname[90];
 + char f_mntfromname[90];
 +
 +
 +
 +
 + char f_reserved3;
 + long f_reserved4[4];
 +
 +};



 -struct statfs { uint32_t f_bsize; int32_t f_iosize; uint64_t f_blocks;
 uint64_t f_bfree; uint64_t f_bavail; uint64_t f_files; uint64_t f_ffree;
 fsid_t f_fsid; uid_t f_owner; uint32_t f_type; uint32_t f_flags; uint32_t
 f_fssubtype; char f_fstypename[16]; char f_mntonname[1024]; char
 f_mntfromname[1024]; uint32_t f_reserved[8]; };
 -# 152 "/usr/include/sys/mount.h" 3 4
  #pragma pack(4)

  struct vfsstatfs {
 @@ -3921,15 +3979,15 @@ typedef struct fhandle fhandle_t;

  extern "C" {
  int fhopen(const struct fhandle *, int);
 -int fstatfs(int, struct statfs *) __asm("_" "fstatfs" "$INODE64");
 +int fstatfs(int, struct statfs *) __asm("_" "fstatfs") ;
  int fstatfs64(int, struct statfs64 *);
  int getfh(const char *, fhandle_t *);
 -int getfsstat(struct statfs *, int, int) __asm("_" "getfsstat"
 "$INODE64");
 +int getfsstat(struct statfs *, int, int) __asm("_" "getfsstat") ;
  int getfsstat64(struct statfs64 *, int, int);
 -int getmntinfo(struct statfs **, int) __asm("_" "getmntinfo" "$INODE64");
 +int getmntinfo(struct statfs **, int) __asm("_" "getmntinfo") ;
  int getmntinfo64(struct statfs64 **, int);
  int mount(const char *, const char *, int, void *);
 -int statfs(const char *, struct statfs *) __asm("_" "statfs" "$INODE64");
 +int statfs(const char *, struct statfs *) __asm("_" "statfs") ;
  int statfs64(const char *, struct statfs64 *);
  int unmount(const char *, int);
  int getvfsbyname(const char *, struct vfsconf *);

 }}}

 Can you figure out why/where `__DARWIN_64_BIT_INO_T`  or
 `_DARWIN_NO_64_BIT_INODE` are being defined for you?  They're not on the
 command line.

-- 
Ticket URL: <https://trac.macports.org/ticket/43353#comment:10>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list