public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch, Fortran] libgomp: Silence unpack's may be used uninitialized warning
@ 2020-09-28 21:12 Tobias Burnus
  2020-09-28 23:25 ` Damian Rouson
  0 siblings, 1 reply; 3+ messages in thread
From: Tobias Burnus @ 2020-09-28 21:12 UTC (permalink / raw)
  To: gcc-patches, fortran

[-- Attachment #1: Type: text/plain, Size: 1033 bytes --]

There are more warnings, but I picked this one which shows up
with default build options for GCC trunk – twice for each
generated file:

../../../../repos/gcc/libgfortran/generated/unpack_i2.c:128:12: warning: ‘rstride’ may be used uninitialized [-Wmaybe-uninitialized]
../../../../repos/gcc/libgfortran/generated/unpack_i2.c:278:12: warning: ‘rstride’ may be used uninitialized [-Wmaybe-uninitialized]

Hence, 13 times these messages (×2 warnings/file + ×2 with multilib) → 53 'warning:'.

Seemingly, the compiler logic has changes as the previous location
used to be sufficient to silence the compiler.
(The warning is right if base_addr = NULL and dim = 0; the latter should
not occur but the compiler does not know this.)

Committed as obvious as r11-3508-g69c56ce673d1e1d4508e82053a32011f807c6088

Tobias

-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter

[-- Attachment #2: warn.diff --]
[-- Type: text/x-patch, Size: 21313 bytes --]

libgfortran/m4/unpack.m4: Silence -Wmaybe-uninitialized

libgfortran/ChangeLog:

	* m4/unpack.m4 (unpack0_'rtype_code`,
	unpack1_'rtype_code`): Move 'rstride[0]' initialization outside
	outside conditional branch to silence -Wmaybe-uninitialized.
	* generated/unpack_c10.c: Regenerate.
	* generated/unpack_c16.c: Regenerate.
	* generated/unpack_c4.c: Regenerate.
	* generated/unpack_c8.c: Regenerate.
	* generated/unpack_i1.c: Regenerate.
	* generated/unpack_i16.c: Regenerate.
	* generated/unpack_i2.c: Regenerate.
	* generated/unpack_i4.c: Regenerate.
	* generated/unpack_i8.c: Regenerate.
	* generated/unpack_r10.c: Regenerate.
	* generated/unpack_r16.c: Regenerate.
	* generated/unpack_r4.c: Regenerate.
	* generated/unpack_r8.c: Regenerate.

 libgfortran/generated/unpack_c10.c | 8 ++++----
 libgfortran/generated/unpack_c16.c | 8 ++++----
 libgfortran/generated/unpack_c4.c  | 8 ++++----
 libgfortran/generated/unpack_c8.c  | 8 ++++----
 libgfortran/generated/unpack_i1.c  | 8 ++++----
 libgfortran/generated/unpack_i16.c | 8 ++++----
 libgfortran/generated/unpack_i2.c  | 8 ++++----
 libgfortran/generated/unpack_i4.c  | 8 ++++----
 libgfortran/generated/unpack_i8.c  | 8 ++++----
 libgfortran/generated/unpack_r10.c | 8 ++++----
 libgfortran/generated/unpack_r16.c | 8 ++++----
 libgfortran/generated/unpack_r4.c  | 8 ++++----
 libgfortran/generated/unpack_r8.c  | 8 ++++----
 libgfortran/m4/unpack.m4           | 8 ++++----
 14 files changed, 56 insertions(+), 56 deletions(-)

