pygccxml
pygccxml copied to clipboard
Restrict qualifier applied wrongly.
Hi,
The "__restrict__" qualifier is for linux only and applied to the start of the decl_string, rather than the end.
`
#if defined( _MSC_VER )
#define RESTRICT_ALIAS __restrict
#define RESTRICT_ALIAS_RETURN __restrict
#else
#define RESTRICT_ALIAS __restrict__
#define RESTRICT_ALIAS_RETURN
#endif
class Rest { protected: float* RESTRICT_ALIAS restVar; ----- (1) ... }; ` (1) The return_type.decl_string output produces the following ie. ::ns::Rest::restVar __restrict__ float *
From class restrict_t
def build_decl_string(self, with_defaults=True): return '__restrict__ ' + self.base.build_decl_string(with_defaults)
Code using the decl_string does not compile, the restrict qualifier should be applied to the pointer/ref/function not the variable, e.g.
def build_decl_string(self, with_defaults=True): if os.name == 'nt': return self.base.build_decl_string(with_defaults) + ' __restrict' else: return self.base.build_decl_string(with_defaults) + ' __restrict__'