Skip to content

Commit

Permalink
Merge pull request #6936 from rainers/issue17551
Browse files Browse the repository at this point in the history
fix issue 17551 - VC build: bad mangling of real template argument
  • Loading branch information
WalterBright committed Jun 25, 2017
2 parents 5b56b88 + 6b0a15d commit 16f4f4b
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/ddmd/root/longdouble.c
Expand Up @@ -567,12 +567,15 @@ size_t ld_sprint(char* str, int fmt, longdouble x)
unsigned long long mantissa = x.mantissa;

if(ld_type(x) == LD_TYPE_ZERO)
return sprintf(str, "0x0.0L");
return sprintf(str, fmt == 'a' ? "0x0.0L" : "0X0.0L");

size_t len = 0;
if(x.sign)
str[len++] = '-';
len += sprintf(str + len, mantissa & (1LL << 63) ? "0x1." : "0x0.");
str[len++] = '0';
str[len++] = 'X' + fmt - 'A';
str[len++] = mantissa & (1LL << 63) ? '1' : '0';
str[len++] = '.';
mantissa = mantissa << 1;
while(mantissa)
{
Expand All @@ -581,7 +584,7 @@ size_t ld_sprint(char* str, int fmt, longdouble x)
str[len++] = dig;
mantissa = mantissa << 4;
}
str[len++] = 'p';
str[len++] = 'P' + fmt - 'A';
if(exp < 0x3fff)
{
str[len++] = '-';
Expand Down

0 comments on commit 16f4f4b

Please sign in to comment.