Opened 8 years ago
Closed 8 years ago
#10886 closed Bugs (fixed)
boost::hash_detail::hash_binary() Triggers GCC Strict Aliasing Warning
Reported by: | Owned by: | Daniel James | |
---|---|---|---|
Milestone: | To Be Determined | Component: | hash |
Version: | Boost 1.57.0 | Severity: | Problem |
Keywords: | hash type-punning string-aliasing warning | Cc: |
Description
http://lists.boost.org/Archives/boost/2008/04/136209.php discusses the issue and provides a fix, but the problem persists in develop. This fix is long overdue.
The problem is that boost::hash_detail::hash_binary()
casts its char *
parameter to std::size_t *
when called by boost::hash_detail::float_hash_impl()
, which casts its float
parameter to char *
to pass as boost::hash_detail::hash_binary()
's char *
argument, when called by boost::hash_detail::float_hash_value()
.
Change History (2)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Pull request at: https://github.com/boostorg/functional/pull/3
I've cherry picked it into develop, will merge to master if there aren't any problems.
I'm going to submit a pull request on github for the fix. It's a one-liner and uses the memcpy convention used elsewhere in the file.