there is currently no way to hint gcc that a restricted pointer doesnt alias with a member of a struct.
quoting Richard Guenther on this: ------------------------------------------------------------------------------ Yes, in this case you can fix it by making ramp static. Otherwise its address may be takein in another translation unit. For Fortran we have the DECL_RESTRICTED_P which we could expose to other languages via an attribute. It tells that a decl is not aliased by restrict qualified pointers, so struct Ramp { float phase; inline float process() { return phase+} } ramp __attribute__((restrict)); void fill_buffer( float * __restrict buf, size_t nframes ) { for( size_t i=0; i<nframes; i++ ) buf[i] = ramp.process(); } ------------------------------------------------------------------------- -- Summary: hinting gcc that restricted pointer dont alias with members of structs Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: torbenh at gmx dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42633