public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* FYI s390x: 'current.ctime.tv_nsec' may be used uninitialized in this function
@ 2020-02-14 22:12 Carlos O'Donell
  2020-02-15 11:52 ` Florian Weimer
  0 siblings, 1 reply; 5+ messages in thread
From: Carlos O'Donell @ 2020-02-14 22:12 UTC (permalink / raw)
  To: libc-alpha, Stefan Liebler, Florian Weimer; +Cc: Patsy Griffin

Florian,

Patsy was doing  a Fedora Rawhide sync with glibc master and noticed the 
testsuite has stopped building in this week's sync on s390x.

I haven't looked into this but I thought I should drop this update to the
list if anyone else ran into this. I expect we need to fix something here
to avoid the compiler's -Werror=maybe-uninitialized.

gcc tst-file_change_detection.c -c -std=gnu11 -fgnu89-inline  -O2 -g -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=zEC12 -mtune=z13 -fasynchronous-unwind-tables -fstack-clash-protection -Wall -Wwrite-strings -Wundef -Werror -fmerge-all-constants -frounding-math -fstack-protector-strong -Wstrict-prototypes -Wold-style-definition -fmath-errno -mlong-double-128           -I../include -I/builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/build-s390x-redhat-linux/io  -I/builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/build-s390x-redhat-linux  -I../sysdeps/unix/sysv/linux/s390/s390-64  -I../sysdeps/unix/sysv/linux/wordsize-64  -I../sysdeps/unix/sysv/linux/s390/fpu  -I../sysdeps/s390/fpu  -I../sysdeps/unix/sysv/linux/s390  -I../sysdeps/s390/nptl  -I../sysdeps/ieee754/ldbl-64-128  -I../sysdeps/ieee754/ldbl-opt  -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  -I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/s390/s390-64  -I../sysdeps/wordsize-64  -I../sysdeps/ieee754/dbl-64/wordsize-64  -I../sysdeps/s390/multiarch  -I../sysdeps/s390  -I../sysdeps/ieee754/ldbl-128  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754/flt-32  -I../sysdeps/ieee754  -I../sysdeps/generic  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/s390x-redhat-linux/10/include -isystem /usr/include  -D_LIBC_REENTRANT -include /builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/build-s390x-redhat-linux/libc-modules.h -DMODULE_NAME=testsuite -include ../include/libc-symbols.h       -DTOP_NAMESPACE=glibc -o /builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/build-s390x-redhat-linux/io/tst-file_change_detection.o -MD -MP -MF /builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/build-s390x-redhat-linux/io/tst-file_change_detection.o.dt -MT /builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/build-s390x-redhat-linux/io/tst-file_change_detection.o
In file included from tst-file_change_detection.c:23:
tst-file_change_detection.c: In function 'do_test':
../include/file_change_detection.h:58:7: error: 'current.ctime.tv_nsec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   57 |       && left->ctime.tv_sec == right->ctime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   58 |       && left->ctime.tv_nsec == right->ctime.tv_nsec;
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:173:40: note: 'current.ctime.tv_nsec' was declared here
  173 |           struct file_change_detection current;
      |                                        ^~~~~~~
In file included from tst-file_change_detection.c:23:

../include/file_change_detection.h:57:7: error: 'current.ctime.tv_sec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   57 |       && left->ctime.tv_sec == right->ctime.tv_sec
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:173:40: note: 'current.ctime.tv_sec' was declared here
  173 |           struct file_change_detection current;
      |                                        ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:56:7: error: 'current.mtime.tv_nsec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:173:40: note: 'current.mtime.tv_nsec' was declared here
  173 |           struct file_change_detection current;
      |                                        ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:55:7: error: 'current.mtime.tv_sec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:173:40: note: 'current.mtime.tv_sec' was declared here
  173 |           struct file_change_detection current;
      |                                        ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:54:7: error: 'current.ino' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:173:40: note: 'current.ino' was declared here
  173 |           struct file_change_detection current;
      |                                        ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:58:7: error: 'current.size' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   57 |       && left->ctime.tv_sec == right->ctime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   58 |       && left->ctime.tv_nsec == right->ctime.tv_nsec;
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:173:40: note: 'current.size' was declared here
  173 |           struct file_change_detection current;
      |                                        ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:58:7: error: 'initial.ctime.tv_nsec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   57 |       && left->ctime.tv_sec == right->ctime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   58 |       && left->ctime.tv_nsec == right->ctime.tv_nsec;
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:168:36: note: 'initial.ctime.tv_nsec' was declared here
  168 |       struct file_change_detection initial;
      |                                    ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:57:7: error: 'initial.ctime.tv_sec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   57 |       && left->ctime.tv_sec == right->ctime.tv_sec
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:168:36: note: 'initial.ctime.tv_sec' was declared here
  168 |       struct file_change_detection initial;
      |                                    ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:56:7: error: 'initial.mtime.tv_nsec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:168:36: note: 'initial.mtime.tv_nsec' was declared here
  168 |       struct file_change_detection initial;
      |                                    ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:55:7: error: 'initial.mtime.tv_sec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:168:36: note: 'initial.mtime.tv_sec' was declared here
  168 |       struct file_change_detection initial;
      |                                    ^~~~~~~
In file included from tst-file_change_detection.c:23:
../include/file_change_detection.h:58:7: error: 'initial.size' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   53 |     return left->size == right->size
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~
   54 |       && left->ino == right->ino
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~
   55 |       && left->mtime.tv_sec == right->mtime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |       && left->mtime.tv_nsec == right->mtime.tv_nsec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   57 |       && left->ctime.tv_sec == right->ctime.tv_sec
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   58 |       && left->ctime.tv_nsec == right->ctime.tv_nsec;
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
tst-file_change_detection.c:168:36: note: 'initial.size' was declared here
  168 |       struct file_change_detection initial;
      |                                    ^~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [../o-iterator.mk:9: /builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/build-s390x-redhat-linux/io/tst-file_change_detection.o] Error 1
make[2]: Leaving directory '/builddir/build/BUILD/glibc-2.31.9000-113-g5e6efd3ec2/io'
make[2]: *** Waiting for unfinished jobs....


-- 
Cheers,
Carlos.

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

* Re: FYI s390x: 'current.ctime.tv_nsec' may be used uninitialized in this function
  2020-02-14 22:12 FYI s390x: 'current.ctime.tv_nsec' may be used uninitialized in this function Carlos O'Donell
@ 2020-02-15 11:52 ` Florian Weimer
  2020-02-17  7:39   ` Stefan Liebler
  0 siblings, 1 reply; 5+ messages in thread
From: Florian Weimer @ 2020-02-15 11:52 UTC (permalink / raw)
  To: Carlos O'Donell; +Cc: libc-alpha, Stefan Liebler, Patsy Griffin

* Carlos O'Donell:

> Florian,
>
> Patsy was doing  a Fedora Rawhide sync with glibc master and noticed the 
> testsuite has stopped building in this week's sync on s390x.
>
> I haven't looked into this but I thought I should drop this update to the
> list if anyone else ran into this. I expect we need to fix something here
> to avoid the compiler's -Werror=maybe-uninitialized.

I believe the “fix” is to move the implementation into a separate .c
file.

Thanks,
Florian

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

* Re: FYI s390x: 'current.ctime.tv_nsec' may be used uninitialized in this function
  2020-02-15 11:52 ` Florian Weimer
