Bruce Momjian <br...@momjian.us> wrote:
> On Wed, Oct 16, 2013 at 11:49:13AM -0700, Kevin Grittner wrote:
>> Bruce Momjian <br...@momjian.us> wrote:
>>
>>> I am seeing this compiler warning in git head:
>>>
>>> rowtypes.c: In function 'record_image_cmp':
>>> rowtypes.c:1433: warning: 'cmpresult' may be used
>>> uninitialized in this function rowtypes.c:1433: note: 'cmpresult' was
>>>declared here
>>
>> I had not gotten a warning under either gcc or clang, but that was
>> probably because I was doing assert-enabled builds, and the
>> Assert(false) saved me. That seemed a little marginal anyway, so
>> how about this?:
>
> Would you please send the file as ASCII, e.g. not:
>
> <A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0><A0>
> default:
Huh, I did not see anything remotely like that in my email or in
the archives:
http://www.postgresql.org/message-id/1381949353.78943.yahoomail...@web162902.mail.bf1.yahoo.com
... however, I'm attaching it rather than pasting it this time. It is
warning-recimgcmp.diff.
I'm also attaching the other warnings (outside of the well-known
yyg parser warning) which I get from a compile using Ubuntu clang
version 3.0-6ubuntu3. The one in pg_standby seems completely
legitimate -- what is the point of comparing to see whether an
unsigned integer is >= 0? The other one would be nice to quiet
down, but I would understand if people would prefer to leave it
alone and hope the compiler writers fix it. Warnings those fix
below:
catcache.c:571:12: warning: variable 'cl' is uninitialized when used here
[-Wuninitialized]
Assert(cl->cl_magic == CL_MAGIC);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
../../../../src/include/c.h:625:10: note: expanded from:
Trap(!(condition), "FailedAssertion")
^
../../../../src/include/c.h:607:28: note: expanded from:
if ((assert_enabled) && (condition)) \
^~~~~~~~~
catcache.c:569:5: note: variable 'cl' is declared here
CatCList *cl = dlist_container(CatCList,
cache_elem, iter.cur);
^
catcache.c:585:13: warning: variable 'ct' is uninitialized when used here
[-Wuninitialized]
Assert(ct->ct_magic == CT_MAGIC);
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
../../../../src/include/c.h:625:10: note: expanded from:
Trap(!(condition), "FailedAssertion")
^
../../../../src/include/c.h:607:28: note: expanded from:
if ((assert_enabled) && (condition)) \
^~~~~~~~~
catcache.c:583:6: note: variable 'ct' is declared here
CatCTup *ct =
dlist_container(CatCTup, cache_elem, iter.cur);
^
2 warnings generated.
pg_standby.c:348:22: warning: comparison of unsigned expression >= 0 is always
true [-Wtautological-compare]
if (tli > 0 && log >= 0 && seg > 0)
~~~ ^ ~
1 warning generated.
None of these seem particularly urgent, so I'll leave them for
comment for maybe a week before taking any action.
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c
index cb04a72..516c37b 100644
--- a/src/backend/utils/adt/rowtypes.c
+++ b/src/backend/utils/adt/rowtypes.c
@@ -1508,7 +1508,11 @@ record_image_cmp(FunctionCallInfo fcinfo)
break;
#endif
default:
- Assert(false); /* cannot happen */
+ /* cannot happen */
+ elog(ERROR,
+ "unexpected length of %i found comparing columns of type %s",
+ (int) tupdesc1->attrs[i1]->attlen,
+ format_type_be(tupdesc1->attrs[i1]->atttypid));
}
}
else
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index c467f11..89e6325 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -566,8 +566,9 @@ AtEOXact_CatCache(bool isCommit)
/* Check CatCLists */
dlist_foreach(iter, &ccp->cc_lists)
{
- CatCList *cl = dlist_container(CatCList, cache_elem, iter.cur);
+ CatCList *cl;
+ cl = dlist_container(CatCList, cache_elem, iter.cur);
Assert(cl->cl_magic == CL_MAGIC);
Assert(cl->refcount == 0);
Assert(!cl->dead);
@@ -580,8 +581,9 @@ AtEOXact_CatCache(bool isCommit)
dlist_foreach(iter, bucket)
{
- CatCTup *ct = dlist_container(CatCTup, cache_elem, iter.cur);
+ CatCTup *ct;
+ ct = dlist_container(CatCTup, cache_elem, iter.cur);
Assert(ct->ct_magic == CT_MAGIC);
Assert(ct->refcount == 0);
Assert(!ct->dead);
diff --git a/contrib/pg_standby/pg_standby.c b/contrib/pg_standby/pg_standby.c
index a3f40fb..059c820 100644
--- a/contrib/pg_standby/pg_standby.c
+++ b/contrib/pg_standby/pg_standby.c
@@ -345,7 +345,7 @@ SetWALFileNameForCleanup(void)
if (keepfiles > 0)
{
sscanf(nextWALFileName, "%08X%08X%08X", &tli, &log, &seg);
- if (tli > 0 && log >= 0 && seg > 0)
+ if (tli > 0 && seg > 0)
{
log_diff = keepfiles / MaxSegmentsPerLogFile;
seg_diff = keepfiles % MaxSegmentsPerLogFile;
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers