Fix gcc warning in sync.c (usr/src/backend/storage/sync/sync.c)

Поиск
Список
Период
Сортировка
От Ranier Vilela
Тема Fix gcc warning in sync.c (usr/src/backend/storage/sync/sync.c)
Дата
Msg-id CAEudQArDrFyQ15Am3rgWBunGBVZFDb90onTS8SRiFAWHeiLiFA@mail.gmail.com
обсуждение исходный текст
Ответы Re: Fix gcc warning in sync.c (usr/src/backend/storage/sync/sync.c)  (Kyotaro Horiguchi <horikyota.ntt@gmail.com>)
Список pgsql-hackers
Hi,

In one of my compilations of Postgres, I noted this warning from gcc.

gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -I../../../../src/include  -D_GNU_SOURCE   -c -o sync.o sync.c
sync.c: In function ‘RememberSyncRequest’:
sync.c:528:10: warning: assignment to ‘PendingFsyncEntry *’ {aka ‘struct <anonymous> *’} from incompatible pointer type ‘PendingUnlinkEntry *’ {aka ‘struct <anonymous> *’} [-Wincompatible-pointer-types]
  528 |    entry = (PendingUnlinkEntry *) lfirst(cell);

Although the structures are identical, gcc bothers to assign a pointer from one to the other.

typedef struct
{
FileTag tag; /* identifies handler and file */
CycleCtr cycle_ctr; /* sync_cycle_ctr of oldest request */
bool canceled; /* canceled is true if we canceled "recently" */
} PendingFsyncEntry;

typedef struct
{
FileTag tag; /* identifies handler and file */
CycleCtr cycle_ctr; /* checkpoint_cycle_ctr when request was made */
bool canceled; /* true if request has been canceled */
} PendingUnlinkEntry;

The patch tries to fix this.

regards,
Ranier Vilela
Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Making CallContext and InlineCodeBlock less special-case-y
Следующее
От: Thomas Munro
Дата:
Сообщение: Cleaning up historical portability baggage