@ 2020-02-17  7:39   ` Stefan Liebler
  2020-02-17 11:30     ` Florian Weimer
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Liebler @ 2020-02-17  7:39 UTC (permalink / raw)
  To: Florian Weimer, Carlos O'Donell; +Cc: libc-alpha, Patsy Griffin

On 2/15/20 12:52 PM, Florian Weimer wrote:
> * Carlos O'Donell:
> 
>> Florian,
>>
>> Patsy was doing  a Fedora Rawhide sync with glibc master and noticed the
>> testsuite has stopped building in this week's sync on s390x.
>>
>> I haven't looked into this but I thought I should drop this update to the
>> list if anyone else ran into this. I expect we need to fix something here
>> to avoid the compiler's -Werror=maybe-uninitialized.
> 
> I believe the “fix” is to move the implementation into a separate .c
> file.
> 
> Thanks,
> Florian
> 

Hi,

I also have not looked at it. But I've also seen this on x86_64 where 
I've build with -O3 (don't know if it also occures with -O2). The distro 
was a Fedora 30.

Bye,
Stefan

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

* Re: FYI s390x: 'current.ctime.tv_nsec' may be used uninitialized in this function
  2020-02-17  7:39   ` Stefan Liebler
@ 2020-02-17 11:30     ` Florian Weimer
  2020-02-18 12:08       ` Stefan Liebler
  0 siblings, 1 reply; 5+ messages in thread
From: Florian Weimer @ 2020-02-17 11:30 UTC (permalink / raw)
  To: Stefan Liebler; +Cc: Carlos O'Donell, libc-alpha, Patsy Griffin

* Stefan Liebler:

> On 2/15/20 12:52 PM, Florian Weimer wrote:
>> * Carlos O'Donell:
>>
>>> Florian,
>>>
>>> Patsy was doing  a Fedora Rawhide sync with glibc master and noticed the
>>> testsuite has stopped building in this week's sync on s390x.
>>>
>>> I haven't looked into this but I thought I should drop this update to the
>>> list if anyone else ran into this. I expect we need to fix something here
>>> to avoid the compiler's -Werror=maybe-uninitialized.
>>
>> I believe the “fix” is to move the implementation into a separate .c
>> file.
>>
>> Thanks,
>> Florian
>>
>
> Hi,
>
> I also have not looked at it. But I've also seen this on x86_64 where
> I've build with -O3 (don't know if it also occures with -O2). The
> distro was a Fedora 30.

I posted a patch which should fix this, but I don't know for sure:

  <https://www.sourceware.org/ml/libc-alpha/2020-02/msg00744.html>

Maybe you could give it a try and review it?

Thanks,
Florian

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

* Re: FYI s390x: 'current.ctime.tv_nsec' may be used uninitialized in this function
  2020-02-17 11:30     ` Florian Weimer
