Modify

Ticket #6922 (closed Bugs: fixed)

Opened 2 years ago

Last modified 22 months ago

gcc -Wcast-align warning in boost/intrusive

Reported by: stieber.c@… Owned by: igaztanaga
Milestone: To Be Determined Component: intrusive
Version: Boost 1.49.0 Severity: Cosmetic
Keywords: intrusive containers, member hook, alignment warning Cc:

Description

When I tried to use boost::intrusive::set with a member hook, I got this warning (I use reasonably aggressive warning settings):

../../Boost/boost/intrusive/detail/parent_from_member.hpp:50:9: error: cast from 'char *' to 'CSBuilder::Project *'

increases required alignment from 1 to 8 [-Werror,-Wcast-align]

return (Parent*)((char*)member - offset_from_pointer_to_member(ptr_to_member));

I didn't dig into that code, but judging from the identifiers it seems to do the right thing, and it would seem that the warning is not caused by me doing something bad (unless you count using boost or enabling warnings as 'bad'). Thus, suppressing the warning is probably ok. Just insert an additional (void*) cast like this:

return (Parent*)(void*)((char*)member...

If other compilers "see through" that and still issue such warnings, somebody with more compiler-experience can probably come up with a better way.

Attachments

Change History

comment:1 Changed 22 months ago by igaztanaga

  • Status changed from new to closed
  • Resolution set to fixed

Thanks for the report, it was corrected in trunk at revision 78588

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.