On 04/24/2011 09:11 AM, Andrew Chernow wrote:
On 4/24/2011 1:29 AM, Andrew Dunstan wrote:

The attached patch is intended to clean up a bunch of compiler warnings seen on
Windows due to mismatches of signedness or constness, unused variables,
redefined macros and a missing prototype.

It doesn't clean up all the warnings by any means, but it fixes quite a few.

One thing I'm a bit confused about is this type of warning:

src\backend\utils\misc\guc-file.c(977): warning C4003: not enough actual
parameters for macro 'GUC_yywrap'


If someone can suggest a good fix That would be nice.


The macro is defined as taking one argument.

// guc-file.c line 354
#define GUC_yywrap(n) 1

The macro is overriding the prototype declared at line 627, which has a void argument list (assuming YY_SKIP_YYWRAP is !defined). Since all code references to this do not provide an argument, I'd say the macro is incorrect.


Here's the fix that worked for me:

   *** a/src/tools/msvc/pgflex.bat
   --- b/src/tools/msvc/pgflex.bat
   ***************
   *** 25,32 **** if "%1" == "contrib\seg\segscan.l" call :generate %1 
contrib\seg\segscan.c
   --- 25,38 ----
      echo Unknown flex input: %1
exit 1
   + REM for non-reentrant scanners we need to fix up yywrap definition
   + REM to keep the MS compiler happy
   + REM for reentrant scanners (like the core scanner) we do not
   + REM need to (and must not) change the yywrap definition
      :generate
      flex %3 -o%2 %1
   + if errorlevel 1 exit %errorlevel%
   + if not "%1" == "src\backend\parser\scan.l" perl -pi.bak -e 
"s/yywrap\(n\)/yywrap()/" %2
exit %errorlevel% :noflex


cheers

andrew



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to