This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
4.1.2 bug
- From: Rob Lembree <rob at lembree dot com>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 18 Jul 2007 11:33:13 -0400
- Subject: 4.1.2 bug
gcc version 4.1.2 20070502 on Fedora Core 7, Dell D600.
Build arguments were:
g++ -c -O3 -g -Wall -Wextra -Wno-unused-parameter -Wundef
-Woverloaded-virtual -DPLATFORM_X86 -o Configuration.o
Configuration.cpp
We have multiple versions of a method called writeEntry, one that takes
a boolean as its second value, and one that takes a string. When using
"question mark" syntax (as in the removed line below), the method
recurses rather than calling the string version of the method. When
using a more traditional "if" syntax (the code added), the method does
the right thing and calls the string variant of the method.
void
Configuration::writeEntry(string key, string value)
{
pthread_mutex_lock(&configMutex);
settingsChanged = true;
keyValue[key] = value;
pthread_mutex_unlock(&configMutex);
}
void
Configuration::writeEntry(string key, bool value)
{
- writeEntry(key, (value == true? "yes":"no"));
+ if (value == true)
+ writeEntry(key, "yes");
+ else
+ writeEntry(key, "no");
}