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