Hi
When building postgresql with CFLAGS="-Og" gcc emits
'-Wmaybe-uninitialized' warnings at few places. The variables are
initialized on all execution paths but the compiler was not able to
prove it with the additional optimization flag enabled. The patch
initializes the variables with NULL to silence the warnings. No
functional change intended.
```
[646/2085] Compiling C object
src/backend/postgres_lib.a.p/commands_copyfromparse.c.o
../src/backend/commands/copyfromparse.c: In function ‘CopyFromTextOneRow’:
../src/backend/commands/copyfromparse.c:995:39: warning:
‘field_strings’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
995 | string = field_strings[fieldno++];
| ^
../src/backend/commands/copyfromparse.c:961:21: note: ‘field_strings’
was declared here
961 | char **field_strings;
| ^~~~~~~~~~~~~
../src/backend/commands/copyfromparse.c: In function ‘CopyFromCSVOneRow’:
../src/backend/commands/copyfromparse.c:995:39: warning:
‘field_strings’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
995 | string = field_strings[fieldno++];
| ^
../src/backend/commands/copyfromparse.c:961:21: note: ‘field_strings’
was declared here
961 | char **field_strings;
| ^~~~~~~~~~~~~
[889/2085] Compiling C object
src/backend/postgres_lib.a.p/partitioning_partbounds.c.o
../src/backend/partitioning/partbounds.c: In function
‘check_partition_bounds_for_split_range’:
../src/backend/partitioning/partbounds.c:5452:57: warning: ‘datum’ may
be used uninitialized in this function [-Wmaybe-uninitialized]
5452 |
parser_errposition(pstate, exprLocation((Node *) datum)));
|
```
gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0
Regards
Imran Zaheer
From 58ec322de2f210355e6ec1a16df4988be63e5acb Mon Sep 17 00:00:00 2001
From: Imran Zaheer <[email protected]>
Date: Thu, 2 Apr 2026 14:02:47 +0500
Subject: [PATCH v1] Silence -Wmaybe-uninitialized warnings
When building with CFLAGS="-Og", GCC was emitting
-Wmaybe-uninitialized warnings for some variables.
Initialize variables to NULL to silence the warnings.
---
src/backend/commands/copyfromparse.c | 2 +-
src/backend/partitioning/partbounds.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/backend/commands/copyfromparse.c b/src/backend/commands/copyfromparse.c
index 65fd5a0ab4f..cb2aac54a34 100644
--- a/src/backend/commands/copyfromparse.c
+++ b/src/backend/commands/copyfromparse.c
@@ -958,7 +958,7 @@ CopyFromTextLikeOneRow(CopyFromState cstate, ExprContext *econtext,
FmgrInfo *in_functions = cstate->in_functions;
Oid *typioparams = cstate->typioparams;
ExprState **defexprs = cstate->defexprs;
- char **field_strings;
+ char **field_strings = NULL;
ListCell *cur;
int fldct;
int fieldno;
diff --git a/src/backend/partitioning/partbounds.c b/src/backend/partitioning/partbounds.c
index f867d1b75a5..3e608d6f217 100644
--- a/src/backend/partitioning/partbounds.c
+++ b/src/backend/partitioning/partbounds.c
@@ -5375,7 +5375,7 @@ check_partition_bounds_for_split_range(Relation parent,
if (first || last)
{
PartitionBoundSpec *split_spec = get_partition_bound_spec(splitPartOid);
- PartitionRangeDatum *datum;
+ PartitionRangeDatum *datum = NULL;
if (first)
{
--
2.34.1