Andres Freund <andres@anarazel.de> writes:
> On 2016-04-13 23:31:21 -0700, Andres Freund wrote:
>> I'm also putting up an animal with clang that uses
>> CFLAGS='-std=c89 -Wc99-extensions -Werror=c99-extensions'
>> which actually catches this.
> Hm. Doing so I found the following in 9.3:
> /home/andres/src/postgresql-9.3/src/bin/pg_dump/parallel.c:561:23: error: initializer for aggregate is not a
compile-timeconstant [-Werror,-Wc99-extensions]
> int pipefd[2] = {pipeMW[PIPE_READ], pipeWM[PIPE_WRITE]};
> ^~~~~~~~~~~~~~~~~
> which is, afaics, the same class of issue we're hitting on master right
> now. I apparently fixed that, via Robert, back in 59202fae0. I'd planned
> to put up that animal (mylodon) for all branches, but given that that's
> been unfixed for years I'm not sure. What do you think?
Huh. I just tried pademelon's compiler on the 9.3 branch, and sure
enough it spits up on that:
cc: "parallel.c", line 561: error 1521: Incorrect initialization.
cc: "parallel.c", line 561: error 1521: Incorrect initialization.
make: *** [parallel.o] Error 1
I am not sure how come I missed seeing that at the time, but I certainly
would have complained about it if I had chanced to try that compiler
later in 9.3 development. I stopped using that machine actively in
mid-2013, though, so maybe I just failed to try that compiler for a
period of a few months. IIRC, when I got around to setting up pademelon
as a buildfarm animal, I didn't have it building anything older than 9.4,
so I missed seeing it on that end too.
I'd vote for back-patching 59202fae0 and enforcing c89 compatibility
all along the line.
regards, tom lane