Opened 6 years ago
Closed 6 years ago
#12478 closed Bugs (fixed)
boost::atomic< char* > generates warning on fetch_add on gcc 4.8+
| Reported by: | Owned by: | Andrey Semashev | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | atomic |
| Version: | Boost 1.61.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
I have a boost::atomic< char* > object, on which I am calling fetch_add with ptrdiff_t, and apparently only on gcc 4.8+, I am getting the following warning:
In file included from /home/foo/packages/boost_1_61_0/include/boost/atomic/detail/atomic_template.hpp:25:0,
from /home/foo/packages/boost_1_61_0/include/boost/atomic/atomic.hpp:22,
from /home/foo/packages/boost_1_61_0/include/boost/atomic.hpp:12,
from /home/foo/code/ThingThatUsesAtomic.h:0,
/home/foo/packages/boost_1_61_0/include/boost/atomic/detail/bitwise_cast.hpp: In instantiation of ‘To boost::atomics::detail::bitwise_cast(const From&) [with To = char*; From = long unsigned int]’:
/home/foo/packages/boost_1_61_0/include/boost/atomic/detail/atomic_template.hpp:449:59: required from ‘T* boost::atomics::detail::base_atomic<T*, void*>::fetch_add(boost::atomics::detail::base_atomic<T*, void*>::difference_type, boost::memory_order) volatile [with T = char; boost::atomics::detail::base_atomic<T*, void*>::value_type = char*; boost::atomics::detail::base_atomic<T*, void*>::difference_type = long int]’
[ actual code references redacted ... ]
/home/foo/packages/boost_1_61_0/include/boost/atomic/detail/bitwise_cast.hpp:41:5: warning: casting ‘char*’ to ‘char&’ does not dereference pointer
Change History (2)
comment:1 by , 6 years ago
| Owner: | changed from to |
|---|
comment:2 by , 6 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.

Should be fixed in https://github.com/boostorg/atomic/commit/e6e6a04114997cc96a3c71d18933d5e19f2875e0.