[Bug 1521081] [NEW] wrong "maybe-uninitialized" warning on ppc64el only (when building goplay)
Martin Pitt
martin.pitt at ubuntu.com
Mon Nov 30 07:25:40 UTC 2015
Public bug reported:
goplay FTBFS on ppc64el with:
g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/tagcoll-2.0.14 -Wall -Werror -ggdb -g -O3 -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -c -o XDGDesktopEntry.o XDGDesktopEntry.cpp
XDGDesktopEntry.cpp: In member function 'int XDGDesktopEntry::run(const char*)':
XDGDesktopEntry.cpp:655:17: error: 'value' may be used uninitialized in this function [-Werror=maybe-uninitialized]
if (value[i] == 'i') {
^
cc1plus: all warnings being treated as errors
full build log: https://launchpadlibrarian.net/227946515/buildlog_ubuntu-xenial-ppc64el.goplay_0.9.1%2Bnmu1_BUILDING.txt.gz
This does not make much sense to me. The code:
// Now run the desktop file
getEntry("Exec", NULL, &value);
// XXX: For now, just remove the field codes...
std::string commandString;
for(unsigned int i = 0; value[i] != '\0'; i++) {
if (value[i] == '%') {
i++;
if (value[i] == 'i') {
value is a "const char*" and gets initialized in the getEntry(). Even
*if* there was a reason to argue that value might be uninitialized, then
the complaint should already be for the "for" loop. There is no reason
why value should be valid in the "for" loop and for the "value[i] ==
'%'" check, but after incrementing just "i" it would suddenly not be any
more.
It builds fine on Debian ppc64el
(https://buildd.debian.org/status/fetch.php?pkg=goplay&arch=ppc64el&ver=0.9.1%2Bnmu1&stamp=1448818386)
and on all other Ubuntu architectures. So this seems to be specific to
gcc-5 on Ubuntu on ppc64el.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: gcc-5 5.2.1-26ubuntu1
ProcVersionSignature: Ubuntu 4.2.0-19.23-generic 4.2.6
Uname: Linux 4.2.0-19-generic x86_64
ApportVersion: 2.19.2-0ubuntu8
Architecture: amd64
CurrentDesktop: Unity
Date: Mon Nov 30 08:19:47 2015
EcryptfsInUse: Yes
SourcePackage: gcc-5
UpgradeStatus: No upgrade log present (probably fresh install)
** Affects: gcc-5 (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug xenial
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-5 in Ubuntu.
https://bugs.launchpad.net/bugs/1521081
Title:
wrong "maybe-uninitialized" warning on ppc64el only (when building
goplay)
Status in gcc-5 package in Ubuntu:
New
Bug description:
goplay FTBFS on ppc64el with:
g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include/tagcoll-2.0.14 -Wall -Werror -ggdb -g -O3 -fstack-protector-strong -Wformat -Werror=format-security -std=c++11 -c -o XDGDesktopEntry.o XDGDesktopEntry.cpp
XDGDesktopEntry.cpp: In member function 'int XDGDesktopEntry::run(const char*)':
XDGDesktopEntry.cpp:655:17: error: 'value' may be used uninitialized in this function [-Werror=maybe-uninitialized]
if (value[i] == 'i') {
^
cc1plus: all warnings being treated as errors
full build log: https://launchpadlibrarian.net/227946515/buildlog_ubuntu-xenial-ppc64el.goplay_0.9.1%2Bnmu1_BUILDING.txt.gz
This does not make much sense to me. The code:
// Now run the desktop file
getEntry("Exec", NULL, &value);
// XXX: For now, just remove the field codes...
std::string commandString;
for(unsigned int i = 0; value[i] != '\0'; i++) {
if (value[i] == '%') {
i++;
if (value[i] == 'i') {
value is a "const char*" and gets initialized in the getEntry(). Even
*if* there was a reason to argue that value might be uninitialized,
then the complaint should already be for the "for" loop. There is no
reason why value should be valid in the "for" loop and for the
"value[i] == '%'" check, but after incrementing just "i" it would
suddenly not be any more.
It builds fine on Debian ppc64el
(https://buildd.debian.org/status/fetch.php?pkg=goplay&arch=ppc64el&ver=0.9.1%2Bnmu1&stamp=1448818386)
and on all other Ubuntu architectures. So this seems to be specific to
gcc-5 on Ubuntu on ppc64el.
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: gcc-5 5.2.1-26ubuntu1
ProcVersionSignature: Ubuntu 4.2.0-19.23-generic 4.2.6
Uname: Linux 4.2.0-19-generic x86_64
ApportVersion: 2.19.2-0ubuntu8
Architecture: amd64
CurrentDesktop: Unity
Date: Mon Nov 30 08:19:47 2015
EcryptfsInUse: Yes
SourcePackage: gcc-5
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-5/+bug/1521081/+subscriptions
More information about the foundations-bugs
mailing list