Hi

I pulled the latest HEAD today and found some more -Wmaybe-uninitialized
warnings.

```
[1/6] Compiling C object
src/interfaces/ecpg/test/pg_regress_ecpg.p/.._.._.._test_regress_pg_regress.c.o
../src/test/regress/pg_regress.c: In function ‘results_differ’:
../src/test/regress/pg_regress.c:1577:17: warning: ‘startpos’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
 1577 |                 fseek(difffile, startpos, SEEK_SET);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[2/6] Compiling C object
src/test/isolation/pg_isolation_regress.p/.._regress_pg_regress.c.o
../src/test/regress/pg_regress.c: In function ‘results_differ’:
../src/test/regress/pg_regress.c:1577:17: warning: ‘startpos’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
 1577 |                 fseek(difffile, startpos, SEEK_SET);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[3/6] Compiling C object src/test/regress/pg_regress.p/pg_regress.c.o
../src/test/regress/pg_regress.c: In function ‘results_differ’:
../src/test/regress/pg_regress.c:1577:17: warning: ‘startpos’ may be used
uninitialized in this function [-Wmaybe-uninitialized]
 1577 |                 fseek(difffile, startpos, SEEK_SET);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

Here is the updated v2 patch addressing them.


Regards,
Imran Zaheer


On Thu, Apr 2, 2026 at 2:49 PM Imran Zaheer <[email protected]> wrote:

> 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 2c8cdbfbc8cde6476b65a95ffb63d1b7252f7e8c Mon Sep 17 00:00:00 2001
From: Imran Zaheer <[email protected]>
Date: Fri, 3 Apr 2026 19:07:31 +0500
Subject: [PATCH v2] Silence -Wmaybe-uninitialized warnings

When building with CFLAGS="-Og", GCC was emitting -Wmaybe-uninitialized
warnings at some places.

Initialize variables to silence the warnings.
---
 src/backend/commands/copyfromparse.c  | 2 +-
 src/backend/partitioning/partbounds.c | 2 +-
 src/test/regress/pg_regress.c         | 2 +-
 3 files changed, 3 insertions(+), 3 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)
 		{
diff --git a/src/test/regress/pg_regress.c b/src/test/regress/pg_regress.c
index 9a918156437..467bd79068c 100644
--- a/src/test/regress/pg_regress.c
+++ b/src/test/regress/pg_regress.c
@@ -1425,7 +1425,7 @@ results_differ(const char *testname, const char *resultsfile, const char *defaul
 	int			best_line_count;
 	int			i;
 	int			l;
-	long		startpos;
+	long		startpos = 0;
 	const char *platform_expectfile;
 
 	/*
-- 
2.34.1

Reply via email to