This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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");
 }



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]