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.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.045 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.