Bug #44570 In DEBUG, Disable (un)likely branch hints as they hide precious compiler warning
Submitted: 30 Apr 2009 8:42 Modified: 7 May 2009 15:58
Reporter: Ole John Aske Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S4 (Feature request)
Version:7.0 OS:Any
Assigned to: Ole John Aske CPU Architecture:Any

[30 Apr 2009 8:42] Ole John Aske
Description:
Branch prediction hints likely/unlikely are implemented by usage of __builtin_expect(). This has the side effect that compiler warnings about missuse
of '=' instead of '==' in comparisons are lost - Ref bug#44567.

In DEBUG mode we should remove the branch hinting in order to make these warnings vissible

How to repeat:
Code feature - Not a bug.
[30 Apr 2009 8:45] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/73091

2879 Ole John Aske	2009-04-30 [merge]
      Fix bug#44570
[30 Apr 2009 8:51] Bugs System
Pushed into 5.1.32-ndb-7.0.6 (revid:ole.john.aske@sun.com-20090430084504-2c8iheeuc631njs5) (version source revid:ole.john.aske@sun.com-20090430084504-2c8iheeuc631njs5) (merge vers: 5.1.32-ndb-7.0.6) (pib:6)
[30 Apr 2009 13:06] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/73152

2880 Ole John Aske	2009-04-30
      bug#44570, In DEBUG, Disable (un)likely branch hints as they hide precious compiler warning
     @ storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
        Remove warning created by redefined unlikely() macro
[30 Apr 2009 14:54] Magnus Blåudd
It looks like you can remove the "ret" variable in that scope and then just keep the original condition:

	unlikely(handle_size_change_after_update(req_struct,
						       base,
						       regOperPtr.p,
						       regFragPtr,
						       regTabPtr,
						       sizes)
[2 May 2009 10:24] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/73259

2881 Ole John Aske	2009-05-02
      bug#44570, fix changed according to review comment
[2 May 2009 10:40] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/73260

2879 Ole John Aske	2009-05-02 [merge]
      bug#44570, comlete fix including review comments
[4 May 2009 9:39] Magnus Blåudd
OK
[4 May 2009 10:10] Bugs System
Pushed into 5.1.32-ndb-7.0.6 (revid:ole.john.aske@sun.com-20090504100939-z2u4n8ac2xpkbrsn) (version source revid:ole.john.aske@sun.com-20090504100939-z2u4n8ac2xpkbrsn) (merge vers: 5.1.32-ndb-7.0.6) (pib:6)
[4 May 2009 10:10] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/73288

2880 Ole John Aske	2009-05-04
      Fix bug#44570, after merge to resolve conflicts
     @ storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
        Had to change usage of unlikely() to avoide compiler error
[7 May 2009 15:58] Jon Stephens
Documented bugfix in the NDB-7.0.6 changelog as follows:

        Use of __builtin_expect() had the side effect that compiler
        warnings about misuse of '=' instead of '==' in comparisons were
        lost when building in debug mode. This is no longer used when
        configuring the build employing --with-debug.