$ 0 0 To me, the code looks fine, with or without casts. Looks as if gcc is mistaken. Does that only happen with three indirections?