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

            Bug ID: 87788
           Summary: [9 Regression] Bootstrap fails for
                    x86_64-apple-darwin* with default languages selection
                    after D addition.
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
          Assignee: unassigned at gcc dot gnu.org
          Reporter: iains at gcc dot gnu.org
  Target Milestone: ---

bootstrap fails at stage #2 with:

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

Reply via email to