Build error on Windows 10 of version 9.5.10 using Visual Studio 2015 - Mailing list pgsql-bugs

From Kenneth Reister
Subject Build error on Windows 10 of version 9.5.10 using Visual Studio 2015
Date
Msg-id CAFRyj_7WBD6XtaTD8xD9PSJCsJK1CTOavmZ2aA2vzO7_71t8sg@mail.gmail.com
Whole thread Raw
Responses Re: Build error on Windows 10 of version 9.5.10 using Visual Studio 2015  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
Steps:
extract source
copy tools\msvc\config_default.pl to  tools\msvc\config.pl and put in custom path to our build of openssl
clean.bat
build.bat


zic.exe fails to compile with an internal fatal error from the CompilerDriver.

I wound up having to change this function (zic.c:1811)
static void
convert(const int32 val, char *const buf)
{
int i;
int shift;
unsigned char *const b = (unsigned char *) buf;

for (i = 0, shift = 24; i < 4; ++i, shift -= 8)
b[i] = val >> shift;
}

to look like this:

static void
convert(const int32 val, char *const buf)
{
unsigned char *const b = (unsigned char *) buf;
b[0] = val >> 24;
b[1] = val >> 16;
b[2] = val >> 8;
b[3] = val >> 0;
}

I tried moving the next function (convert64) up above that function to see if it was just griping about the "first" instance of the val >> shift, but strangely it had no issue compiling convert64 and still failing on convert.  Several devs here were surprised it would compile essentially the same exact code for one function, but not the other.  Whether this was truly a bug, or perhaps a problem with the system I tried it on I leave to your investigation.  Since there is no real difference in functionality, I proceeded with the change and my compile.

pgsql-bugs by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: VARBIT question
Next
From: postgresql@eric.brechemier.name
Date:
Subject: BUG #14971: point outside polygon is reported inside polygon