On Tue, Aug 21, 2018 at 11:16 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Andres Freund <and...@anarazel.de> writes: >> On 2018-08-21 13:29:20 -0400, Tom Lane wrote: >>> We've got a buildfarm handy that could answer the question. >>> Let's just stick a test function in there for a day and see >>> which animals fail. > >> I think we pretty much know the answer already, anything before 2013 >> will fail. > > Do we know that for sure? I thought it was theoretical. >
I have MSVC 2010 on my Windows 7 VM where I have tried the C99 constructs provided by Peter E. and below are my findings: Tried compiling below function in one of the .c files in the src/backend ----------------------------------------------------------------------------------------------- int bar() { int x; x = 1; int y; y = 2; for (int i = 0; i < 5; i++) ; return 0; } error C2143: syntax error : missing ';' before 'type' error C2065: 'y' : undeclared identifier error C2143: syntax error : missing ';' before 'type' error C2143: syntax error : missing ';' before 'type' error C2143: syntax error : missing ')' before 'type' error C2143: syntax error : missing ';' before 'type' error C2065: 'i' : undeclared identifier warning C4552: '<' : operator has no effect; expected operator with side-effect error C2065: 'i' : undeclared identifier error C2059: syntax error : ')' Tried compiling below struct in one of the .c files in the src/backend ----------------------------------------------------------------------------------------------- struct foo { int a; int b; }; struct foo f = { .a = 1, .b = 2 }; error C2059: syntax error : '.' I have also tried compiling above in standalone console application project in MSVC 2010 and able to compile the function successfully, but struct is giving the same error as above. So, it seems to me that it won't work on <= MSVC 2010. I am personally okay with upgrading my Windows VM. I have found a couple of links which suggest that MSVC 2015 has a good amount of conformance with C99 [1]. It seems MSVC 2013 also has decent support for C99 [2], but I am not able to verify if the constructs shared by Peter E can be compiled on it. [1] https://social.msdn.microsoft.com/Forums/en-US/fa17bcdd-7165-4645-a676-ef3797b95918/details-on-c99-support-in-msvc?forum=vcgeneral [2] https://blogs.msdn.microsoft.com/vcblog/2013/07/19/c99-library-support-in-visual-studio-2013/ -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com