From: Thiemo S. <th...@ne...> - 2005-05-18 16:56:18
|
James Y Knight wrote: [snip] > >>! (*os_context_pc_addr(context)) += sizeof(char); > > > >Um, is this just gcc-4.0 brokenness, or is there an actual > >correctness issue here. As far as I can tell the first one is quite > >legal -- not that I've though either long or deep about it. > > Using a cast as an lvalue is illegal in C, but is a gcc extension. > gcc4 removes the extension. > > However, sizeof(char) is always 1 according to the C specification. > No point in ever writing that. So it really should simply be: > (*os_context_pc_addr(context)))++. > os_context_pc_addr should always return a pointer to an integer > value, so there was never really any point in that cast. Or even ++*os_context_pc_addr(context); Thiemo |