pygccxml icon indicating copy to clipboard operation
pygccxml copied to clipboard

Restrict qualifier applied wrongly.

Open dermont123 opened this issue 6 years ago • 2 comments

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__'

dermont123 avatar Apr 22 '18 09:04 dermont123