https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87876

            Bug ID: 87876
           Summary: Mac failing: conversion from longdouble to long int is
                    ambiguous
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: d
          Assignee: ibuclaw at gdcproject dot org
          Reporter: mcccs at gmx dot com
  Target Milestone: ---

macOS 10.14.1
compiled with GCC 8.2

/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:1162:50: error:
conversion from 'real_t' {aka 'longdouble'} to 'sinteger_t' {aka 'long int'} is
ambiguous
                     result = (d_int8)(sinteger_t)r;
                                                  ^
In file included from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/root/ctfloat.h:11,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/globals.h:14,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/errors.h:13,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:22:
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:54:3: note: candidate:
'longdouble::operator int32_t()'
   operator int32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:57:3: note: candidate:
'longdouble::operator int64_t()'
   operator int64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:60:3: note: candidate:
'longdouble::operator uint32_t()'
   operator uint32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:63:3: note: candidate:
'longdouble::operator uint64_t()'
   operator uint64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:66:3: note: candidate:
'longdouble::operator bool()'
   operator bool (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:1166:50: error:
conversion from 'real_t' {aka 'longdouble'} to 'dinteger_t' {aka 'long unsigned
int'} is ambiguous
                     result = (d_uns8)(dinteger_t)r;
                                                  ^
In file included from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/root/ctfloat.h:11,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/globals.h:14,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/errors.h:13,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:22:
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:54:3: note: candidate:
'longdouble::operator int32_t()'
   operator int32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:57:3: note: candidate:
'longdouble::operator int64_t()'
   operator int64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:60:3: note: candidate:
'longdouble::operator uint32_t()'
   operator uint32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:63:3: note: candidate:
'longdouble::operator uint64_t()'
   operator uint64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:66:3: note: candidate:
'longdouble::operator bool()'
   operator bool (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:1169:51: error:
conversion from 'real_t' {aka 'longdouble'} to 'sinteger_t' {aka 'long int'} is
ambiguous
                     result = (d_int16)(sinteger_t)r;
                                                   ^
In file included from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/root/ctfloat.h:11,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/globals.h:14,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/errors.h:13,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:22:
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:54:3: note: candidate:
'longdouble::operator int32_t()'
   operator int32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:57:3: note: candidate:
'longdouble::operator int64_t()'
   operator int64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:60:3: note: candidate:
'longdouble::operator uint32_t()'
   operator uint32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:63:3: note: candidate:
'longdouble::operator uint64_t()'
   operator uint64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:66:3: note: candidate:
'longdouble::operator bool()'
   operator bool (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:1173:51: error:
conversion from 'real_t' {aka 'longdouble'} to 'dinteger_t' {aka 'long unsigned
int'} is ambiguous
                     result = (d_uns16)(dinteger_t)r;
                                                   ^
In file included from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/root/ctfloat.h:11,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/globals.h:14,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/errors.h:13,
                 from
/Users/username/Downloads/gcc-trunk/gcc/d/dmd/constfold.c:22:
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:54:3: note: candidate:
'longdouble::operator int32_t()'
   operator int32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:57:3: note: candidate:
'longdouble::operator int64_t()'
   operator int64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:60:3: note: candidate:
'longdouble::operator uint32_t()'
   operator uint32_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:63:3: note: candidate:
'longdouble::operator uint64_t()'
   operator uint64_t (void)
   ^~~~~~~~
/Users/username/Downloads/gcc-trunk/gcc/d/longdouble.h:66:3: note: candidate:
'longdouble::operator bool()'
   operator bool (void)
   ^~~~~~~~
make[2]: *** [d/constfold.o] Error 1
make[1]: *** [all-gcc] Error 2
make: *** [all] Error 2

Reply via email to