ecpg problem : pre-processor translated long constant to char

From: Raymond Fung <raymondf(at)acm(dot)org>
To: pgsql-admin <pgsql-admin(at)postgresql(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: ecpg problem : pre-processor translated long constant to char
Date: 2002-07-04 02:00:01
Message-ID: 3D23AC21.FC1D6579@iohk.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-hackers

Dear all,

A simple testing program :

* * * * * * * * * * * * * * begin * * * * * * * * * * * * * * * *

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
unsigned int v;

v = 0x87654321L;

return (0);
}

* * * * * * * * * * * * * * end * * * * * * * * * * * * * * * *

compile with ecpg using :

ecpg -o mytest.c -I/usr/include/pgsql mytest.pgc

produces the output C program file as follow :

* * * * * * * * * * * * * * begin * * * * * * * * * * * * * * * *

/* Processed by ecpg (2.8.0) */
/* These three include files are added by the preprocessor */
#include <ecpgtype.h>
#include <ecpglib.h>
#include <ecpgerrno.h>
#line 1 "test.pgc"
#include <stdio.h>
#include <stdlib.h>

int main (void)
{
unsigned int v;

v = '0x87654321'L;

return (0);
}

* * * * * * * * * * * * * * * end * * * * * * * * * * * * * * *

It has translated the 4 bytes constant (0x87654321) into a one byte
char constant (within the single quotes) during pre-processing. Seems
this happens only when the high bit of the constant is set (i.e. it
won't add the quotes if the constant is 0x12345678).

Also, I noticed that the line number reported during the preprocessing
error output is incorrect : it is '1' less than the actual line number
in the source file. As shown, I am using version 2.8.0 of ecpg. Is my
version being too old to be buggy ? Any suggestion to bypass the
translation problem ?

Thanks,
Raymond Fung.

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Oon Arfiandwi Martyono 2002-07-04 06:00:53 Database Access Limitation (cann't use IDENT).
Previous Message Kris Deugau 2002-07-03 21:49:19 Re: Database directory names

Browse pgsql-hackers by date

  From Date Subject
Next Message Christopher Kings-Lynne 2002-07-04 02:00:11 Re: BETWEEN Node & DROP COLUMN
Previous Message Hiroshi Inoue 2002-07-04 01:27:15 Re: BETWEEN Node & DROP COLUMN