Re: Remove MSVC scripts from the tree

From: Andres Freund <andres(at)anarazel(dot)de>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: Peter Eisentraut <peter(at)eisentraut(dot)org>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Michael Paquier <michael(at)paquier(dot)xyz>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Remove MSVC scripts from the tree
Date: 2023-12-07 17:34:00
Message-ID: 20231207173400.vsn7hzetqqj7voln@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On 2023-12-07 12:33:35 +0100, Alvaro Herrera wrote:
> 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.)

It seems like both might be interesting? But I think there's no reason to not
evolve this test if we need to. I think I wrote it testing with a few old *nix
compilers to see where -std=c99 was needed, not more. It's not too surprising
that it might need some massaging for older msvc...

However: I used godbolt to compile the test code on msvc, and it seems to
build with 19.15 (which is the version Andrew referenced upthread), with a
warning that's triggered independent of the structfunc bit.

https://godbolt.org/z/j99E9MeEK

Andrew, could you attach meson.log from the failed build?

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Cramer 2023-12-07 17:54:27 errors building on windows using meson
Previous Message Andrey Borodin 2023-12-07 17:32:20 Re: Proposal to add page headers to SLRU pages