diff --git a/libgfortran/m4/unpack.m4 b/libgfortran/m4/unpack.m4
index da7a5ce0443..ebc469a84f8 100644
--- a/libgfortran/m4/unpack.m4
+++ b/libgfortran/m4/unpack.m4
@@ -80,6 +80,8 @@ unpack0_'rtype_code` ('rtype` *ret, const 'rtype` *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -103,8 +105,6 @@ unpack0_'rtype_code` ('rtype` *ret, const 'rtype` *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -226,6 +226,8 @@ unpack1_'rtype_code` ('rtype` *ret, const 'rtype` *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -250,8 +252,6 @@ unpack1_'rtype_code` ('rtype` *ret, const 'rtype` *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_c10.c b/libgfortran/generated/unpack_c10.c
index e3b3c29e9da..12110df8af0 100644
--- a/libgfortran/generated/unpack_c10.c
+++ b/libgfortran/generated/unpack_c10.c
@@ -79,6 +79,8 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_c10 (gfc_array_c10 *ret, const gfc_array_c10 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_c16.c b/libgfortran/generated/unpack_c16.c
index 0c99509cfda..c684156f297 100644
--- a/libgfortran/generated/unpack_c16.c
+++ b/libgfortran/generated/unpack_c16.c
@@ -79,6 +79,8 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_c16 (gfc_array_c16 *ret, const gfc_array_c16 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_c4.c b/libgfortran/generated/unpack_c4.c
index 15c20c57334..374b3fe0c8c 100644
--- a/libgfortran/generated/unpack_c4.c
+++ b/libgfortran/generated/unpack_c4.c
@@ -79,6 +79,8 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_c4 (gfc_array_c4 *ret, const gfc_array_c4 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_c8.c b/libgfortran/generated/unpack_c8.c
index b85fcb98abe..110cb4f3ee0 100644
--- a/libgfortran/generated/unpack_c8.c
+++ b/libgfortran/generated/unpack_c8.c
@@ -79,6 +79,8 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_c8 (gfc_array_c8 *ret, const gfc_array_c8 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_i1.c b/libgfortran/generated/unpack_i1.c
index 1bea990e80e..96237a169b2 100644
--- a/libgfortran/generated/unpack_i1.c
+++ b/libgfortran/generated/unpack_i1.c
@@ -79,6 +79,8 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_i1 (gfc_array_i1 *ret, const gfc_array_i1 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_i16.c b/libgfortran/generated/unpack_i16.c
index fa69d8ef08c..f58be9572d9 100644
--- a/libgfortran/generated/unpack_i16.c
+++ b/libgfortran/generated/unpack_i16.c
@@ -79,6 +79,8 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_i16 (gfc_array_i16 *ret, const gfc_array_i16 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_i2.c b/libgfortran/generated/unpack_i2.c
index 59baea51bd6..0dab104c9db 100644
--- a/libgfortran/generated/unpack_i2.c
+++ b/libgfortran/generated/unpack_i2.c
@@ -79,6 +79,8 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_i2 (gfc_array_i2 *ret, const gfc_array_i2 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_i4.c b/libgfortran/generated/unpack_i4.c
index 4dc7482f6ca..b32c92a5d67 100644
--- a/libgfortran/generated/unpack_i4.c
+++ b/libgfortran/generated/unpack_i4.c
@@ -79,6 +79,8 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_i4 (gfc_array_i4 *ret, const gfc_array_i4 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_i8.c b/libgfortran/generated/unpack_i8.c
index 40a929854e7..25a928ca13c 100644
--- a/libgfortran/generated/unpack_i8.c
+++ b/libgfortran/generated/unpack_i8.c
@@ -79,6 +79,8 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_i8 (gfc_array_i8 *ret, const gfc_array_i8 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_r10.c b/libgfortran/generated/unpack_r10.c
index 7981754ca35..4044ec3f897 100644
--- a/libgfortran/generated/unpack_r10.c
+++ b/libgfortran/generated/unpack_r10.c
@@ -79,6 +79,8 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_r10 (gfc_array_r10 *ret, const gfc_array_r10 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_r16.c b/libgfortran/generated/unpack_r16.c
index ac5738ff07d..beeaa4e41e8 100644
--- a/libgfortran/generated/unpack_r16.c
+++ b/libgfortran/generated/unpack_r16.c
@@ -79,6 +79,8 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_r16 (gfc_array_r16 *ret, const gfc_array_r16 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_r4.c b/libgfortran/generated/unpack_r4.c
index b149b5183ab..283dd848f52 100644
--- a/libgfortran/generated/unpack_r4.c
+++ b/libgfortran/generated/unpack_r4.c
@@ -79,6 +79,8 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_r4 (gfc_array_r4 *ret, const gfc_array_r4 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
diff --git a/libgfortran/generated/unpack_r8.c b/libgfortran/generated/unpack_r8.c
index d8db8e0ac14..08882995313 100644
--- a/libgfortran/generated/unpack_r8.c
+++ b/libgfortran/generated/unpack_r8.c
@@ -79,6 +79,8 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -102,8 +104,6 @@ unpack0_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;
@@ -225,6 +225,8 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
   else
     runtime_error ("Funny sized logical array");
 
+  /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
+  rstride[0] = 1;
   if (ret->base_addr == NULL)
     {
       /* The front end has signalled that we need to populate the
@@ -249,8 +251,6 @@ unpack1_r8 (gfc_array_r8 *ret, const gfc_array_r8 *vector,
   else
     {
       dim = GFC_DESCRIPTOR_RANK (ret);
-      /* Initialize to avoid -Wmaybe-uninitialized complaints.  */
-      rstride[0] = 1;
       for (n = 0; n < dim; n++)
 	{
 	  count[n] = 0;

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Patch, Fortran] libgomp: Silence unpack's may be used uninitialized warning
  2020-09-28 21:12 [Patch, Fortran] libgomp: Silence unpack's may be used uninitialized warning Tobias Burnus
@ 2020-09-28 23:25 ` Damian Rouson
  2020-09-29  7:49   ` Tobias Burnus
  0 siblings, 1 reply; 3+ messages in thread
From: Damian Rouson @ 2020-09-28 23:25 UTC (permalink / raw)
  To: Tobias Burnus; +Cc: gcc-patches, fortran

I've been seeing similar messages to this one for quite some time now -- I
think ~1 year.  I don't often use unpack so there are likely many other
causes too.  I haven't take the time to isolate them, but if I can do so
easily, I'll submit reports.

Damian

On Mon, Sep 28, 2020 at 2:12 PM Tobias Burnus <tobias@codesourcery.com>
wrote:

> There are more warnings, but I picked this one which shows up
> with default build options for GCC trunk – twice for each
> generated file:
>
> ../../../../repos/gcc/libgfortran/generated/unpack_i2.c:128:12: warning:
> ‘rstride’ may be used uninitialized [-Wmaybe-uninitialized]
> ../../../../repos/gcc/libgfortran/generated/unpack_i2.c:278:12: warning:
> ‘rstride’ may be used uninitialized [-Wmaybe-uninitialized]
>
> Hence, 13 times these messages (×2 warnings/file + ×2 with multilib) → 53
> 'warning:'.
>
> Seemingly, the compiler logic has changes as the previous location
> used to be sufficient to silence the compiler.
> (The warning is right if base_addr = NULL and dim = 0; the latter should
> not occur but the compiler does not know this.)
>
> Committed as obvious as r11-3508-g69c56ce673d1e1d4508e82053a32011f807c6088
>
> Tobias
>
> -----------------
> Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München /
> Germany
> Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung,
> Alexander Walter
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Patch, Fortran] libgomp: Silence unpack's may be used uninitialized warning
  2020-09-28 23:25 ` Damian Rouson
@ 2020-09-29  7:49   ` Tobias Burnus
  0 siblings, 0 replies; 3+ messages in thread
From: Tobias Burnus @ 2020-09-29  7:49 UTC (permalink / raw)
  To: Damian Rouson, Tobias Burnus; +Cc: gcc-patches, fortran

Hi Damian,

my silencing-a-warning patch is about warnings reported when compiling
GCC itself. — There are also warning for internal/artificially created
variables when compiling code with gfortran. This patch was about the
former and I assume that you are seeing the later.

But, otherwise, I concur that both should eventually be fixed.

Tobias

On 9/29/20 1:25 AM, Damian Rouson wrote:
> I've been seeing similar messages to this one for quite some time now -- I
> think ~1 year.  I don't often use unpack so there are likely many other
> causes too.  I haven't take the time to isolate them, but if I can do so
> easily, I'll submit reports.
>
> Damian
>
> On Mon, Sep 28, 2020 at 2:12 PM Tobias Burnus <tobias@codesourcery.com>
> wrote:
>
>> There are more warnings, but I picked this one which shows up
>> with default build options for GCC trunk – twice for each
>> generated file:
>>
>> ../../../../repos/gcc/libgfortran/generated/unpack_i2.c:128:12: warning:
>> ‘rstride’ may be used uninitialized [-Wmaybe-uninitialized]
>> ../../../../repos/gcc/libgfortran/generated/unpack_i2.c:278:12: warning:
>> ‘rstride’ may be used uninitialized [-Wmaybe-uninitialized]
>>
>> Hence, 13 times these messages (×2 warnings/file + ×2 with multilib) → 53
>> 'warning:'.
>>
>> Seemingly, the compiler logic has changes as the previous location
>> used to be sufficient to silence the compiler.
>> (The warning is right if base_addr = NULL and dim = 0; the latter should
>> not occur but the compiler does not know this.)
>>
>> Committed as obvious as r11-3508-g69c56ce673d1e1d4508e82053a32011f807c6088
>>
>> Tobias
>>
>> -----------------
>> Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München /
>> Germany
>> Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung,
>> Alexander Walter
>>
-----------------
Mentor Graphics (Deutschland) GmbH, Arnulfstraße 201, 80634 München / Germany
Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Alexander Walter

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-09-29  7:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-28 21:12 [Patch, Fortran] libgomp: Silence unpack's may be used uninitialized warning Tobias Burnus
2020-09-28 23:25 ` Damian Rouson
2020-09-29  7:49   ` Tobias Burnus

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).