diff --git a/pystencils/backends/cbackend.py b/pystencils/backends/cbackend.py index 86467c4ead4af6ce080c5bec3de818a23389ec3c..9603d6d232bd677b1e6ca0cb7ec147773b688fdb 100644 --- a/pystencils/backends/cbackend.py +++ b/pystencils/backends/cbackend.py @@ -282,13 +282,14 @@ class CBackend: np_dtype = node.symbol.dtype.base_type.numpy_dtype required_size = np_dtype.itemsize * node.size + align size = modulo_ceil(required_size, align) - code = "#if __cplusplus >= 201703L\n" + code = "#if __cplusplus >= 201703L || __STDC_VERSION__ >= 201112L\n" code += "{dtype} {name}=({dtype})aligned_alloc({align}, {size}) + {offset};\n" code += "#elif defined(_MSC_VER)\n" code += "{dtype} {name}=({dtype})_aligned_malloc({size}, {align}) + {offset};\n" code += "#else\n" code += "{dtype} {name};\n" - code += "posix_memalign(&{name}, {align}, {size}) + {offset};\n" + code += "posix_memalign((void**) &{name}, {align}, {size});\n" + code += "{name} += {offset};\n" code += "#endif" return code.format(dtype=node.symbol.dtype, name=self.sympy_printer.doprint(node.symbol.name),