From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: tableam.h fails cpluspluscheck |
Date: | 2019-05-30 20:47:05 |
Message-ID: | 20190530204705.3xnmpuxd23tovbyb@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2019-05-30 14:01:00 -0400, Tom Lane wrote:
> Using Apple's clang as c++ compiler:
>
> In file included from /tmp/cpluspluscheck.KejiIw/test.cpp:3:
> ./src/include/access/tableam.h:144:16: error: typedef redefinition with different types ('void (*)(Relation, HeapTuple, Datum *, bool *, bool, void *)' (aka 'void (*)(RelationData *, HeapTupleData *, unsigned long *, bool *, bool, void *)') vs 'IndexBuildCallback')
> typedef void (*IndexBuildCallback) (Relation index,
> ^
> ./src/include/access/tableam.h:36:8: note: previous definition is here
> struct IndexBuildCallback;
> ^
>
> (there are some cascading errors, but this is the important one)
>
> Kinda looks like you can't get away with using "struct" on a forward
> declaration of something that is not actually a struct type.
Ugh. Odd that only C++ compilers complain. I just removed the typedef,
it's not needed anymore (it used to be neccessary before moving
IndexBuildCallback's definition to tableam.h - but was wrong then too,
just cpluspluscheck didn't notice).
Pushed the obvious fix.
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2019-05-30 21:31:54 | Re: Ought to use heap_multi_insert() for pg_attribute/depend insertions? |
Previous Message | Joe Conway | 2019-05-30 20:26:37 | Re: New committer: David Rowley |