Compilation warning on 9.5 - Mailing list pgsql-hackers

From Vicky Vergara
Subject Compilation warning on 9.5
Date
Msg-id BAY177-W746905DB451ED4ABE6F248AA90@phx.gbl
Whole thread Raw
Responses Re: Compilation warning on 9.5
List pgsql-hackers
Hello:

I am a pgRouting developer.

In my CmakeLists.txt I use this flags:
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -fPIC -O2 -g -Wall -Wconversion -pedantic -fmax-errors=10 -Wmissing-prototypes -frounding-math") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -fPIC -O2 -g -Wconversion -Wall -pedantic -fmax-errors=10 -Wextra -frounding-math -Wno-deprecated")

for testing I use travis CI framework and test pgRouting using postgresql 9.1 to 9.5
I follow the instructions for including:
#include "postgres.h"
#include "executor/spi.h"
#include "funcapi.h"
#include "catalog/pg_type.h"
#if PGSQL_VERSION > 92
#include "access/htup_details.h"
#endif
#include "fmgr.h"


I wonder if -std=gnu99 is the correct standard to include postgres.h etc. in 9.5
because that standard (and all the flags I am using to generate pgrouting code without warnings)
catches the following catches warnings of type conversions on some postgresql included files.
This doesn't happen on postgresql 9.1 to 9.4

for example:

In file included from /usr/include/postgresql/9.5/server/postgres.h:47:0,
from /home/travis/build/pgRouting/pgrouting/src/dijkstra/src/many_to_many_dijkstra.c:31:
/usr/include/postgresql/9.5/server/c.h:298:9: warning: ISO C does not support ‘__int128’ type [-pedantic]
/usr/include/postgresql/9.5/server/c.h:299:18: warning: ISO C does not support ‘__int128’ type [-pedantic]




In file included from /usr/include/postgresql/9.5/server/port/atomics.h:119:0,
from /usr/include/postgresql/9.5/server/storage/lwlock.h:19,
from /usr/include/postgresql/9.5/server/storage/lock.h:18,
from /usr/include/postgresql/9.5/server/access/genam.h:20,
from /usr/include/postgresql/9.5/server/nodes/execnodes.h:17,
from /usr/include/postgresql/9.5/server/executor/execdesc.h:18,
from /usr/include/postgresql/9.5/server/utils/portal.h:50,
from /usr/include/postgresql/9.5/server/executor/spi.h:18,
from /home/travis/build/pgRouting/pgrouting/src/dijkstra/src/many_to_many_dijkstra.c:32:
/usr/include/postgresql/9.5/server/port/atomics/generic.h: In function ‘pg_atomic_add_fetch_u32_impl’:
/usr/include/postgresql/9.5/server/port/atomics/generic.h:238:2: warning: conversion to ‘uint32’ from ‘int32’ may change the sign of the result [-Wsign-conversion]
/usr/include/postgresql/9.5/server/port/atomics/generic.h: In function ‘pg_atomic_sub_fetch_u32_impl’:
/usr/include/postgresql/9.5/server/port/atomics/generic.h:247:2: warning: conversion to ‘uint32’ from ‘int32’ may change the sign of the result [-Wsign-conversion]
/usr/include/postgresql/9.5/server/port/atomics/generic.h: In function ‘pg_atomic_add_fetch_u64_impl’:
/usr/include/postgresql/9.5/server/port/atomics/generic.h:372:2: warning: conversion to ‘long unsigned int’ from ‘int64’ may change the sign of the result [-Wsign-conversion]
/usr/include/postgresql/9.5/server/port/atomics/generic.h: In function ‘pg_atomic_sub_fetch_u64_impl’:
/usr/include/postgresql/9.5/server/port/atomics/generic.h:381:2: warning: conversion to ‘long unsigned int’ from ‘int64’ may change the sign of the result [-Wsign-conversion]
of course, I can't go and modify  generic.h, c.h which are included when I include postgres.h or spi.h, or any of the files
that I include that are of the postgresql project.

I already posted in this mailing list http://www.postgresql.org/message-id/BAY177-W104EC0B93C9FC5453B04CD8AA90@phx.gbl
But talking with my co-developer Steve Woodbri, he suggested this mailing list.
you can see a full travis test here:
https://travis-ci.org/pgRouting/pgrouting/builds/108791787
(I have my own warnings which I am fixing and are very visible from 9.1 to 9.4)

Note1: when pgRouting gets released, all those flags:
-Wall -Wconversion -pedantic -fmax-errors=10 -Wmissing-prototypes
will be removed, and of course those warnings won't show up.



Thanks Vicky Vergara

pgsql-hackers by date:

Previous
From: Payal Singh
Date:
Subject: Re: ALTER ROLE SET/RESET for multiple options
Next
From: Tom Lane
Date:
Subject: Re: Compilation warning on 9.5