| // { dg-do assemble } | |
| template <class STRUCT, class MEMBER> inline STRUCT * | |
| setback(MEMBER *bp, MEMBER STRUCT::*offset) | |
| { | |
| // The implementation of this function may be platform dependend | |
| if(!bp) return 0; // NULL pointers remain NULL | |
| union { int i; MEMBER STRUCT::*of; } u; // Switch types. Casting won't work. | |
| u.of = offset; | |
| return (STRUCT *) ((int) bp - u.i); | |
| } | |