@ 2020-02-18 12:08       ` Stefan Liebler
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Liebler @ 2020-02-18 12:08 UTC (permalink / raw)
  To: Florian Weimer; +Cc: Carlos O'Donell, libc-alpha, Patsy Griffin

On 2/17/20 12:30 PM, Florian Weimer wrote:
> * Stefan Liebler:
> 
>> On 2/15/20 12:52 PM, Florian Weimer wrote:
>>> * Carlos O'Donell:
>>>
>>>> Florian,
>>>>
>>>> Patsy was doing  a Fedora Rawhide sync with glibc master and noticed the
>>>> testsuite has stopped building in this week's sync on s390x.
>>>>
>>>> I haven't looked into this but I thought I should drop this update to the
>>>> list if anyone else ran into this. I expect we need to fix something here
>>>> to avoid the compiler's -Werror=maybe-uninitialized.
>>>
>>> I believe the “fix” is to move the implementation into a separate .c
>>> file.
>>>
>>> Thanks,
>>> Florian
>>>
>>
>> Hi,
>>
>> I also have not looked at it. But I've also seen this on x86_64 where
>> I've build with -O3 (don't know if it also occures with -O2). The
>> distro was a Fedora 30.
> 
> I posted a patch which should fix this, but I don't know for sure:
> 
>    <https://www.sourceware.org/ml/libc-alpha/2020-02/msg00744.html>
> 
> Maybe you could give it a try and review it?
Sure. Here is my reply:
https://www.sourceware.org/ml/libc-alpha/2020-02/msg00778.html
> 
> Thanks,
> Florian
> 

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

end of thread, other threads:[~2020-02-18 12:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-14 22:12 FYI s390x: 'current.ctime.tv_nsec' may be used uninitialized in this function Carlos O'Donell
2020-02-15 11:52 ` Florian Weimer
2020-02-17  7:39   ` Stefan Liebler
2020-02-17 11:30     ` Florian Weimer
2020-02-18 12:08       ` Stefan Liebler

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).