summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp@users.sourceforge.net <dgp>2011-09-13 20:04:35 (GMT)
committerdgp@users.sourceforge.net <dgp>2011-09-13 20:04:35 (GMT)
commit4870a175db0e0edb0296dbf4637b31ff982b4712 (patch)
treeafbeeb31876869c39e3570244b2d67451a7d2f84
parentd18bb89b6da6f64af464f40cdfd3cd9af8c0c5a7 (diff)
parent23e60cd70dc2f12b8ad61b534442064a0d902b89 (diff)
downloadtcl-4870a175db0e0edb0296dbf4637b31ff982b4712.zip
tcl-4870a175db0e0edb0296dbf4637b31ff982b4712.tar.gz
tcl-4870a175db0e0edb0296dbf4637b31ff982b4712.tar.bz2
3390638 Workaround broken solaris studio cc optimizer.
Thanks to Wolfgang S. Kechel.
-rw-r--r--ChangeLog3
-rw-r--r--generic/tclUtil.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 687d6ab..42b0884 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2011-09-13 Don Porter <dgp@users.sourceforge.net>
+ * generic/tclUtil.c: [Bug 3390638] Workaround broken solaris
+ studio cc optimizer. Thanks to Wolfgang S. Kechel.
+
* generic/tclDTrace.d: [Bug 3405652] Portability workaround for
broken system DTrace support. Thanks to Dagobert Michelson.
diff --git a/generic/tclUtil.c b/generic/tclUtil.c
index 51508d2..31c9fd3 100644
--- a/generic/tclUtil.c
+++ b/generic/tclUtil.c
@@ -3156,7 +3156,8 @@ TclFormatInt(buffer, n)
* negating it produces the same value.
*/
- if (n == -n) {
+ intVal = -n; /* [Bug 3390638] Workaround for*/
+ if (n == -n || intVal == n) { /* broken compiler optimizers. */
return sprintf(buffer, "%ld", n);
}