https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87373
--- Comment #15 from Richard Earnshaw <rearnsha at gcc dot gnu.org> --- (In reply to Murat Ursavaş from comment #12) > Richard, > > Ok I remembered things with reading the old posts on launchpad. The compiler > was generating normal code if I use the struct variable directly. But if I > use a pointer to access it, it assigns not what I try to assign. > > Isn't that a compiler bug? I'm still not sure what you're saying is incorrect, based on your testcase. Are you talking about the value returned from the function, or the types of memory access being used? ie, if we lay aside for the moment that this is accessing a device, does the program behave correctly in terms of the values read and written?