Hello!
During libjava build, following warning is reported:
../../../gcc-svn/branches/gcc-4_8-branch/libjava/java/lang/natObject.cc:932:27:
warning: suggest parentheses around comparison in operand of '|'
[-Wparentheses]
JvAssert(he - address == address | LOCKED );
^
It looks that parentheses are missing around (address | LOCKED),
otherwise the expression is always true - LOCKED is unconditionally
defined to 1. Attached patch adds these parentheses (and removes a
pair of superfluous ones).
2014-03-10 Uros Bizjak ubiz...@gmail.com
* java/lang/natObject.cc (_Jv_MonitorEnter): Add missing parenthesis
around comparison with (address | LOCKED) in JvAssert.
Patch was bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32}.
OK for mainline SVN and release branches?
Uros.
Index: java/lang/natObject.cc
===
--- java/lang/natObject.cc (revision 208455)
+++ java/lang/natObject.cc (working copy)
@@ -929,7 +929,7 @@ retry:
// only be held by other threads waiting for conversion, and
// they, like us, drop it quickly without blocking.
_Jv_MutexLock((hl-si.mutex));
- JvAssert(he - address == address | LOCKED );
+ JvAssert(he - address == (address | LOCKED));
release_set((he - address), (address | REQUEST_CONVERSION | HEAVY));
// release lock on he
LOG(REQ_CONV, (address | REQUEST_CONVERSION | HEAVY), self);
@@ -961,7 +961,7 @@ retry:
}
obj_addr_t was_heavy = (address HEAVY);
if ((address LOCKED) ||
- !compare_and_swap((he - address), address, (address | LOCKED )))
+ !compare_and_swap((he - address), address, address | LOCKED ))
{
wait_unlocked(he);
goto retry;