On 27 Aug 2007 23:52:08 -0700, Ian Lance Taylor <iant@xxxxxxxxxx> wrote: > "Adam Olsen" <rhamph@xxxxxxxxx> writes: > > > I realize I'm "probably" safe if I ensure adjacent members are at > > least as large as int (or long, or maybe long long, depending), but > > I'm extremely mistrustful of C. I'm hoping to find a way to be *sure* > > I'm behaving in a correct, portable manor. > > Unfortunately there is no such way. The only way you could be sure in > a portable manner is for the C and/or C++ language standard to define > how multi-threaded code should behave. But they don't. > > The next C++ standard, C++0x is intended to include definitions for > multi-threaded programs. But it does not exist yet. I'm not concerned about C/C++ themselves, but rather how SUSv3 is interpreted. Even then I already know they don't actually specify these details, so I'm looking for a de facto interpretation. If everybody (threaded application developers, kernel developers, *gcc developers*) decide they'll use int's size and alignment, then it might as well be written in stone. -- Adam Olsen, aka Rhamphoryncus