Peter Eisentraut wrote:

> cc -Wall -Wmissing-prototypes -Wpointer-arith
> -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute
> -Wformat-security -fno-strict-aliasing -fwrapv
> -fexcess-precision=standard -g -O2 -I../../../src/include
> -D_FORTIFY_SOURCE=2 -DLINUX_OOM_ADJ -D_GNU_SOURCE -I/usr/include/libxml2
> -c -o objectaddress.o objectaddress.c
> objectaddress.c: In function ‘get_object_address’:
> objectaddress.c:1650:24: warning: ‘typeoids[1]’ may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> objectaddress.c:1582:6: note: ‘typeoids[1]’ was declared here
> objectaddress.c:1627:43: warning: ‘typenames[1]’ may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> objectaddress.c:1581:12: note: ‘typenames[1]’ was declared here
> objectaddress.c:1650:24: warning: ‘typeoids[0]’ may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> objectaddress.c:1582:6: note: ‘typeoids[0]’ was declared here
> objectaddress.c:1627:43: warning: ‘typenames[0]’ may be used
> uninitialized in this function [-Wmaybe-uninitialized]
> objectaddress.c:1581:12: note: ‘typenames[0]’ was declared here
> 
> cc (Debian 4.7.2-5) 4.7.2

Oh yeah, buildfarm member sitella shows that.  Does the attached patch
fix it? (pretty much the same thing Michael attached, but we also need
to handle typeoids)

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
diff --git a/src/backend/catalog/objectaddress.c 
b/src/backend/catalog/objectaddress.c
index 8ccc171..7f73fc0 100644
--- a/src/backend/catalog/objectaddress.c
+++ b/src/backend/catalog/objectaddress.c
@@ -1578,8 +1578,8 @@ get_object_address_opf_member(ObjectType objtype,
        ObjectAddress address;
        ListCell   *cell;
        List       *copy;
-       TypeName   *typenames[2];
-       Oid                     typeoids[2];
+       TypeName   *typenames[2] = { NULL, NULL };
+       Oid                     typeoids[2] = { InvalidOid, InvalidOid };
        int                     membernum;
        int                     i;
 
@@ -1607,6 +1607,9 @@ get_object_address_opf_member(ObjectType objtype,
                        break;
        }
 
+       Assert(typenames[0] != NULL && typenames[1] != NULL);
+       Assert(typeoids[0] != InvalidOid && typeoids[1] != InvalidOid);
+
        switch (objtype)
        {
                case OBJECT_AMOP:
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to