Re: Remove MSVC scripts from the tree - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: Remove MSVC scripts from the tree
Date
Msg-id 202312071133.xqkoqngn5mt2@alvherre.pgsql
Whole thread Raw
In response to Re: Remove MSVC scripts from the tree  (Peter Eisentraut <peter@eisentraut.org>)
Responses Re: Remove MSVC scripts from the tree
List pgsql-hackers
On 2023-Dec-07, Peter Eisentraut wrote:

> On 06.12.23 21:52, Andrew Dunstan wrote:

> > Yes, if I comment out the call to structfunc() the test passes on VS2017
> > (compiler version 19.15.26726)
> 
> This is strange, because we use code like that in the tree.  There must be
> some small detail that trips it up here.

Well, We have things like these

typedef struct _archiveOpts
{
    ...
} ArchiveOpts;
#define ARCHIVE_OPTS(...) &(ArchiveOpts){__VA_ARGS__}

XL_ROUTINE is quite similar.

These are then used like
                     ARCHIVE_OPTS(.tag = "pg_largeobject",
                                  .description = "pg_largeobject",
                                  .section = SECTION_PRE_DATA,
                                  .createStmt = loOutQry->data));

so the difference is that we're passing a pointer to a struct, not
the struct bare, which is what c99_test is doing:

struct named_init_test {
  int a;
  int b;
};

int main() {
  ...
  structfunc((struct named_init_test){1, 0});
}

Maybe this would work if the function received the pointer too?


extern void structfunc(struct named_init_test *);

  structfunc(&(struct named_init_test){1, 0});

The fact that this is called "structfunc" makes me wonder if the author
did indeed want to test passing a struct to the function.  That'd be
odd, since the interesting thing in this line is the expression used to
initialize the struct argument.  (We do pass structs, eg. ObjectAddress
to check_object_ownership; old code.)

-- 
Álvaro Herrera        Breisgau, Deutschland  —  https://www.EnterpriseDB.com/
"No renuncies a nada. No te aferres a nada."



pgsql-hackers by date:

Previous
From: vignesh C
Date:
Subject: Re: pg_upgrade and logical replication
Next
From: Amit Kapila
Date:
Subject: Re: Synchronizing slots from primary to standby