Alvaro and Tom,

A big thank you.  That seems to have done the trick.  My compiler warnings
went away and no more syntax errors in the regress tests.  I still have some
regress failures I got to hunt down, but those could be caused by places in
the code I did not replace PRId64 calls or something else.


> Huh.  Apparently, whichever Windows compiler you're using defines
> PRId64 as "d", which surely seems pretty broken.

I think it was only failing on the postgresql function calls.  
The  simple test Sandro Santilli had me run

--- testint.c ---
#include <stdint.h>
#include <inttypes.h>
#include <stdio.h>
int main()
{
  int64_t x = 1;
  printf("%" PRId64, x);
  return 0;
}


Printed: 1

And this: gcc -Wall -E testint.c | grep '\(printf.*x)\| int64_t;\)'
Returned:
__extension__ typedef long long int64_t;
  printf("%" "I64d", x);


> You did not say how you're declaring the variable that's being printed
here, but if it's based on the int64 type declared by c.h, you should use
the INT64_FORMAT or INT64_MODIFIER strings declared by c.h/pg_config.h.

The types are defined as:

/* INT64 */
typedef int64_t LWT_INT64;
/** Identifier of topology element */
typedef LWT_INT64 LWT_ELEMID;

in this file.
https://trac.osgeo.org/postgis/browser/trunk/liblwgeom/liblwgeom_topo.h

Anyway thanks again. Very much appreciated.

Regina




-- 
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